Как использовать OSRM match api в буклете, чтобы нарисовать маршрут?
У меня есть некоторые данные, генерируемые GPS во время езды.
var routeArr = [{lng1, lat1}, {lng2,lat2}, {lng3, lat3}.....];
Я хочу показать эти сгенерированные данные как фактический маршрут, пройденный на карте Openstreet на основе Leaflet. Мой наивный подход - показать ломаную, соединяющую все точки. Но я хочу показать фактический маршрут, по которому следовали во время вождения. Могу ли я использовать OSRM-Backend API с плагином leaflet-routing-machine? Любая помощь будет высоко ценится.
1 ответ
К сожалению, нет никакого способа использовать это с LRM, так как API работают немного по-другому.
- Ответ содержит
tracepoints
а такжеmatchings
вместоwaypponts
а такжеroutes
- Объект в
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));