leaflet地图,怎么删除GeoJson数据和图片叠加层

胡萝北
  • 243

image.png

image.png

如题。leaflet地图,
1、用geoJSON格式的数据在地图上面渲染了一块区域,切换到别的功能,要把地图上绘制的区域删掉,不知道怎么删除。
2、在地图上叠加了雷达图片,切换到别的功能,要把地图上叠加的图片删掉,不知道怎么删除。
希望有熟悉leaflet API的大佬指点一下。

=========
2021-05-20
不管是marker还是geoJSON格式的数据,还是图片叠加层,都叫图层:Layer

let marker1 = L.marker(...).addTo(map)
let marker2 = L.geoJSON(.....).addTo(map)
let marker3 = L.imageOverlay(...).addTo(map);

都可以这么删除

map.removeLayer(marker1)
map.removeLayer(marker2)
map.removeLayer(marker3)

但是,这样一个一个删除,就很麻烦,尤其是实际的业务中都是在地图上渲染很多个maker或者好几片区域。所以可以这样:

// 把这一组图层Layer放到同一个图层组layerGroup
let mylayerGroup = L.layerGroup([marker1, marker2, ....... ])
// 把图层组layerGroup添加到地图
map.addLayer(mylayerGroup)
// 从地图中删除图层组
map.clearLayers(mylayerGroup )

之所以之前搞不定,就是把 clearLayersremoveLayer操作的对象搞混乱了。
clearLayers 操作图层组
removeLayer 操作图层

都怪这俩名字起的不好╭(╯^╰)╮

回复
阅读 1.5k
1 个回答
✓ 已被采纳

1、首先使用一个变量接收一下let mlayer = L.geoJSON....addTo(map),删除的时候map.removeLayer(mlayer)
2、和1一模一样的用法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏