Google Maps V3中没有设定目的地的最短路线?

问题描述 投票:4回答:3

所以我只是学习javascript来搞乱Google Maps API。我想知道是否有人对我遇到的这个问题有一个优雅的解决方案。

Google地图路线请求必须包含三项内容(来源,目的地和travelMode)。我的travelMode将永远是驾驶。原点始终位于用户所在的位置。

但目的地需要变化。我有几个航点,用户将访问,并希望提供尽可能短的旅行,具体取决于选择的航路点和用户的位置,在其中一个航路点结束航线(例如:ABC或ACB,但始终是Axx。 ..X)。

除了计算每个可能的路径并查看哪个路径的最短距离(或时间,或者我正在评估的任何路径)之外,有没有其他方法可以做到这一点?这似乎是非常昂贵的(O(n!))。

编辑:建议的optimizeWaypoints标志设置为true,这将成为O(n)问题,而不是O(n!),但现在我遇到的问题是在很短的时间内发出太多请求。

javascript google-maps shortest-path driving-directions
3个回答
6
投票

谷歌路线中有一个设置提供优化路线(optimizeWaypoints - http://code.google.com/apis/maps/documentation/javascript/services.html#Directions),您只需在路线对象中将其设置为true即可


2
投票

如果您想要最短的路线,可以先拨打Google distanceMatrix API并获取停靠点的排序列表。

然后使用排序列表调用API指示。


0
投票

一个简单的解决方案是将Origin和Destination指定为相同,并要求Google Maps根据所有其他航点优化路线。它通常要先到达最远点,要么最后到达最远点然后再回到原点。然后,您可以在不进行优化的情况下发出另一个请求,这次将Destination指定为最后一个优化的航点。

© www.soinside.com 2019 - 2024. All rights reserved.