在Leaflet的L.control.layers中卸载图层后,Tilemill图例仍然存在

时间:2014-07-15 09:30:57

标签: javascript leaflet mapbox tilemill

请观察我的地图:http://bl.ocks.org/GotC/ab8315f6641e841442a9

我在地图中有两个图层。 Geomorfology层附有Tilemill图例。图例在按预期加载时激活,但在激活街道图层时不会卸载。我没有使用javascript的经验,我的假设是.on('unload',function())脚本是错误的,但我无法查明错误。

感谢任何帮助。

问候, 罗布

1 个答案:

答案 0 :(得分:0)

您可以改为收听地图的baselayerchange事件:

map.on('baselayerchange', function (event) {
    var legend = geomorfologie.getTileJSON().legend;

    console.log('baselayerchange to ' + event.name);

    if (event.name === 'Streets') {
        map.legendControl.removeLegend(legend);
    }

    if (event.name === 'Geomorfologie') {
        map.legendControl.addLegend(legend);
    }
});

DEMO