首页 文章

从Google Maps Api获取具有多个航路点的路线的最短(非最快)距离

提问于
浏览
-1

我有一条路线有几个航路点A,B,C,D ......我希望通过所有航点以相同的顺序获得这条航线的最短距离 .

意思是,我不想优化航点的顺序 . 我只是想得到最短的路线 . 谷歌距离Api给我 fastest 路线而不是 shortest .

谷歌方向API给了我所有路线,然后我可以过滤最短的路线,但为此我必须创建两个循环 . 一个循环通过航点(A - B,B - C,C - D)和每个航段循环通过可能的路线找到最短路 .

我想知道是否有更好更优雅的方式 .

1 回答

  • 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

    现在,如果您确实有很多可用于google api密钥的请求,您可以按照说法使用,提供路由备选:true,并找到距离最短的请求 .

    另一种选择是将旅行模式改为步行,因为这确实给出了短路路线,但这对于只有一个方向和类似东西的街道来说非常糟糕 .

相关问题