Mapbox.js / Leaflet如何在点击时获取MultiPolyon的属性?

时间:2015-07-05 20:44:34

标签: javascript leaflet mapbox

点击它时,我在尝试显示多字形功能的属性时遇到了一些麻烦。

该要素属于由多边形要素和MultiPolygon要素组成的要素集合。

可以在以下网址查看代码:http://bl.ocks.org/rustyb/fcd0b674a6d889a7529a

// load the geojson
counties.loadURL('cc.geojson')
  .on('ready', done); 

// log county name when feature clicked.
counties.on('click', function(e) {
        console.log(e.layer.feature.properties.NAME);
    });

没什么好看的。但是,当我单击MultiPolygon时,它不会返回该功能的属性。

从查看传单返回的内容开始,它也不会将该功能作为featureGroup返回。

如果有人对此有任何建议,我会非常感激!

1 个答案:

答案 0 :(得分:1)

传单作者在这里。在这种情况下,e.layer返回的是作为要素的一部分的形状,而不是要素本身(具有feature属性)。

这已在几乎发布的Leaflet 1.0 beta 1中得到修复,但对于当前版本,解决方法是将点击侦听器分别放在每个层上(例如,使用counties.eachLayer进行迭代),并依赖{{ 1}}而不是e.target