Маршрутизатор листовки MapBox не распознан - PullRequest
0 голосов
/ 07 марта 2020

Я строю небольшой сайт с картой. Мне нужна маршрутизация пешком, поэтому я подумал о переключении с тестового сервера osrmv1 на MapBox для моего теста, потому что тестовый сервер osrm обеспечивает только вождение.

Я пытаюсь изменить маршрут следующим образом:

const options = { profile: 'mapbox/walking' };
const mapRouter = L.Routing.control({
  router: L.Routing.Mapbox( mapBoxAPIKey, options),
  waypoints: [
    L.latLng([this.currentLatlong[0], this.currentLatlong[1]]),
    L.latLng([this.pointToGoLatlong[0], this.pointToGoLatlong[1]])
  ],
  fitSelectedRoutes : false,
  routeWhileDragging: false,
  collapsible: true,
  lineOptions: {
    styles: [{
      color: 'green',
      opacity: 1,
      weight: 3
    }]
  },
});

mapRouter.addTo(this.map);

но строка:

маршрутизатор: L.Routing.Mapbox (mapBoxKey, параметры)

не распознает параметр Mapbox для L.Routing

что мне не хватает?

спасибо

1 Ответ

2 голосов
/ 07 марта 2020

Из-за изменений в mapbox API и, в частности, из-за обновлений профиля ходьбы для повышения его точности, чтобы он возвращал кодировку polyline6, эта проблема возникла, как упомянуто Даниэлем Паттерсоном (Daniel Patterson), работающим в Mapbox над этим github проблема .

Вам нужно использовать L.Routing.mapbox вместо L.Routing.Mapbox и изменить свои параметры на:

const options = { profile: "mapbox/walking", polylinePrecision: 6 };

, также используйте следующее, чтобы избежать ошибки времени компиляции с помощью Typescript:

router: (L.Routing as any).mapbox("your api key", options),

Демо

Включите свой ключ API, чтобы увидеть демо

...