1

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

除了这里,我无法OSM IDs在文档中的任何地方找到任何参考,它也没有详细说明如何自己使用在地图上画线。MapboxOSM IDs

我想要做的是 2 OSM IDs,我想突出连接这些的路段OSM IDs。我不能去做这样的事情,Leaflet routing machine因为这样的线路数量太多,距离很短。我不能跑routing所有的边缘。

4

1 回答 1

2

既然您说“我不能选择 Leaflet 路由机之类的东西,因为这样的线路数量太多,距离很短。我无法为所有边缘运行路由。” 我排除了所有调用外部路由 API 的解决方案,而是您可以进行自己的内部路由。

  1. 使用OSM Overpass API获取这些节点的经纬度点
  2. 在 Mapbox GL JS fitBounds 到这两个节点并执行 map.querySourceFeatures 以将道路作为 GeoJSON LineStrings
  3. 然后从中计算一个网络图,并使用 Dijkstra 算法来获得两个 OSM 节点之间的最短路径。
于 2018-07-10T04:32:40.687 回答