Mapbox切换多个图层的可见性

时间:2014-06-02 23:28:59

标签: javascript leaflet mapbox

我正在尝试使用此功能切换Leaflet / Mapbox地图中图层的可见性:

var showOne = document.getElementById("one");

showOne.onclick = function(e) {
    if (this.className='active') {
        map.removeLayer(groupOne);
        this.className = '';
    } else {
        map.addLayer(groupOne);
        this.className = 'active';
    }
};

关闭一层但不重新打开。如何将图层切换回可见?然后,我该如何切换多个图层 - 这会起作用:

var showOne = document.getElementById("one");

showOne.onclick = function(e) {
    if (this.className='active') {
        map.removeLayer(groupOne);
        map.removeLayer(groupTwo);
        this.className = '';
    } else ...

fiddle

2 个答案:

答案 0 :(得分:1)

不确定这是否是唯一的问题,但是:

if (this.className='active') { // Assigns 'active' to className (always true)

应该是:

if (this.className=='active') { // Compares className with 'active'

编辑:似乎可以做到这一点:http://jsfiddle.net/Q3hfP/1/

答案 1 :(得分:1)

好的,我发现其他文档表明答案是形成一个layerGroup:

var layersAll = L.layerGroup([groupOne, groupTwo]);

...

map.removeLayer(layersAll);