Leaflet map.RemoveLayer 不工作 - 未捕获类型错误:

关于我之前的问题


传单检查和禁用 GeoJSON 子层故障排除


和这里


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


我决定去掉这段代码,然后发现是哪一行特别导致了这个问题


  (document.querySelector("input[name=infill]").addEventListener('change', function() {

  if (this.checked) map.addLayer(infill);

  else map.removeLayer(infill);

  }))

在这种情况下,线路 else map.removeLayer(infill);会导致问题。这意味着,有什么问题map.removeLayer(infill)。


有人可以建议吗?


缥缈止盈
浏览 579回答 2
2回答

神不在的星期二

在删除图层之前添加波纹管条件if(map.hasLayer(infill)) {  map.removeLayer(infill);}

catspeake

如果您要经常这样做,实用程序函数将有助于简化您的代码,如下所示:(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);  }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript