Google Distance Matrix API:如何指定出处 - 目的地对?

时间:2018-06-02 12:29:34

标签: python google-maps-api-3 google-distancematrix-api

我正在使用Google Maps API的Python客户端库(Github link)。

我想获得以下旅行的duration_in_traffic数字:

  • Address1Address2

  • Address2Address1

  • Address1Address3

  • Address3Address1

但Google Distance Matrix 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个单独的请求来获取我想要的持续时间(即每个请求一个配对),但我试图不超过我的免费,非高级Distance Matrix API的配额帐户。

那么,是否可以在同一个请求中指定起始 - 目的地配对?

1 个答案:

答案 0 :(得分:0)

如果我正确理解了这个问题,我认为您可以使用字典来解决该问题:

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个结果。