2014-10-03 52 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 

如果您在移動設備上執行此操作,最好創建後端功能。

相關問題