Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Google Maps V3中没有设置目的地的最短路线?_Javascript_Google Maps_Shortest Path_Driving Directions - Fatal编程技术网

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

Javascript Google Maps V3中没有设置目的地的最短路线?,javascript,google-maps,shortest-path,driving-directions,Javascript,Google Maps,Shortest Path,Driving Directions,所以,我只是在学习javascript来搞乱GoogleMapsAPI。我想知道是否有人对我遇到的这个问题有一个优雅的解决方案 谷歌地图路线请求必须包含三个内容(起点、终点和旅行模式)。我的旅行模式将始终是驾驶。原点将始终位于用户所在的任何位置 不过,目的地需要有所不同。我有几个航路点,用户将访问,并希望根据选择的航路点和用户所在的位置提供尽可能短的行程,在其中一个航路点结束路线(例如:ABC或ACB,但始终是Axx…x) 除了计算每一条可能的路径,看看哪条路径的距离最短(或者时间最短,或者我正

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

谷歌地图路线请求必须包含三个内容(起点、终点和旅行模式)。我的旅行模式将始终是驾驶。原点将始终位于用户所在的任何位置

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

除了计算每一条可能的路径,看看哪条路径的距离最短(或者时间最短,或者我正在评估的任何东西),还有什么其他方法可以做到这一点吗?这似乎代价高昂(O(n!))


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

google directions中有一个提供优化路线的设置(optimizeWaypoints-)您只需在您的directions对象中将其设置为true即可

如果您想要最短路径,您可以首先调用Google distanceMatrix API并获取站点排序列表


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

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

我已经这样做了,但仍然必须设置目的地。我不能把它设为真,然后把我所有的航路点都输入请求。我现在正在做的是为n个航路点创建n条航路,将请求A作为起点,b-n作为目的地,所有航路点减去每条航路的目的地。这给了我一条路线,我可以计算距离,现在要做一些繁重的测试,看看这是否适用于任何适当数量的航路点。好的,我最终使用的解决方案是基于这个答案,所以它得到了复选标记。我现在拥有的是我的航路点以及一些非常遥远的位置。我在我的请求中发送所有的航路点,让谷歌为这些航路点找到从我的起始位置到遥远目的地的最佳路线,然后取出新订购的航路点。然后我将最后一个航路点设置为新的目的地,并发出另一个请求,该航路点集现在包含一个较少的航路点。这给了我想要的路线。我有同样的问题,我需要和其他点一起计算最佳目的地。我喜欢你的解决方案。谢谢。@Crag遥远目的地的位置不影响第一次请求中返回航路点的顺序吗?例如,如果遥远的目的地在南方,那么最后一个航路点不是最南边的吗?我只想在这个讨论中加上我的2美分。我面临着类似的情况,我正在考虑首先使用距离矩阵API来计算距离原点最远的路径点。我认为它可能是设置为目的地的最佳候选者,这样所有其他路径点都可以完美地适合原点和最远的路径点。希望这对我有用。