overlayGroup.removeLayer报错Cannot read properties of undefined (reading '_leaflet_id'),怎么删除图层覆盖物
时间: 2023-07-08 07:38:15 浏览: 100
如果你想要删除一个覆盖物图层,可以尝试以下几种方法:
1. 通过 `hasLayer` 方法检查图层是否存在于 `overlayGroup` 中,如果存在则通过 `removeLayer` 方法删除该图层。例如:
```javascript
if (overlayGroup.hasLayer(layer)) {
overlayGroup.removeLayer(layer);
}
```
2. 通过 `getLayers` 方法获取 `overlayGroup` 中的所有图层,遍历图层数组,如果找到指定的图层,则通过 `removeLayer` 方法删除该图层。例如:
```javascript
overlayGroup.getLayers().forEach(function (l) {
if (l === layer) {
overlayGroup.removeLayer(l);
}
});
```
3. 如果你已经知道要删除的图层的 `leaflet_id`,可以直接通过 `removeLayer` 方法删除该图层。例如:
```javascript
overlayGroup.removeLayer(leaflet_id);
```
其中,`leaflet_id` 是需要删除的图层的 `leaflet_id` 属性值。
请注意,在执行 `removeLayer` 方法时,必须保证该图层已经添加到了 `overlayGroup` 中。如果该图层没有被添加到 `overlayGroup` 中,执行 `removeLayer` 方法时会报错。
阅读全文