使用Leaflet的事件监听器为每个地图层和地图注册点击事件的处理程序,并检查事件的目标是哪一个。如果目标是地图层,则采取相应的操作;如果目标是地图本身,则采取另一组操作。
示例代码:
// 待注册点击事件的地图层
var myLayer = L.geoJSON(myJsonData).addTo(map);
// 在地图层上注册点击事件处理程序
myLayer.on('click', function(e) {
// 采取处理地图层的操作
console.log('点击了地图层!');
});
// 在地图上注册点击事件处理程序
map.on('click', function(e) {
// 检查事件的目标是地图层还是地图本身
if (e.originalEvent.target.classList.contains('leaflet-pane')) {
// 采取处理地图本身的操作
console.log('点击了地图本身!');
}
});