来自50多个位置的多个请求的openrouteservice建筑物距离矩阵

问题描述

我有一个要计算距离矩阵的101个位置坐标的列表。我想使用openrouteservice的距离矩阵API查找距离的101x101矩阵。但是,一次呼叫最多只能放置50个位置,以获取它们之间的距离。 因此,我决定将位置分为25个位置的批次,并发送10个请求,这些请求将给我所有对的距离。

Locations = [[first pair of 25 locations],[2nd pair of 25],[3rd - 25],[4th - 25],[101th location]]

,并使用Combines()函数获得了上述5组的10个唯一组合的结果,然后我使用它们来调用openrouteservice API。因此,我有10个具有重复值的合成矩阵,希望将它们添加到最终的101x101矩阵中。

def orsapilocs(coord):
    output1 = []
    # Make rate limit compliant lists of 25 locations each
    output1 = [coor[i:i + 25] for i in range(len(coord),-25)]
    output1[0].extend([coord[0]])
    return(output1)
        
def orsapiformat(q):
    a = list(combinations(q,2))
    flat = [[item for c in combi for item in c] for combi in a]
    return flat

matrix = []
for i in orsapiformat(q):
    matrix.append(client.distance_matrix(
    locations=i,profile='driving-car',metrics=['distance'],validate=False,units="km"
    ))

关于无需手动选择将不同结果矩阵的一部分放入主101x101矩阵中,如何实现此目标的任何想法?我想使它自动化,以便无论位置有多少,它都会自动选择要放入最终矩阵中的所需零件。

该API的JSON响应示例如下:

{
"distances": [[ 0,140.86,2434.68],[139.77,2386.15],[10212.84,10164.9,0]]
}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)