传单map.RemoveLayer无法正常工作-未捕获的TypeError:无法读取未定义的属性'_removePath'

时间:2019-12-03 11:48:23

标签: javascript leaflet geojson

关于我之前的问题

Leaflet checking and disabling GeoJSON sublayers troubleshoots

在这里

https://gis.stackexchange.com/questions/343444/leaflet-geojson-sublayers-checked-on-off/

我决定将这段代码删除,然后找出导致问题的具体行

mvn dependency:tree -Dscope=compile

在这种情况下,行 (document.querySelector("input[name=infill]").addEventListener('change', function() { if (this.checked) map.addLayer(infill); else map.removeLayer(infill); })) 会引起问题。这意味着else map.removeLayer(infill);出了点问题。

有人可以建议吗?

感谢与问候

2 个答案:

答案 0 :(得分:1)

 

在删除图层之前添加波纹管条件

if(map.hasLayer(infill)) {
  map.removeLayer(infill);
}

答案 1 :(得分:0)

如果您打算做很多事情,实用程序功能将帮助简化您的代码,如下所示:

(document.querySelector("input[name=infill]").addEventListener('change', function() {
 switchLayer(infill, this.checked);
}

function switchLayer(layer, state) {
  if (state && !map.hasLayer(layer) {
   map.addLayer(layer);
  }
  else if (!state && map.hasLayer(layer)) {
    map.removeLayer(layer);
  }
}