如何从Leaflet地图中移除L.tileLayer.wms图层?
如何在Leaflet中移除WMS图层
嘿,我来帮你解决这个问题!基于你给出的Leaflet代码,要在指定函数里移除那个WMS图层其实很简单,我分几种场景给你说明:
直接移除单个WMS图层
你已经把WMS图层实例存在了tif1变量里,Leaflet的地图对象提供了removeLayer()方法,直接在目标函数里调用就行。为了避免重复移除导致的报错,建议先判断图层是否已添加到地图上:
// 假设这是你要调用的指定函数 function removeMyWmsLayer() { // 先检查图层是否在地图上 if (map.hasLayer(tif1)) { map.removeLayer(tif1); } }
通过图层控件移除
你已经创建了图层控件并存在temp变量里,如果想通过控件的API来移除图层,也可以这么做:
function removeViaLayerControl() { // 确认图层关联的控件项存在且图层已添加 if (temp._overlays['Растр'] && map.hasLayer(tif1)) { temp.removeLayer(tif1); // 注:调用map.removeLayer(tif1)也会自动同步控件的勾选状态,效果完全一致 } }
额外小提示
如果之后需要重新添加这个WMS图层,直接调用map.addLayer(tif1)即可,图层控件的勾选状态会自动同步更新,不需要额外操作控件。
内容的提问来源于stack exchange,提问作者vaza gena
相关产品推荐
相关产品推荐

