2017-04-11 60 views
1

我爲我的項目使用了單張,我想在其中使用過濾器標記。要做到這一點,我會將所有標記的setOpacity設置爲0,併爲我的目標重新設置setOpacity爲1。我知道小冊子允許爲每個市場設置透明度,但是我可以同時設置所有標記嗎? 感謝您的幫助!當時多個標記的setOpacity

回答

2

有很多方法來實現這一

在leaftlet

創建一個圖層組,每個標記添加到該組:

var myGroup = L.layerGroup([mark1, mark2, ...]); 

您可以將整個組添加到地圖。

然後,當你想標記的不透明度設置爲0,這樣做:

myGroup.eachLayer(function(layer) { 
    layer.setOpacity(0); 
}); 

小的jsfiddle例子在這裏:

https://jsfiddle.net/csblo/64phqLb7/4/

在純JavaScript

存儲所有你的標記在一個數組中。首先創建一個數組:

var allMarkers = []; 

當你創建一個新的標誌物本陣推:

var marker = L.marker(...); 
allMarkers.push(marker); 

然後,當你需要的不透明度設置爲0:

allMarkers.forEach(function(marker) { 
    marker.setOpacity(0); 
});