谷歌地图方向API考虑流量

Sta*_*and 5 google-maps google-apps-script

我正在尝试编写一个简单的脚本,以便通过考虑交通情况来在谷歌表中计算两个位置之间的旅行时间。

DirectionFinder我正在使用google Maps API 的类。

我已成功计算出旅行所需的时间,但无论我输入什么出发时间,我的旅行时间都保持不变。

  • 知道我做错了什么吗?
  • 使用此类是否可以考虑流量?
  • 我是否需要成为企业用户才能访问此内容?

这是我的代码:

function DrivingSeconds(origin, destination, Y, M, D, H, S) {
  Utilities.sleep(1000);
  var time= new Date(Y,M,D,H,S);
  var directions = Maps.newDirectionFinder()
  .setDepart(time)
  .setOrigin(origin)
  .setDestination(destination)
  .setMode(Maps.DirectionFinder.Mode.DRIVING)
  .getDirections();
  return directions.routes[0].legs[0].duration.value;  
}
Run Code Online (Sandbox Code Playgroud)

cdm*_*cdm 2

来自谷歌文档:

对于出行模式为驾驶的请求:您可以指定出发时间来接收考虑交通状况的路线和行程持续时间(响应字段:duration_in_traffic)。仅当请求包含有效的 API 密钥或有效的 Google Maps API高级计划客户端 ID 和签名时,此选项才可用。Department_time 必须设置为当前时间或将来的某个时间。它不可能是过去的。

https://developers.google.com/maps/documentation/directions/intro#RequestParameters

所以是的,仅适用于高级用户。那么您的请求应如下所示:

var request = {
  origin: origin,
  destination: destination,
  drivingOptions: {
    departureTime: new Date(),
  },
  travelMode: google.maps.TravelMode[DRIVING]
};

var directionsService = new google.maps.DirectionsService();
directionsService.route(request, function(response,status) {
  if(status == google.maps.DirectionsStatus.OK) {
    console.log(response.routes[0].legs[0].duration_in_traffic);
  }
});
Run Code Online (Sandbox Code Playgroud)