Как использовать OSRM match api в буклете, чтобы нарисовать маршрут?

У меня есть некоторые данные, генерируемые GPS во время езды.

var routeArr = [{lng1, lat1}, {lng2,lat2}, {lng3, lat3}.....];

Я хочу показать эти сгенерированные данные как фактический маршрут, пройденный на карте Openstreet на основе Leaflet. Мой наивный подход - показать ломаную, соединяющую все точки. Но я хочу показать фактический маршрут, по которому следовали во время вождения. Могу ли я использовать OSRM-Backend API с плагином leaflet-routing-machine? Любая помощь будет высоко ценится.

1 ответ

Решение

К сожалению, нет никакого способа использовать это с LRM, так как API работают немного по-другому.

  1. Ответ содержит tracepoints а также matchings вместо waypponts а также routes
  2. Объект в matchings массив похож на Route объект, но он представляет разделы трассировки GPS, которые могут быть сопоставлены, а не альтернативные маршруты, как в плагине маршрута.

Самый простой способ развернуть это на карте - выполнить запрос к:

http://router.project-osrm.org/match/v1/driving/{lon,lat};{lon,lat};...?overview=full

А затем используйте https://github.com/mapbox/polyline и следующий фрагмент, чтобы добавить геометрию на карту:

var polyline = require('polyline');

/* fetch the URL and save JSON in response */

response.matchings.map((m) => L.polyline(polyline.decode(m.geometry)).addTo(map));
Другие вопросы по тегам