我想制作一张只允许一次检查/显示2个图层的地图,如果选择更多,它应该显示一些警告。
搜索互联网后,查看这些可能的解决方案和参考文献:first,second,third等。 ...我仍然无法让我的代码执行这么简单的操作:计算图层组中的图层并根据该图标显示消息。
这是我的代码:
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
应该给出一个数字(数组的长度)?它应该工作但不知何故它没有。
请告诉我你的建议。它不会那么复杂。我想知道我是否犯了一些可以纠正的小错误,或者我是否应该为插件编写一些新功能/搜索。
提前致谢! :)