【问题标题】:setOpacity for multiple markers at the time同时设置多个标记的 setOpacity
【发布时间】:2017-04-11 16:36:54
【问题描述】:

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

【问题讨论】:

    标签: leaflet markers


    【解决方案1】:

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

    在传单中

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

    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);
    });
    

    【讨论】:

    • 我试过纯的,只是用 setIcon() 函数 JS 变体(甚至在我看到这个论坛之前,所以我开始挖掘),它对我不起作用......我收到错误: marker.setOpacity 不是函数...
    • @la_femme_it Dobrý den,也许“标记”对象实际上不是标记类型?
    • 是的。它确实与内置功能的传单一起使用 :) 可能是 Zeppelin 特定的问题,我不知道。 Javascript 超出了我的范围。赫兹基巢穴
    猜你喜欢
    • 2015-01-05
    • 2018-12-19
    • 2020-06-05
    • 1970-01-01
    • 2020-11-01
    • 2015-03-15
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    相关资源
    最近更新 更多