【问题标题】:How to switch between multiple map legends with leaflet.js?如何使用leaflet.js 在多个地图图例之间切换?
【发布时间】:2014-07-31 05:52:27
【问题描述】:

我正在使用leaflet.js 库根据统计数据创建多个地图。每个地图显示不同的值范围,因此当用户更改地图时更改图例会很好。

我在question 中找到了类似的示例,但我需要在两个以上的层之间切换。我尝试在代码中简单地添加更多“if”语句和逻辑运算符,但它不能正常工作:

map.on('baselayerchange', function (eventLayer) {
    if (eventLayer.name === 'Agricultural') {
        map.removeControl(VODlegend || BUDlegend || LISlegend);
        SGlegend.addTo(map);
    }
    else if  (eventLayer.name === 'Building') {
        map.removeControl(SGlegend || LISlegend || VODlegend);
        BUDlegend.addTo(map);
    }
    else if  (eventLayer.name === 'Forest') {
        map.removeControl(BUDlegend || VODlegend || SGlegend);
        LISlegend.addTo(map);
    }
    else if  (eventLayer.name === 'Water') {
        map.removeControl(LISlegend || SGlegend || BUDlegend);
        VODlegend.addTo(map);
    }
  })

Here is example of my map on jsfiddle. 如果有任何帮助,我将不胜感激。

【问题讨论】:

    标签: javascript maps leaflet legend


    【解决方案1】:

    视频传奇 || BUD传奇 || LIS传奇

    在 javascript 中,这是一个条件(结果为真或假)...不是您期望的列表

    你需要像这样跟踪你当前的控件

    SGlegend.addTo(map);
    currentLegend = SGlegend;
    
    
    map.on('baselayerchange', function (eventLayer) {
        if (eventLayer.name === 'Agricultural') {
            map.removeControl(currentLegend );
            currentLegend = SGlegend;
            SGlegend.addTo(map);
        }
        else if  (eventLayer.name === 'Building') {
            map.removeControl(currentLegend );
            currentLegend = BUDlegend;
            BUDlegend.addTo(map);
        }
        else if  (eventLayer.name === 'Forest') {
           map.removeControl(currentLegend );
            currentLegend = LISlegend;
            LISlegend.addTo(map);
        }
        else if  (eventLayer.name === 'Water') {
           map.removeControl(currentLegend );
            currentLegend = VODlegend;
           VODlegend.addTo(map);
        }
      })
    

    修改后的小提琴在这里:http://jsfiddle.net/FranceImage/X678g/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多