4

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

Google Maps 路线请求必须包含三项内容(起点、目的地和 travelMode)。我的 travelMode 将永远是 DRIVING。原点将始终是用户所在的任何地方。

但是,目的地需要有所不同。我有几个航点,用户将访问,并希望根据选择的航点和用户的位置提供最短的行程,在其中一个航点结束路线(例如:ABC 或 ACB,但总是 Axx. ..X)。

除了计算每条可能的路径并查看哪条路径最短(或时间,或我正在评估的任何内容)之外,还有其他可能的方法吗?看起来这将非常昂贵(O(n!))。

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

4

3 回答 3

7

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

于 2010-10-27T23:58:33.730 回答
3

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

然后使用排序列表调用 API 方向。

于 2016-09-19T13:51:02.283 回答
0

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

于 2019-04-05T16:52:15.617 回答