我认为这个问题已经说明了一切。我正在使用leaflet。我正在将三个图层加载到地图上。
然而,我无法知道在点击地图后我点击的是哪一层。基本上是因为没有在图层上设置事件处理程序,只在地图上设置。
我还尝试将图层添加到功能组中,并将单击事件添加到此功能组中。但是,单击地图不会导致任何事件/响应。
这是我在featureGroup中所做的:
addWaterNameLayers: function() {
var knownWaters = L.tileLayer.wms(getGeoServer('wms', geoEnviroment), {
layers: this.wmsLayers.known.name,
format: 'image/png',
opacity: 0,
styles: 'cursor: pointer',
transparent: true,
attribution: ""
});//.addTo(this.mapInfo);
var unknownWaters = L.tileLayer.wms(getGeoServer('wms', geoEnviroment), {
layers: this.wmsLayers.unknown.name,
format: 'image/png',
opacity: 0.3,
styles: '',
transparent: true,
attribution: ""
});
L.FeatureGroup(knownWaters, unknownWaters).on('click', function(event) {
console.log('click');
this.handleClick(event);
},this);
//this part will work on mapclick, so on featuregroup it should work?
//when clicking on the map
/*
this.mapInfo.on('click', function(event) {
this.handleClick(event);
}, this);
*/
},在上面的代码中,您还可以看到te地图上的单击事件...这个行得通。在功能组上不是这样的。
此外,当我将featureGroup的代码更改为以下代码时,它也不会起作用:
var featGr = L.FeatureGroup(knownWaters, unknownWaters).on('click', function(event) {
this.handleClick(event);
},this);
var featGr = L.FeatureGroup(knownWaters, unknownWaters);
featGr.on('click', function(event) {
this.handleClick(event);
},this);将featureGroup添加到层也不会执行任何操作...
发布于 2014-11-27 20:28:35
将您的层放在L.FeatureGroup中。L.FeatureGroup是L.LayerGroup的扩展,用于添加事件。它还支持clickevent,所以这正是你想要的。查看文档:http://leafletjs.com/reference.html#featuregroup
发布于 2017-05-18 17:29:14
event.layer是图层数据
event.originalEvent.path[0]是您单击的元素吗
https://stackoverflow.com/questions/27168628
复制相似问题