Leaflet:LayerGroup、FeatureGroup


LayerGroup(Layer)

Layer

用法:把一些Layer集中到一個組Group中,以便作為一個整體進行操作。如果把該Group加入到了Map中,任何從這個Group增加或者移除Layer的行為都將導致該Layer在Map中被執行相同的操作。

1、用例

L.layerGroup([marker1 , marker2])
        .addLayer(polyline)
        .addTo(map);

這段代碼表示,①創建一個LayerGroup,該LayerGroup初始是由兩個Layer對象marker1和marker2組成的;②在初始LayerGroup中加入了一個新的Layer對象polyline;③把該LayerGroup加入到Map中。

2、初始化

L.layerGroup(<Layer[]>layers? , <Object>options)

3、參數

繼承自Layer

4、方法

addLayer(<Layer>layer) //把layer加入到Group中
removeLayer(<Layer>layer) //從Group中移除layer
removeLayer(id) //移除id對應的layer
clearLayers() //移除Group中所有layer
eachLayer( <Function> fn , <Object>context? ) //對每個Layer都進行函數fn,context是每個fn的上下文
getLayer(id) //返回id對應的Layer
getLayers() //返回一個Layer[],其中包含了所有的Layer
setZIndex(n) //設置該Group的zIndex,會對Group中的所有Layer都設置為相同的zIndex
getLayerId(<Layer>layer)//返回layer的ID

繼承自Layer的方法

 

FeatureGroup(LayerGroup)

繼承自LayerGroup,可以讓Group中的Layer更容易實現同一件事情:

  • bindPopup將為Group中的所有Layer都綁定一個Popup(bindTooltip也同樣);
  • 作用在Group上的event Handler,將對其中Layer上的事件進行響應,包括自定義事件和鼠標事件;
  • 擁有layeraddlayerremove事件

1、用例

L.featureGroup([marker1 , marker2 , polyline])
        .bindPopup('Helloworld!')
        .on('click',function(){alert('Clicked on a member of the group!');})
        .addTo(map);

這個FeatureGroup由三個Layer組成:marker1、marker2、polyline;每個Layer都有一個Popup,且每個Layer都會對事件'click'進行響應。

 2、初始化

L.featureGroup(<Layer[]>layers?, options)

3、參數

繼承於Layer

4、方法

setStyle(<Path options>style)//對Group中每個實現了setStyle方法的Layer用給定參數進行setStyle
bringToFront() //把該Group放在其他所有Layer之上
bringToBack() //把該Group放在其他所有Layer之下
getBounds() //返回該Group的Bounds

其他方法繼承自LayerGroup、Layer


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM