Mapbox: создание строки с двумя идентификаторами узлов OSM

У меня два Open Street Map идентификаторы узлов. Есть ли какой-либо API, предоставленный Mapbox или же Leaflet который мог бы нарисовать PolyLine или же LineString дали два идентификатора узла?

Я не могу найти ссылку на OSM IDs где-нибудь в Mapbox документация, кроме здесь, и это не детализирует, как использовать OSM IDs для себя, чтобы нарисовать линии на карте.

То, что я хочу сделать, дается 2 OSM IDs Хочу выделить отрезок дороги, соединяющий эти OSM IDs, Я не могу пойти на такие вещи, как Leaflet routing machine так как количество таких линий слишком много, с небольшими расстояниями. Я не могу бежать routing для всех краев.

1 ответ

Поскольку вы говорите: "Я не могу пойти на такие вещи, как машина маршрутизации Leaflet, так как количество таких линий слишком много, с небольшими расстояниями. Я не могу запустить маршрутизацию для всех ребер". Я исключаю все решения, вызывающие API внешней маршрутизации, вместо этого вы можете сделать свою собственную внутреннюю маршрутизацию.

  1. Используйте OSM Overpass API, чтобы получить длинные точки lat для этих узлов.
  2. В Mapbox GL JS подгоняет привязки к этим двум узлам и выполняет map.querySourceFeatures, чтобы получить дороги как GeoJSON LineStrings
  3. затем вычислите сетевой график из этого и используйте алгоритм Дейкстры, чтобы получить кратчайший путь между вашими двумя узлами OSM.
Другие вопросы по тегам