我有一条路线有几个航路点A,B,C,D ......我希望通过所有航点以相同的顺序获得这条航线的最短距离 .
意思是,我不想优化航点的顺序 . 我只是想得到最短的路线 . 谷歌距离Api给我 fastest 路线而不是 shortest .
谷歌方向API给了我所有路线,然后我可以过滤最短的路线,但为此我必须创建两个循环 . 一个循环通过航点(A - B,B - C,C - D)和每个航段循环通过可能的路线找到最短路 .
我想知道是否有更好更优雅的方式 .
首先,我希望你没有要求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
现在,如果您确实有很多可用于google api密钥的请求,您可以按照说法使用,提供路由备选:true,并找到距离最短的请求 .
另一种选择是将旅行模式改为步行,因为这确实给出了短路路线,但这对于只有一个方向和类似东西的街道来说非常糟糕 .
1 回答
首先,我希望你没有要求3个不同的路线与替代品因为你将很快这种方式耗尽谷歌API限制 . 现在,询问通过每个航路点的路线的正确方法是在angularjs中:
请求是:
如在googleapi手册google
现在,如果您确实有很多可用于google api密钥的请求,您可以按照说法使用,提供路由备选:true,并找到距离最短的请求 .
另一种选择是将旅行模式改为步行,因为这确实给出了短路路线,但这对于只有一个方向和类似东西的街道来说非常糟糕 .