2016-05-09 51 views
3

我想寫一個簡單的腳本,以計算在谷歌表中兩個地點之間的旅行時間,通過考慮交通。谷歌地圖方向API採取交通帳戶

我正在使用Google Maps API的類DirectionFinder。

我設法計算出行所需的時間,但無論出發時間有多少,我的出行時間都保持不變。有什麼想法我做錯了什麼?是否有可能使用此課程考慮流量?我需要成爲一名商業用戶才能訪問此?

這裏是我的代碼:

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; 
} 

感謝你可能有任何意見! :)

回答

2

從谷歌文檔:

對於在行駛模式行駛請求:您可以指定DEPARTURE_TIME接收路線和行程時間:即採取交通條件考慮(響應字段duration_in_traffic)。 如果請求包含有效的API密鑰或有效的Google Maps API Premium Plan客戶端ID和簽名,則此選項僅適用於。出發時間必須設置爲當前時間或將來的某個時間。它不可能在過去。

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

所以,是的,僅適用於高級users.Then您的要求應該是這樣的:

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); 
    } 
});