大家好,我想检测用户图层选择,以便将我的侧边栏与显示的图层同步。
但是我在API参考中没有看到任何图层控制事件;我怎样才能知道这样的用户图层选择已经发生了呢?
作为替代方案,我查看了图层加载和卸载事件,但我没有在返回中看到任何标识。我错过了吗?
大家好,我想检测用户图层选择,以便将我的侧边栏与显示的图层同步。
但是我在API参考中没有看到任何图层控制事件;我怎样才能知道这样的用户图层选择已经发生了呢?
作为替代方案,我查看了图层加载和卸载事件,但我没有在返回中看到任何标识。我错过了吗?
有一些事件可以让您知道用户何时激活/停用图层。
这可能会对您有所帮助:
https://leafletjs.com/reference-1.4.0.html#map-baselayerchange
例如:
map.on('overlayadd', onOverlayAdd);
function onOverlayAdd(e){
//do whatever
}
这里定义了一个“baselayerchange”事件 http://leafletjs.com/reference.html#control-layers。只需将其绑定到地图对象上,就可以使用了。
map.on('baselayerchange', function(e) {
console.log(e);
});
overlayadd
起了作用。 - Dazzle $("[name='leaflet-base-layers']").change( function () {
alert('Layers selected: ' + $(this).parent().text());
});
我还没有实际尝试使用它,但这个插件看起来很有前途: https://github.com/vogdb/Leaflet.ActiveLayers
我将在我的一个项目中尝试一下,因为这是一个非常有用的功能。