首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用传单路由机和Mapzen获得行人路线?

如何使用传单路由机和Mapzen获得行人路线?
EN

Stack Overflow用户
提问于 2016-04-24 09:12:50
回答 1查看 1.8K关注 0票数 2

我知道Mapzen可以为我想要做的行程提供一条步行路线,因为我可以在openstreetmaps.org上找到它。

但我无法让它在我的嵌入式地图上工作,我也完全不知道原因。

我的代码如下:

代码语言:javascript
复制
L.Routing.control({
waypoints: [
    L.latLng(-44.004358, 170.476709),
    L.latLng(-43.985844, 170.464058)
],
router: L.Routing.Mapzen('valhalla-apikey', 'pedestrian')
// formatter: new L.Routing.Mapzen.Formatter()
}).addTo(cafeMap);

(用我的每个键替换每个键)

但我只得到了正常的驾驶路线。我试着把“行人”替换成所有其他可用的选项,但无法让它发挥作用。

有人看到我的密码有问题了吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-25 21:01:50

您正在错误地初始化路由器。该插件遵循阶级工厂传单文档中描述的惯例。因此,您可以使用new操作符创建路由器类的新实例:

代码语言:javascript
复制
router: new L.Routing.Mapzen('valhalla-apikey', 'pedestrian')

或者小写工厂方法,它做同样的事情:

代码语言:javascript
复制
router: L.Routing.mapzen('valhalla-apikey', 'pedestrian')

您还必须指定一个格式化程序,以便路由机能够解析从mapzen返回的方向。因此,路由控制的完整代码为:

代码语言:javascript
复制
var control = L.Routing.control({
  waypoints: [
    L.latLng(-44.004358, 170.476709),
    L.latLng(-43.985844, 170.464058)
],
  waypointMode: 'snap',
  router: new L.Routing.Mapzen('valhalla-apikey', 'pedestrian'),
  formatter: new L.Routing.Mapzen.Formatter()
}).addTo(map);

您所做的方式(没有新的操作符)是将一个未定义的值传递给路由控件,并且您正在获得的结果实际上是来自OSRM路由器。因此,如果为路由器提供了一个未定义的值,则传单路由机默认为OSRM。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36821224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档