使用传单javascript。我想让我的“清除按钮”做两件事......
1) 取消选中所有 L.Control 图层 2) 从地图中删除当前覆盖
我可以使用以下代码轻松完成第一个:
var checks = document.querySelectorAll('[type = "checkbox"]'), i;
function uncheckBoxes() {
for (i = 0; i < checks.length; ++i) {
checks[i].checked = false;
}
}
Run Code Online (Sandbox Code Playgroud)
接下来就有点棘手了。我曾尝试使用 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]);
}
Run Code Online (Sandbox Code Playgroud)
演示:https : //jsfiddle.net/3v7hd2vx/357/
| 归档时间: |
|
| 查看次数: |
3050 次 |
| 最近记录: |