如何在Android版Mapbox Maps SDK中移除指定地图注解
Mapbox Maps SDK for Android 移除地图特定注解方案
要移除地图上的特定点注解,核心思路是先通过坐标等唯一标识匹配到目标注解的ID,再通过注解管理器执行删除操作,可直接参考如下Kotlin实现:
private fun removeMarkerFromMap(point: Point){ val pointAnnotationOptions: PointAnnotationOptions = PointAnnotationOptions().withPoint(point) var annotationID : Long? = null // 遍历当前管理器下的所有注解,匹配坐标一致的目标注解 pointAnnotationManager.annotations.forEach { if(it.point == point) { annotationID = it.id } } pointAnnotationManager.delete(pointAnnotationOptions.build(annotationID!!, pointAnnotationManager)) }
关键注意事项
- 上述代码中使用的
pointAnnotationManager必须设置为全局变量,在地图初始化阶段完成创建后,整个地图生命周期内仅初始化一次,重复初始化会导致注解匹配失败、删除操作不生效 - 如果需要一次性清空当前管理器下挂载的所有注解,无需遍历匹配ID,直接调用
pointAnnotationManager.deleteAll()方法即可完成批量删除
内容的提问来源于stack exchange,提问作者Yatin Garg
相关产品推荐
相关产品推荐

