2012-08-30 78 views

回答

4

由於我的第一個答案,LayerGroup已擴展爲getLayers()方法,使解決方案很簡單:layerGroup.getLayers().length


OLD冗餘答案:

望着LayerGroup code,你應該能夠通過layerGroup._layers.length得到層數。

但請注意,_layers由實現者打算是私人的,所以我想你不能確定這將在未來的版本中工作。

如果你想留在公共API中,那麼你可以調用eachLayer並計算層數。

+0

這不會起作用_layers是一個對象。 – sidonaldson

+0

@sidonaldson - 你是對的。我錯誤地認爲_layers是一個數組。我更新了答案以反映新的API。謝謝。 –

2

Asborn暗示您可以通過任何圖層事件對象訪問地圖圖層對象。

例如

map.addEventListener('viewreset', function(event){ 
    console.log(event.target._layers); 
}, false); 

得到你需要計算的關鍵是你用ECMA(鉻,節點等),長度和最簡單的方法

Object.keys(map._layers).length 

我很驚訝,心不是一個API來獲取這個信息,如

maps.getLayers(); 

:)

編輯:居然還有:http://leafletjs.com/reference.html#layergroup

getLayers() 

並且它返回該組內的圖層數組。

相關問題