我正在使用此插件:https://github.com/perliedman/leaflet-routing-machine。
我的代码如下:
...
recipe = {
.
.
thumbnail: require('assets/images/img1.jpg'),
//make sure the path of the image is relative to parent class where you are defining the prop
.
.
}
...
当我通过充满不同纬度/经度的点时,它会画出精细的路线。但是,让我们想象一下以下情况。假设点数组包含3个项目。每个项目都包含纬度/经度,假设这些纬度/经度是相同的。像这样:
for(let i=0; i<markers.length; i++){
points.push(L.latLng(markers[i].latitude, markers[i].longitude))
}
this.routingControl = L.Routing.control({
waypoints: points
}).addTo(this.map);
现在,路由控件的作用是无法绘制路线,它会自动以最大方式放大,并在控制台中显示错误。 {“消息”:“缩放级别必须在0-20之间。”}
解决方法1:绘制路线后,我决定在1秒后使用settimeout,然后在myseslf处放大11。这样,它会缩小,但在控制台中,错误仍然存在。我该如何解决?
答案 0 :(得分:0)
如果您知道您的输入内容可能是无效的,那么最干净的方法是在删除重复项的过程中对其进行过滤。如果由于某种原因无法实现,并且您想让LRM确定是否存在错误,则可以使用以下命令捕获错误事件:
L.Routing.control({
...
})
.addTo(this.map)
.on('routingerror', function(e) {
// do your error action here - e.g. zoom out
})
有关处理LRM中的错误的更多信息,请参见https://www.liedman.net/leaflet-routing-machine/api/#eventobjects