• 首页

  • 官方

  • 主题

  • 关注

  • 联系

鸿蒙应用开发——单独去除某个地图上的某个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覆盖物部分找到的(官方文档实在是不完善)

image

	this.markers?.forEach(async (markersItem, index) => {
            markersItem.remove();
	})
posted @ 2024-09-26 09:31  戈小戈  阅读(40)  评论(0编辑  收藏  举报