鸿蒙应用开发——单独去除某个地图上的某个marker标记
鸿蒙应用开发——单独去除某个地图上的某个标记
一、将每一个创建的marker标记添加到数组中保存
@State markers?: Array<map.Marker> = [];
......
let icon = $r('app.media.busStopSign');
let markerOptions: mapCommon.MarkerOptions = {
position: {
//标点经纬度
latitude: Number(latitude),
longitude: Number(longitude)
},
icon: icon,
clickable: true,
// 设置信息窗标题
title: title,
snippet: snippet
};
// 创建Marker
let marker = await mapController.addMarker(markerOptions);
this.markers?.push(marker);
......
二、调用mapController?.clear();
方法去除地图上所有的BaseOverlay覆盖物,包括marker标记等
注意,这个是清除所有的,而且是对mapController使用的
三、调用marker.remove();
方法单独去掉某个BaseOverlay覆盖物,包括标记等
这个方法在官方文档marker标记部分并没有找到,因为marker标记继承了BaseOverlay覆盖物的方法和属性,所以这个方法是我在BaseOverlay覆盖物部分找到的(官方文档实在是不完善)
this.markers?.forEach(async (markersItem, index) => {
markersItem.remove();
})