为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

缥缈止盈 2022-01-20 20:42:07
关于我之前的问题传单检查和禁用 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)。有人可以建议吗?
查看完整描述

2 回答

?
神不在的星期二

TA贡献1963条经验 获得超6个赞

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


if(map.hasLayer(infill)) {

  map.removeLayer(infill);

}


查看完整回答
反对 回复 2022-01-20
?
catspeake

TA贡献1111条经验 获得超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);

  }

}


查看完整回答
反对 回复 2022-01-20
  • 2 回答
  • 0 关注
  • 578 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信