我在文章中看到,OpenStreet映射提供了一个API,给定具有起点和目的地的路线以及多个(无限?)航路点,它会根据最佳路线对航路点进行排序。 我不知道它是哪个端点。有人可以将我指向说明如何实现此目标的文档部分吗?是否有一个红宝石宝石来包装此终结点请求?
非常感谢您
答案 0 :(得分:0)
这是旅行商的问题。解决此问题的设备不止一个基于OSM的路由器。根据{{3}}:
所有主要的OSM路由引擎都支持:
- Mapzen的similar question at help.openstreetmap.org (“ Valhalla还包括诸如时间+距离矩阵计算之类的工具, 等时线,高程采样,地图匹配和行程优化 (旅行推销员)。”)
- Mapbox的 Valhalla(“ 旅行插件使用贪婪解决了旅行商问题 启发式...“)
- Graphhopper使用OSRM 用于路由优化(“ TSP问题可以通过定义一个 车辆路线问题...“)
这些服务都没有免费且无限的在线服务(它 会很快被试图保存自己的AWS的人滥用 成本)。 Mapzen提供了一个优惠,您可以在其中注册免费的API密钥并使用 那。 OSRM不需要API密钥,您可以使用它。 Graphhopper 需要注册,尽管他们有免费试用版,但我认为 他们有免费套餐。
这三个都是开放源代码,您无需安装即可使用它们 本地限制。
对于JSPrit library,请看GraphHopper。有关OSRM,请参见Route Optimization API。
答案 1 :(得分:0)
设置您自己的OpenStreetMap服务器-这样,您每次应用需要运行地图查询时都不会产生数据访问费用。 具体来说,安装 Valhalla 地图服务器。这是一个免费的应用程序。最好将其安装在Linux机器上:
https://github.com/valhalla/valhalla
或改为在Docker中下载并运行Docker映像:
https://hub.docker.com/r/abihf/valhalla/
https://github.com/interline-io/valhalla-docker
服务器提供专门用于订购航点的API: https://valhalla.readthedocs.io/en/latest/api/optimized/api-reference/