【问题标题】:Google Distance Matrix Api: travel time with trafficGoogle Distance Matrix Api:交通时间
【发布时间】:2014-10-08 15:36:57
【问题描述】:

我正在尝试获取 2 组纬度/经度坐标之间的交通时间。我可以调用 Google 距离矩阵 API,但我只能获得没有交通的旅行时间。我读过的API notes 说要使用一个名为department_time 的参数。以下是摘录:

departure_time 将所需的出发时间指定为自 UTC 1970 年 1 月 1 日午夜以来的秒数。出发时间可由 Maps for Business 客户指定,以指定离开时间以接收考虑当前交通状况的行程持续时间。出发时间必须设置在当前时间的几分钟内。

我发现这个网站给了我那个时间:epochconverter

但是,我每次仍然获得相同的旅行时间。这是一个示例请求,需要更新离开时间参数(没关系)。

https://maps.googleapis.com/maps/api/distancematrix/xml?units=imperial&departure_time=1408046331&origins=37.407585,-122.145287&destinations=37.482890,-122.150235

总是返回 15 分钟。

使用“maps dot google dot com”在考虑到交通情况时返回 19 分钟的行程时间。

如果有人可以帮助我从距离矩阵 API 获取交通时间,将不胜感激。

【问题讨论】:

  • 您是 Maps for Business 客户吗?看起来它仅适用于企业帐户,而不是免费层。
  • 您找到解决方法了吗?

标签: google-maps-api-3


【解决方案1】:

不需要营业执照,只需要来自https://console.developers.google.com/ 项目的 API 密钥,并启用 Google 距离矩阵。 对于谷歌地图上的结果,请使用带有悲观、乐观值的 traffic_model 并记住“Department_time 必须设置为当前时间的几分钟内”,否则它将始终返回 15 分钟。

【讨论】:

  • 这被否决的任何原因?这是不正确的吗?阅读文档,我没有提到这目前仍适用于商业客户。
  • google 距离矩阵的交通模块的准确结果仅适用于“Google Maps APIs Premium Plan 客户”链接developers.google.com/maps/documentation/javascript/…
  • 这对我来说是个问题,我必须明确地将departure_time=now 添加到我的查询字符串中才能获得考虑到流量的结果。
【解决方案2】:

根据docs,该功能似乎仅适用于 Maps for Business 客户。

【讨论】:

    【解决方案3】:

    即使有营业执照,如果您使用的是驾驶模式,您也只能在 5 分钟后查询离开时间

    https://developers.google.com/maps/documentation/distancematrix/

    【讨论】:

      【解决方案4】:

      根据谷歌文档,“departure_time”只能在“mode”(旅行模式)设置为“Driving”(这是默认的 travelMode)并且 Api KEY 包含在您的请求中时使用。 还有一个可选参数“trafficModel”。 这是一个带有适当参数的示例 url。 https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=40.6655101,-73.89188969999998&destinations=40.598566%2C-73.7527626&mode=driving&departure_time=now&traffic_model=optimistic&key=YOUR_API_KEY

      要将距离矩阵 api 用作 javascript 代码,请按照本文档中的说明使用它。 https://developers.google.com/maps/documentation/javascript/distancematrix

      **Imp:**这个 API 有很多限制。大多数功能仅供高级用户使用。请仔细阅读上述文档。

      【讨论】:

        【解决方案5】:

        请尝试以下代码。

        var origin = new google.maps.LatLng(detectedLatitude,detectedLongitude);       
        var destination = new google.maps.LatLng(latitudeVal,langtitudeVal);
        var service = new google.maps.DistanceMatrixService();var date = new Date();
            date.setDate(date.getDate() + 1);
            var DrivingOptions = {
            departureTime: date,
            trafficModel: 'pessimistic'
            };
        
            service.getDistanceMatrix(
              {
                origins: [origin],
                destinations: [destination],
                travelMode: 'DRIVING',
                drivingOptions : DrivingOptions,
                unitSystem: google.maps.UnitSystem.METRIC,
                durationInTraffic: true,
                avoidHighways: false,
                avoidTolls: false
              }, response_data);function response_data(responseDis, status) {
          if (status !== google.maps.DistanceMatrixStatus.OK || status != "OK"){
            console.log('Error:', status);
            // OR
            alert(status);
          }else{
               alert(responseDis.rows[0].elements[0].distance.text);
          }});
        

        请参考此文档click here

        【讨论】:

          【解决方案6】:

          这个 API 可以解决你的问题 - https://distancematrix.ai/dev

          在计算行程时间时会考虑交通状况、道路建设和其他限制。如果你以前使用过 Google 的 API,你会很容易,因为你不需要重写代码。

          关于出发时间,您会在文档中找到以下内容:

          "departure_time — 所需的出发时间。您可以将时间指定为自 UTC 1970 年 1 月 1 日午夜以来的整数秒。或者,您可以指定一个值 now,它将出发时间设置为当前时间(精确到最接近的秒数),如果都不指定时间,则department_time默认为现在(即出发时间默认为当前时间)。department_time必须设置为当前时间或未来某个时间. 它不可能是过去的。由于道路网络的变化、更新的平均交通状况和服务的分布式性质,给定请求的结果可能会随时间而变化。结果也可能在任何时间几乎等效的路线之间有所不同时间或频率。”

          遵循这些建议,您将不会遇到此问题。此外,您可以轻松联系开发人员并就您的情况提出任何问题。

          免责声明:我在一家创建此 API 的公司工作。

          【讨论】:

            【解决方案7】:

            如果您使用的是golang客户端,请在Directions函数的输入参数DirectionsRequest中将DepartureTime设置为“now”。

            【讨论】:

              猜你喜欢
              • 2019-10-04
              • 2018-03-28
              • 1970-01-01
              • 2017-10-06
              • 2017-03-31
              • 1970-01-01
              • 2016-06-08
              • 1970-01-01
              • 2023-03-07
              相关资源
              最近更新 更多