映射框:在给定两个OSM节点ID的情况下制作一条线



我有两个Open Street Map节点ID。MapboxLeaflet是否提供任何 API 可以在给定两个节点 ID 的情况下绘制PolyLineLineString

除了这里之外,我无法Mapbox文档中的任何地方找到任何对OSM IDs的引用,并且它没有详细说明如何使用OSM IDs在地图上绘制线条。

我想做的是给出 2OSM IDs,我想突出显示连接这些OSM IDs的路段。我不能选择像Leaflet routing machine这样的事情,因为这样的线太多了,距离很小。我不能为所有边缘跑routing

既然你说"我不能选择传单路由机这样的东西,因为这样的线路太多了,距离很小。我无法对所有边缘运行路由。我排除了调用外部路由 API 的所有解决方案,而是您可以执行自己的内部路由。

  1. 使用 OSM Overpass API 获取这些节点的长、纬度点
  2. 在 Mapbox GL JS 中,将 Bounds 绑定到这两个节点,并执行 map.querySourceFeatures 以将道路作为 GeoJSON LineString 获取
  3. 然后从中计算一个网络图,并使用Dijkstra的算法来获得两个OSM节点之间的最短路径。

最新更新