无法识别 MapBox Leaflet Routing 机器

MapBox Leaflet Routing machine not recognized

我正在构建一个带有地图的小型站点。 我需要步行路由,所以我考虑从 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);

但是行:

router: L.Routing.Mapbox( mapBoxKey, options)

无法识别参数 Mapbox for L.Routing

我错过了什么?

谢谢

由于 mapbox API 发生了变化,更具体地说,由于更新了步行配置文件以提高其精度,因此它将 return polyline6 编码出现了这个问题,正如 Daniel Patterson 提到的那样这个 github issue 上的 Mapbox。

您需要使用 L.Routing.mapbox 而不是 L.Routing.Mapbox 并将选项更改为:

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

还可以使用以下方法避免 Typescript 在编译时出现错误:

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

Demo

包括您的 API 密钥以查看演示