vue3与ts中leaflet的多个maker标记实现打开其它图层关闭,关闭其它图层显示
时间: 2024-03-09 12:44:32 浏览: 103
您好!为了实现这个功能,您可以按照以下步骤进行操作:
1. 定义一个数组来存储所有的标记对象。
```typescript
const markers: L.Marker[] = [];
```
2. 创建地图时,为每个标记对象添加一个点击事件监听器。在点击事件中,可以实现打开该标记对应的图层并关闭其它图层。
```typescript
const map = L.map("map").setView([51.505, -0.09], 13);
// 创建标记对象
const marker1 = L.marker([51.5, -0.09]).addTo(map);
const marker2 = L.marker([51.49, -0.1]).addTo(map);
// 将标记对象添加到数组中
markers.push(marker1);
markers.push(marker2);
// 为每个标记对象添加点击事件监听器
marker1.on("click", () => {
// 关闭所有标记对应的图层
markers.forEach((marker) => {
marker.closePopup();
marker.removeFrom(map);
});
// 打开该标记对应的图层
marker1.bindPopup("Marker 1").addTo(map);
});
marker2.on("click", () => {
// 关闭所有标记对应的图层
markers.forEach((marker) => {
marker.closePopup();
marker.removeFrom(map);
});
// 打开该标记对应的图层
marker2.bindPopup("Marker 2").addTo(map);
});
```
这样,当您点击一个标记时,它对应的图层会被打开,其它标记对应的图层会被关闭。希望这个回答能够帮到您!
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![.zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)