20

所有,我想检测用户层选择,以便将我的侧边栏与显示的层同步。

但是我在 API 参考中没有看到任何层控制事件;我如何判断何时发生了此类用户层选择?

作为替代方案,我查看了图层加载和卸载事件,但在返回的内容中没有看到任何标识。我是否以某种方式错过了它?

4

4 回答 4

34

有一些事件可以让您知道用户何时激活/停用图层。

这可能会帮助您:

https://leafletjs.com/reference-1.4.0.html#map-baselayerchange

例如:

map.on('overlayadd', onOverlayAdd);

function onOverlayAdd(e){
    //do whatever
}
于 2014-08-29T11:28:35.213 回答
30

这里定义了一个“baselayerchange”事件http://leafletjs.com/reference.html#control-layers 只需将它绑定到地图对象就可以了。

map.on('baselayerchange', function(e) {
  console.log(e);
});
于 2013-09-06T11:30:43.507 回答
1

您可以使用 jQuery 将您自己的“更改”事件绑定到 Leaflet 图层控制单选按钮,如下所示:

    $("[name='leaflet-base-layers']").change( function () {
        alert('Layers selected: ' + $(this).parent().text());
    });
于 2013-01-10T15:02:25.640 回答
0

我还没有真正尝试过使用它,但这个插件看起来很有希望: https ://github.com/vogdb/Leaflet.ActiveLayers

我将在我的一个项目中试一试,因为这是一个非常有用的功能。

于 2013-05-15T09:58:31.573 回答