所有,我想检测用户层选择,以便将我的侧边栏与显示的层同步。
但是我在 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);
});
您可以使用 jQuery 将您自己的“更改”事件绑定到 Leaflet 图层控制单选按钮,如下所示:
$("[name='leaflet-base-layers']").change( function () {
alert('Layers selected: ' + $(this).parent().text());
});
我还没有真正尝试过使用它,但这个插件看起来很有希望: https ://github.com/vogdb/Leaflet.ActiveLayers
我将在我的一个项目中试一试,因为这是一个非常有用的功能。