vue3与ts中leaflet的多个maker标记如何关闭
时间: 2024-03-08 19:50:40 浏览: 24
要关闭多个 Leaflet Marker 标记,可以遍历 Marker 数组并调用每个 Marker 的 `remove()` 方法。在 Vue 3 和 TypeScript 中,可以在组件的 `mounted()` 生命周期钩子中执行此操作。以下是示例代码:
```typescript
import { Component, Vue } from 'vue'
import * as L from 'leaflet'
@Component
export default class MyMap extends Vue {
markers: L.Marker[] = []
mounted() {
// 创建多个 Marker 并添加到地图上
const marker1 = L.marker([51.5, -0.09]).addTo(this.map)
const marker2 = L.marker([51.6, -0.1]).addTo(this.map)
const marker3 = L.marker([51.7, -0.11]).addTo(this.map)
// 将 Marker 添加到 markers 数组中
this.markers.push(marker1, marker2, marker3)
}
// 关闭所有 Marker
closeMarkers() {
this.markers.forEach(marker => marker.remove())
}
}
```
在上面的代码中,`mounted()` 生命周期钩子中创建了多个 Marker 并将它们添加到地图上,并将每个 Marker 添加到了 `markers` 数组中。`closeMarkers()` 方法遍历 `markers` 数组并调用每个 Marker 的 `remove()` 方法来关闭所有 Marker。