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

时间:2018-07-09 06:55:41

标签: leaflet mapbox openstreetmap mapbox-gl-js leaflet-routing-machine

我有两个Open Street Map节点ID。由MapboxLeaflet提供的API是否可以根据给定的两个节点ID绘制PolyLineLineString

除了here之外,我无法在OSM IDs文档中的任何地方找到对Mapbox的引用,并且没有详细说明如何为自己使用OSM IDs在地图上画线。

给我想做的是2 OSM IDs,我想突出显示连接那些OSM IDs的路段。我不能去找Leaflet routing machine之类的东西,因为这样的行数太多,距离很小。我不能全力以赴routing

1 个答案:

答案 0 :(得分:2)

因为您说过“我无法使用Leaflet路由机之类的东西,因为此类行的数量太多,距离很小。我无法为所有边缘运行路由。”我不包括所有调用外部路由API的解决方案,而是可以进行自己的内部路由。

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