我将 Python 客户端库用于 Google Maps API ( Github link )。
我想得到 duration_in_traffic
以下行程的数字:
Address1
至 Address2
Address2
至 Address1
Address1
至 Address3
Address3
至 Address1
但是 Google 距离矩阵 API ( documentation ) 的语法在其冒昧方面存在问题。它假设用户想要所有可能的起始地址和目的地地址配对的数据。
问题是以下代码( source )...
origins = [Address1, Address2, Address3]
destinations = [Address1, Address2, Address3]
matrix = client.distance_matrix(origins, destinations,
mode="driving",
language="en",
units="imperial",
departure_time=now,
traffic_model="best_guess")
生产 九 结果(即,起点-终点配对的每种可能组合),当我只需要前面提到的 时四 .
我意识到我可以解析这些结果以仅提取我需要的四个持续时间,但我不想通过强制它下载我不想要的数据来不必要地加倍我的脚本的执行时间。
我也意识到我可以发送 4 个单独的请求来获得我想要的持续时间(即每个请求一个配对),但我试图不超过我的免费、非高级距离矩阵 API 帐户的配额。
那么,是否可以在同一个请求中指定起点-终点配对?
最佳答案
如果我正确理解了这个问题,我认为您可以使用字典来解决它:
dict_addresses= {Address1:Address2, Address2:Address1, Address1:Address3, Address3:Address1}
db= dict()
for origin in dict_addresses:
duration_traffic= client.distance_matrix(origin, dict_addresses[origin], mode="driving", language="en", units="imperial", departure_time=now, traffic_model="best_guess")
db[origin]= duration_traffic
print (db)
对于最后一部分,您需要从距离矩阵数组中提取 duration_in_traffic,但您应该只获得您真正想要的 4 个结果。
关于python - 谷歌距离矩阵 API : How to specify origin-destination pairs?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50656955/