jquery – 使用自己的按钮隐藏/显示Leaflet中的layerGroups

前端之家收集整理的这篇文章主要介绍了jquery – 使用自己的按钮隐藏/显示Leaflet中的layerGroups前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一张带有几个标记的传单地图.我已将这些标记放在“图层组”中,以便能够显示和隐藏标记类别.
这些是我的标记
var aa = L.marker([48.185556,11.620278]).bindPopup('AA'),bb = L.marker([48.152222,11.592778]).bindPopup('BB'),cc = L.marker([48.161209,11.597989]).bindPopup('CC'),dd = L.marker([48.14350,11.58775]).bindPopup('DD'),ee = L.marker([48.14989,11.59094]).bindPopup('EE'),ff = L.marker([48.15958,11.60608]).bindPopup('FF');

var restaurants = L.layerGroup([aa,bb]);
var sport = L.layerGroup([cc,dd]);
var sights = L.layerGroup([ee,ff]);

当我使用图层控件和overlayMaps时,这非常有效:

var overlayMaps = {
"Restaurants": restaurants,"Sport": sport,"Sights": sights
};

L.control.layers(overlayMaps).addTo(map);

但现在我希望能够使用我自己的“按钮”(图标)来完成这项工作(隐藏和显示图层组).我的HTML:

<div class="header">
            <a href="#">
            <span class="fontawesome-food"></span>
            <span class="fontawesome-heart-empty"></span>
            <span class="fontawesome-eye-open"></span>
            </a>
    </div>

我想这可能与removeLayer或类似的东西,但我只是不知道如何让它工作(显示和隐藏餐厅,运动和景点层).因此,当我点击标题中的图标并且第二次单击时它们消失时,我想要表明我的图层是可见的.非常感谢!

解决方法

首先,您需要每个图层的链接
<ul>
    <li><a id="restaurants" href="#">restaurants</a></li>
    <li><a id="sport" href="#">sport</a></li>
    <li><a id="sights" href="#">sights</a></li>
</ul>

然后,对于每个链接,您可以编写这样的处理程序(使用jQuery的示例)

$("#restaurants").click(function(event) {
    event.preventDefault();
    if(map.hasLayer(restaurants)) {
        $(this).removeClass('selected');
        map.removeLayer(restaurants);
    } else {
        map.addLayer(restaurants);        
        $(this).addClass('selected');
   }
});

你有一个例子http://jsfiddle.net/FranceImage/c5Yfb/

猜你在找的jQuery相关文章