我正在构建一个基于Here Maps的Web应用程序。 其主要功能包括将电子表格文件(.xls,.xlsx)上传到服务器并计划包含文件中地址的路线,最多可达500个航路点。
当然,这些航路点不是优化顺序的任何方式,所以我想让用户点击“OPTIMIZE ROUTE”按钮,这将按距离优化它。
例如,如果文件具有以下三个地址:
默认路线是从NY到SF,然后再到LI。
应用程序将检查距离并以这样的方式重新排序waypoints数组:
NY - > LI - > SF
我的问题: 在Here Maps中是否有内置路由优化功能,还是应该自己编写?
答案 0 :(得分:2)
您应该查看Matrix Routing API(需要登录)。这将计算每个N×M个位置之间的“实际”距离。有了这些信息,您已将问题缩小到Travelling Salesman Problem。当然,TSP是NP完全的,所以除非你使用强力算法,否则你不能确定你得到了最佳答案。
我个人会看一个最近邻解决方案 - 快速,非常简单的编码,通常返回一个“合理的”,如果不是最佳的解决方案。您可以根据需要更新到更复杂的算法:
下面的伪代码:
答案 1 :(得分:0)
这被称为旅行商问题。
您需要有一张从任何地方到您支持的任何其他地方的距离表。
一旦拥有,您就可以使用任何通用的旅行销售员算法。
请注意,他们非常着名。