我有两个Open Street Map
节点ID。Mapbox
或Leaflet
是否提供任何 API 可以在给定两个节点 ID 的情况下绘制PolyLine
或LineString
?
除了这里之外,我无法Mapbox
文档中的任何地方找到任何对OSM IDs
的引用,并且它没有详细说明如何使用OSM IDs
在地图上绘制线条。
我想做的是给出 2OSM IDs
,我想突出显示连接这些OSM IDs
的路段。我不能选择像Leaflet routing machine
这样的事情,因为这样的线太多了,距离很小。我不能为所有边缘跑routing
。
既然你说"我不能选择传单路由机这样的东西,因为这样的线路太多了,距离很小。我无法对所有边缘运行路由。我排除了调用外部路由 API 的所有解决方案,而是您可以执行自己的内部路由。
- 使用 OSM Overpass API 获取这些节点的长、纬度点
- 在 Mapbox GL JS 中,将 Bounds 绑定到这两个节点,并执行 map.querySourceFeatures 以将道路作为 GeoJSON LineString 获取
- 然后从中计算一个网络图,并使用Dijkstra的算法来获得两个OSM节点之间的最短路径。