将列表传递给 google 距离矩阵,仅返回单个值
Pass list to google distance matrix, returning only single value
我想使用 Googles distance matrix API 来测量多个地址和单个地址之间的道路距离。我有一个起点纬度和经度列表 (list_o),以及目的地纬度和经度 (list_d)。我的 Api 密钥已设置。
list_o
[(51.268369, -1.361543),
(51.368369, -1.361043),
(51.062992, -1.250635),
(51.910508, -1.314208),
(51.233251, -1.551402)]
list_d
[(53.423451, -1.462141),
(53.483451, -1.172141),
(51.423451, -1.262141),
(52.623451, -1.246211),
(52.323451, -1.462141)]
如果我传入地址列表
result = gmaps.distance_matrix(list_o, list_d, mode='walking')["rows"][0]["elements"][0]["distance"]["value"]
我只得到一个结果,例如 34000 米 = 34km,看起来是正确的。
我已经尝试将结果附加到列表中,但它仍然只得出一个结果。
有
gmaps.distance_matrix(list_o, list_d, mode='walking')["rows"][0]["elements"]
我得到 10 个值(df 的完整大小,上面我只显示了前 5 个)。
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'}]
但是它们都是相同的值。
我相信你想做的是使用:
list_o
[(51.668369, -1.361043),
(51.668369, -1.361043),
(51.662992, -1.270635),
(51.610508, -1.314208),
(51.733251, -1.351402)]
和:
list_d
[(52.423451, -1.462141)]
然后调用:
results = gmaps.distance_matrix(list_o, list_d, mode='walking')
您要查找的结果是:
# Distance between first origin and destination.
# I.e.: distance (51.668369, -1.361043) -> (52.423451, -1.462141)
results['rows'][0]['elements'][0]
#... and so on
换句话说,results['rows'][i]['elements'][0]
是位置i
到目的地的距离。
gmaps.distance_matrix
计算起点和每个目的地之间的距离。
我想使用 Googles distance matrix API 来测量多个地址和单个地址之间的道路距离。我有一个起点纬度和经度列表 (list_o),以及目的地纬度和经度 (list_d)。我的 Api 密钥已设置。
list_o
[(51.268369, -1.361543),
(51.368369, -1.361043),
(51.062992, -1.250635),
(51.910508, -1.314208),
(51.233251, -1.551402)]
list_d
[(53.423451, -1.462141),
(53.483451, -1.172141),
(51.423451, -1.262141),
(52.623451, -1.246211),
(52.323451, -1.462141)]
如果我传入地址列表
result = gmaps.distance_matrix(list_o, list_d, mode='walking')["rows"][0]["elements"][0]["distance"]["value"]
我只得到一个结果,例如 34000 米 = 34km,看起来是正确的。 我已经尝试将结果附加到列表中,但它仍然只得出一个结果。
有
gmaps.distance_matrix(list_o, list_d, mode='walking')["rows"][0]["elements"]
我得到 10 个值(df 的完整大小,上面我只显示了前 5 个)。
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'},
{'distance': {'text': '34.0 km', 'value': 34014},
'duration': {'text': '7 hours 6 mins', 'value': 25554},
'status': 'OK'}]
但是它们都是相同的值。
我相信你想做的是使用:
list_o
[(51.668369, -1.361043),
(51.668369, -1.361043),
(51.662992, -1.270635),
(51.610508, -1.314208),
(51.733251, -1.351402)]
和:
list_d
[(52.423451, -1.462141)]
然后调用:
results = gmaps.distance_matrix(list_o, list_d, mode='walking')
您要查找的结果是:
# Distance between first origin and destination.
# I.e.: distance (51.668369, -1.361043) -> (52.423451, -1.462141)
results['rows'][0]['elements'][0]
#... and so on
换句话说,results['rows'][i]['elements'][0]
是位置i
到目的地的距离。
gmaps.distance_matrix
计算起点和每个目的地之间的距离。