Nik*_* VJ 5 dynamic count leaflet
我有一个应用程序,其中标记/特征从多个源加载到图层/图层组(正确的术语?),并且它们是动态加载的(基于某些属性feature.properties和其他条件).我希望能够在侧面板上告知当前加载到显示层中的标记数量.只给出图层的变量/标识符,如何找到加载到其中的标记/特征的数量?
var layer1= L.layerGroup();
layerControl.addOverlay(layer1, 'Layer 1');
... // loading stuff into this layer from different sources
console.log(layer1.length); // doesn't work, gives "undefined"
console.log(JSON.stringify(layer1)); // doesn't work, "TypeError: cyclic object value"
Run Code Online (Sandbox Code Playgroud)
..所以我猜图层不能像JSON对象那样对待.
我找到了一个相关的问题,但那里的答案只解决了从一个geoJson源加载的标记,并建议一个简单counter++的onEachFeature.我在我的应用程序中使用了很多层,并且希望不必为每一个都添加单独的计数器变量,而只是想使用层的变量/标识符来计算.如果我们可以将一个图层添加到地图或群组中,那么我们应该能够计算其中的内容,对吧?
您需要使用该getLayers()函数,它将返回变量(对象)中的所有功能.然后你可以得到这些功能的长度.
简而言之,只需尝试
layer_variable.getLayers().length;
Run Code Online (Sandbox Code Playgroud)