我认为问题就是这么说的。 我正在使用传单。我在地图上加载了三层。
但是我无法找到一种方法来了解点击地图后我点击的图层。 基本上是因为没有在图层上设置事件处理程序,只能在地图上设置。
我还尝试将图层添加到要素组中,并向此要素组添加点击事件。但是,点击地图不会导致任何事件/响应。
这就是我在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添加到图层也不会做任何事情......
答案 0 :(得分:1)
将图层放入L.FeatureGroup。 L.FeatureGroup是L.LayerGroup的扩展,它添加了事件。它还支持clickevent,这正是您正在寻找的。查看文档:{{3}}
答案 1 :(得分:0)
event.layer是图层数据
event.originalEvent.path [0]是您点击的元素