Leaflet-根据变量添加和删除列表中的所有图层

Leaflet- add and remove all layers in list based on variable

首先让我声明我不是很擅长 Javascript 我觉得这是一个简单的格式问题。

我正在尝试根据变量向地图添加和删除图层;在这种情况下 num。我有根据点击次数添加或删除 num 的函数。

我可以使用下面代码中的 if 语句轻松添加和删除一层。我想做的是构建一个图层列表,然后遍历它们并从地图中添加或删除它们。

这就是我的

 var one = [Township,Section] \list of layers
 for (i = 0; i < one.length; i++) {
  if (num != 1 && map.hasLayer(i)) {
    map.removeLayer(i);
  }
  if (num == 1 && map.hasLayer(i) == false)
    {
      map.addLayer(i);
    }
  }  

If 语句在一层(没有 for 语句)上工作正常,但我无法通过列表第一层中的所有层将其到达 运行。

如果有人有任何想法,我会很感激。

i 是一个整数值,不是一个图层。所以 map.hasLayer(i)map.removeLayer(i) 接受了错误的参数类型。尝试使用 map.hasLayer(one[i])map.removeLayer(one[i])

编辑:还有 map.addLayer(one[i])