python - 谷歌距离矩阵 API : How to specify origin-destination pairs?

标签 python google-maps-api-3 google-distancematrix-api o-d-matrix

我将 Python 客户端库用于 Google Maps API ( Github link )。

我想得到 duration_in_traffic以下行程的数字:

  • Address1Address2
  • Address2Address1
  • Address1Address3
  • Address3Address1

  • 但是 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/

    相关文章:

    python - RNN LSTM估计正弦波频率和相位

    google-maps - 用于地理编码的 map API key 不起作用

    javascript - 谷歌地图 : add multiple map markers

    java - 如何为 Android (java) 配置 Google Maps Distance Matrix API

    google-maps - 当我没有超过每日免费请求数时,为什么我总是收到 MAX_ELEMENTS_EXCEEDED 错误?

    google-maps - Google 距离矩阵 API 的历史结果是否可用?

    android - 在 Android 上运行一个 kivy 程序

    python - 在不创建新文件的情况下从 CSV 文件中删除空格

    python - 在 Python 中从列表迭代插入表值

    javascript - 如何动态更改 Google map v3 中折线的 'repeat' 属性?