4

我正在为 Google Maps API 使用 Python 客户端库(Github 链接)。

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

  • Address1Address2

  • Address2Address1

  • Address1Address3

  • Address3Address1

但是 Google 距离矩阵 API(文档)的语法在其冒昧性方面存在问题。它假定用户想要所有可能的起始地址和目的地地址对的数据。

问题是以下代码(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 帐户的配额。

那么,是否可以在同一个请求中指定起点-终点配对?

4

1 回答 1

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

于 2018-08-15T07:49:35.480 回答