-1

我有幾個航點A,B,C,d ... 的路由我想通過所有獲得這條路線距離最短按相同順序的航點。獲取路線最短(不是最快)的距離與谷歌地圖API的幾個航點

手段,我不想優化路標的順序。我只想得到最短的路線。谷歌距離阿比給我的最快的路線,而不是最短

Google的方向API給了我所有路線,然後我可以過濾的最短路線,但爲了這個,我要創建兩個循環。通過航點(A - B,B - C,C - D)和每條腿循環通過可能的路線循環找到最短路線。

我不知道是否有這樣做的更好,更優雅的方式。

回答

0

首先,我希望你沒有要求3種不同的路線與替代品,因爲你會用這種方式很快耗盡谷歌API限制。現在要求,通過各航點傳遞路線的正確的方法是這樣的angularjs:

uiGmapGoogleMapApi.then(function(maps) { 
     directionsService = new maps.DirectionsService(); 
}); 

directionsService.route(request, function(response, status) {}); 

與請求是:

{ 
    origin: 'A', 
    destination: 'D', 
    waypoints: [ 
{ 
    location: 'C', 
    stopover: false 
}], 
provideRouteAlternatives: false, 
travelMode: 'DRIVING' 
} 

如googleapi手冊現在google

,如果你這樣做有可用的大量請求,作出了谷歌API密鑰,你可以像你說的只是使用,provideRouteAlternatives:真,找到一個最短距離。

另一種選擇是將旅行模式更改爲步行,因爲這確實會給短褲路線,但這對於只有一個方向的街道以及類似的東西非常不利。