- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我知道 Mapzen 可以为我尝试做的行程提供步行路线,因为我可以在 openstreetmaps.org 上找到它。
但我无法让它在我的嵌入式 map 上工作,我完全不知道原因。
我的代码如下:
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);
(用我的 apikey 替换 apikey)
但我得到的只是正常的驾驶行程。我尝试用所有其他可用选项替换“行人”,但无法正常工作。
有人看到我的代码有问题吗?
谢谢
最佳答案
您没有正确初始化路由器。该插件遵循传单文档中描述的约定 class factories .因此,您可以使用 new
运算符来创建路由器类的新实例:
router: new L.Routing.Mapzen('valhalla-apikey', 'pedestrian')
或小写工厂方法,它做同样的事情:
router: L.Routing.mapzen('valhalla-apikey', 'pedestrian')
您还必须指定一个格式化程序,以便路由机器可以解析从 mapzen 返回的方向。因此,路由控制的完整代码为:
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);
你这样做的方式(没有 new 运算符)是将一个未定义的值传递给路由控制,而你得到的结果实际上来自 OSRM 路由器。因此,如果为路由器提供未定义的值,Leaflet Routing Machine 似乎默认为 OSRM。
关于javascript - 如何使用 Leaflet Routing Machine 和 Mapzen 获取行人路线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36821224/
我从 Mapzen Metro 提取中下载了 .geojson 文件,该文件应该显示社区的轮廓。然而,当我运行我编写的 JavaScript 代码时,“g”元素上没有附加任何内容,因此什么也没有显示。
我一直在使用这个库使用Mapzen's turn-by-turn data API从设定的路线获取机动数据。 。虽然我在设置 map 和路线时没有遇到任何问题,但我很难访问保存车辆在每个点(左、右等)
我阅读的传单和 Mapzen文档表明,为了在 Leaflet 中使用自定义磁贴提供程序,只需要做两件事: 在 L.tilelayer(urlTemplateToTileProvider) 中指定磁贴提
我知道 Mapzen 可以为我尝试做的行程提供步行路线,因为我可以在 openstreetmaps.org 上找到它。 但我无法让它在我的嵌入式 map 上工作,我完全不知道原因。 我的代码如下: L
我是一名优秀的程序员,十分优秀!