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 внешней маршрутизации, вместо этого вы можете сделать свою собственную внутреннюю маршрутизацию.
- Используйте OSM Overpass API, чтобы получить длинные точки lat для этих узлов.
- В Mapbox GL JS подгоняет привязки к этим двум узлам и выполняет map.querySourceFeatures, чтобы получить дороги как GeoJSON LineStrings
- затем вычислите сетевой график из этого и используйте алгоритм Дейкстры, чтобы получить кратчайший путь между вашими двумя узлами OSM.