2014-10-03 43 views
1

在我的应用程序中,用户可以在他们想要访问的城市中选择多个目的地。计算具有不同开始和结束位置的最佳路线

目前我使用它来确定beween LocationA和LocationD的最佳途径,同时确保去的最佳途径采取在LocationB和LocationC https://developers.google.com/maps/documentation/javascript/examples/directions-waypoints

目前LocationA固定到原点, LocationD固定在目的地的这个012ServiceService.route部分

我想检查是否有比从LocationA到LocationD更好的路由。也许LocationD到LocationC在路途中更快取入LocationA和LocationB。

有没有办法做到这一点,而不固定旅程的开始和结束?

回答

1

我有一个类似的问题,似乎没有一个谷歌的解决方案(不知道)。

但有一种解决方法:创建一个函数,它接收一个位置列表,将它们设置为原点和目的地,其余为路点,然后获得所有距离并计算得更好。例如:

Route getBetterRoute(Location[] list) 

    Route betterRoute; 

    for(int x = 0; x < list.size; x++) 
     for(int y = 0; y < list.size; y++) 
      Location origin = list[x]; 
      Location destination = list[y]; 
      Location[] waypoints = list[] - origin - destination; 
      Route routeXY = RequestOptmizedRoute(origin, destination, waypoints); 

      if(betterRoute == null) 
       betterRoute = routeXy; 
      if(routeXY.distance() < betterRoute.distance()) 
       betterRoute = routeXY; 

return betterRoute 

如果您在移动设备上执行此操作,最好创建后端功能。

相关问题