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)
来自谷歌文档:
对于出行模式为驾驶的请求:您可以指定出发时间来接收考虑交通状况的路线和行程持续时间(响应字段: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)