【发布时间】:2014-07-27 20:52:02
【问题描述】:
我正在尝试让一个函数工作,每当用户添加或删除航点时,它会使用 Leaflet Routing Machine 更新 L.Routing.line。
迄今为止我的代码(来自http://www.liedman.net/leaflet-routing-machine/interaction.html的轻微改编):
function routeImplement(){
if (routewpts.length >= 2) {
router.route(routewpts, function(err, routes) {
if (routeline) {
map.removeLayer(routeline);
};
if (err) {
alert(err);
} else {
routeline = L.Routing.line(routes[0]).addTo(map);
};
});
}
else{
if (routeline) {
map.removeLayer(routeline);
};
};
}
routewpts 是一个 latLngs 数组,routeline 应该是 L.Routing.line,router=L.Routing.osrm();,map 是传单地图(所有全局变量)。该函数可以很好地创建一条线。
我遇到的问题是map.removeLayer(routeline); 似乎不起作用。似乎有两个问题:一个是L.Routing.line 似乎没有返回任何东西,所以routeline 仍未定义。其次,如果我放弃使用句柄,并尝试直接在L.Routing.line 上使用map.removeLayer,我会收到一些关于对OSRM.org 的错误请求的疯狂错误。
感谢您的任何建议。
【问题讨论】:
标签: javascript leaflet