以编程方式移除单张覆盖图层图层
问题描述:
使用单张JavaScript。我想我的“清除按钮”做两件事情......以编程方式移除单张覆盖图层图层
1)取消所有L.Control层 2)从地图中删除当前覆盖
我可以用做第1易足够此代码:
var checks = document.querySelectorAll('[type = "checkbox"]'), i;
function uncheckBoxes() {
for (i = 0; i < checks.length; ++i) {
checks[i].checked = false;
}
}
下一个更棘手一点。我曾尝试使用removeLayer()和clearLayers()函数,但它们不起作用。在传单文档中,我没有看到从地图中删除L.control overlayMap图层的方法,除非您自己实际取消选中它。
任何对此的深入了解将不胜感激。
答
不完全确定您在编程上从您的地图中移除某些图层/覆盖图时遇到了什么困难。
通常很平常(map.removeLayer(layer)
),图层控件会自动反映地图上发生的情况(在这种情况下,如果layer
是其中一个叠加层,则其关联复选框将变为未勾选)。
至于去除地图所有叠加,你只需要通过他们保持一个参考的叠加,循环,从地图上删除这些:
var overlays = {
'Name 1': someLayer,
'Name 2': someOtherLayer
};
L.control.layers(null, overlays).addTo(map);
// Whenever you want to remove all overlays:
for (var name in overlays) {
map.removeLayer(overlays[name]);
}