Как использовать OSRM match API в буклете для рисования маршрута?

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

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

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


person Anant    schedule 20.05.2016    source источник


Ответы (1)


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

  1. Ответ содержит tracepoints и matchings вместо waypoints и 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));
person themarex    schedule 20.05.2016