使用产品:iserver 11c、iclient for leaflet 11i
问题详细描述:我在iserver中发布了多个矢量地图服务,并在leaflet中进行叠加。需求是通过点击鼠标获得对应要素的属性信息。
我的思路是通过鼠标点击获得最顶部图层,并将图层名称传递进查询服务中。
但获取不到最顶部的图层,想请教一下有什么其他方法么?
代码如下:
var topLayer;
var layers = [];
map.eachLayer(function(layer) {
    if (layer instanceof L.LayerGroup) {
        layers = layers.concat(layer.getLayers());
    } else {
        layers.push(layer);
    }
});
map.on('click', function(e) {
    var pixel = map.project(e.latlng);
    topLayer = null;
    for (var i = layers.length - 1; i >= 0; i--) {
        if (layers[i].options.interactive && map.getBounds().contains(layers[i].getBounds())) {
            var p = map.project(layers[i].getLatLng());
            if (pixel.x > p.x && pixel.y > p.y) {
                topLayer = layers[i];
                break;
            }
        }
    }
    console.log(topLayer);
});