如何在显示或隐藏 Leaflet LayerGroup 时获得通知?
How to get notified when an Leaflet LayerGroup is shown or hidden?
我想在用户单击图层控件中的 "Cities" 复选框时收到通知 - 它显示或隐藏 linked example. Here is a JSFiddle 中的城市标记以供使用。
我看到了 LayerGroup derives some events from FeatureGroup. Please correct me if I am wrong: As far as I understand showing and hiding the markers is not the same as layeradd and layerremove?!
input
元素没有 id
绑定到:
<label>
<input class="leaflet-control-layers-selector" type="checkbox" checked="">
<span> Cities</span>
</label>
当标记的可见性切换时如何通知我?
您可以使用 jQuery 到 select 输入元素,使用其 class:
$('.leaflet-control-layers-selector').click(function(){
alert('something')
});
此外,如果您有不止一层,您可以通过单击其中一个复选框来检查地图是否包含一层。
$('.leaflet-control-layers-selector').click(function(){
if(map.hasLayer(cities)) alert('something');
});
更新
您还可以使用地图事件 overlayadd 和 overlayremove,如下所示:
map.on({
overlayadd: function(e) {
if (e.name === 'Cities') alert('added');
},
overlayremove: function(e) {
if (e.name === 'Cities') alert('removed');
}
});
这是您示例的更新后的 JSFiddle:http://jsfiddle.net/pufanalexandru/g54efr69/1/
我想在用户单击图层控件中的 "Cities" 复选框时收到通知 - 它显示或隐藏 linked example. Here is a JSFiddle 中的城市标记以供使用。
我看到了 LayerGroup derives some events from FeatureGroup. Please correct me if I am wrong: As far as I understand showing and hiding the markers is not the same as layeradd and layerremove?!
input
元素没有 id
绑定到:
<label>
<input class="leaflet-control-layers-selector" type="checkbox" checked="">
<span> Cities</span>
</label>
当标记的可见性切换时如何通知我?
您可以使用 jQuery 到 select 输入元素,使用其 class:
$('.leaflet-control-layers-selector').click(function(){
alert('something')
});
此外,如果您有不止一层,您可以通过单击其中一个复选框来检查地图是否包含一层。
$('.leaflet-control-layers-selector').click(function(){
if(map.hasLayer(cities)) alert('something');
});
更新
您还可以使用地图事件 overlayadd 和 overlayremove,如下所示:
map.on({
overlayadd: function(e) {
if (e.name === 'Cities') alert('added');
},
overlayremove: function(e) {
if (e.name === 'Cities') alert('removed');
}
});
这是您示例的更新后的 JSFiddle:http://jsfiddle.net/pufanalexandru/g54efr69/1/