Leaflet js:如何统计Layer Group中的图层?

时间:2018-01-18 18:12:09

标签: count leaflet layer

我想制作一张只允许一次检查/显示2个图层的地图,如果选择更多,它应该显示一些警告。

搜索互联网后,查看这些可能的解决方案和参考文献:firstsecondthird等。 ...我仍然无法让我的代码执行这么简单的操作:计算图层组中的图层并根据该图标显示消息。

这是我的代码:

    var NumbActive = new L.layerGroup();
    NumbActive.addTo(map);
    map.on('overlayadd',function(active){
    if (active.layer===LAY1){
        NumbActive.addLayer(LAY1);
    }});
    map.on('overlayadd',function(active){
    if (active.layer===LAY2){
        NumbActive.addLayer(LAY2);
    }});
    map.on('overlayadd',function(active){
    if (active.layer===LAY3){
        NumbActive.addLayer(LAY3);
    }}); 

    size = NumbActive.getLayers().length;
        var options = { timeout: 5000 };
        var box = L.control.messagebox(options).addTo(map);
    if (size >2){  
        box.show( 'Please choose only 2 layers at the same time!' );
        };

我也使用this plugin来显示消息,这通常可以正常工作,但在这种情况下根本不行。

我认为layerGroup.getLayers().length应该给出一个数字(数组的长度)?它应该工作但不知何故它没有。

请告诉我你的建议。它不会那么复杂。我想知道我是否犯了一些可以纠正的小错误,或者我是否应该为插件编写一些新功能/搜索。

提前致谢! :)

0 个答案:

没有答案