当时多个标记的setOpacity

时间:2017-04-11 07:31:53

标签: leaflet markers

我正在为项目使用传单,我想在其中使用过滤器标记。为此,我将所有标记的setOpacity设置为0,并为我的目标将setOpacity设置为1。我知道传单允许每个市场的setOpacity,但我可以同时设置所有标记吗? 谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

有很多方法可以实现这个目标

在leaftlet中

创建图层组并将每个标记添加到该组:

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

您可以将整个群组添加到地图中。

然后,当你想将标记不透明度设置为0时:

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

这里有一个小小的例子:

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

纯粹的javascript

将所有标记存储在数组中。首先创建一个数组:

var allMarkers = [];

当您创建一个新标记时,将其推入此数组:

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

然后,当你必须将不透明度设置为0时:

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