高德地图清除上一次操作遗留的Polygon覆盖物

解决Polygon重复添加问题
本文介绍了一种在地图应用中避免Polygon元素重复添加的方法。通过循环获取并移除指定的Polygon实例,确保每次只保留最新添加的小方块,解决了地图上出现多余覆盖物的问题。

首先先说我目前的场景。我目前项目中:一个地图划分了很多区块,每个区块都是Polygon覆盖物,用来制作鼠标滑动高亮效果。同时点击项目其他地方某处,也会在覆盖物上显示一个小方块,这个小方块我也是使用Polygon做的。

1. 项目痛点

我目前项目中:一个地图划分了很多区块,每个区块都是Polygon覆盖物,用来制作鼠标滑动高亮效果。同时点击项目其他地方某处,也会在覆盖物上显示一个小方块,这个小方块我也是使用Polygon做的。如下图:
在这里插入图片描述
高亮区域和白色方块区域都是覆盖物。
我重新添加白色方块覆盖物的时候会出现重复添加的问题。

这个时候使用Polygon再添加的时候,会出现重复添加Polygon, 即上一次操作的Polygon也遗留在覆盖物上。
网上看了很多办法,有直接移除map.remove()的。也有移除全部地图上的覆盖物map.clearMap()的。并不能解决我的问题。因为我的基础覆盖物也就是图上高亮区域是不能移除的。

于是,困扰了我一下午。自己打印map覆盖物的实例,发现了解决方法。

2. 解决方法

先说思路:还是通过 map.remove 方法,它可以接收需要移除覆盖物的实例。可以一次性移除多条。所以我们只需要循环拿到添加后的实例,然后再map.remove就好。

废话不多说,上代码


                
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值