基于百度地图API删除指定的覆盖物

引用百度地图API过程中,想删除指定的覆盖物,有很多很多的坑。什么clearOverlay()方法,直接给我所有覆盖物都给干没了。还有网上介绍的removeOverlay(对象),这种又介绍不清楚,然后自己经过实践,最终解决了。

直接上图、上代码。

查询所有地图的覆盖物代码:

// 获取所有的地图覆盖物
var allOverlay = map.getOverlays();
console.log(allOverlay);

 

然后看控制台输出,会输出一堆东西,我们只需要关心自己的内容就行了。这个图看看就行了。继续看下面!

 

 

上面只是举个例子,就是说会有几十个覆盖物出现,我们需要找到我们自己要的那个覆盖物,然后删除。

这里我圈出来一个“BMapLib.PoiLayer”,这个里面有很多,然后我需要的其实是:"BMapLib.ChannelLayer",里面有个属性叫做“poiInfo”,然后呢这个poiInfo的值为channel,形式如下:poiInfo: "channel"

我们只需要用循环,然后找到这个poiInfo,然后判断您是否等于“channel”,如果等于,就将这个覆盖物删除就对了!代码如下:

// 判断是否是选择的基础单元,然后先将整个基础单元的信息给移除,再新增加周边基础单元信息
for(var i = 0; i < allOverlay.length; i++) {
    if("channel" == allOverlay[i].poiInfo) {
        map.removeOverlay(allOverlay[i]);
         // 这里一定要继续删除下一个!不然是不能把图标给删除的!至于什么原因,打印一下allOverlay即可明了
        map.removeOverlay(allOverlay[i+1]);
    }
}

这里就是进行判断,然后调用removeOverlay(allOverlay[i])覆盖物方法!这里强调一下,我是必须再删除下一个才能够把我的覆盖物移除,你们做的过程中,根据实际需要来删!

更多精彩敬请关注公众号

Java极客思维

微信扫一扫,关注公众号

 

 

清除百度地图指定覆盖物可以通过以下步骤实现: 1. 首先,确保已经加载了百度地图API,并创建了地图实例。 2. 在地图上绘制了覆盖物后,为了清除指定覆盖物,需要为每个覆盖物添加一个唯一的标识符(通常是一个字符串)。 3. 在需要清除指定覆盖物的时候,通过调用API提供的方法,查找并获取需要清除的覆盖物对象。 4. 调用获取到的覆盖物对象的`remove()`方法,将其从地图中移除。 以下是一个示例代码,演示了如何清除指定覆盖物。 ```javascript // 创建地图实例 var map = new BMap.Map("map-container"); // 添加覆盖物,并为其设置唯一标识符 var marker1 = new BMap.Marker(new BMap.Point(116.404, 39.915)); marker1.myId = "marker1"; map.addOverlay(marker1); var marker2 = new BMap.Marker(new BMap.Point(116.417, 39.909)); marker2.myId = "marker2"; map.addOverlay(marker2); // 清除指定覆盖物 function removeOverlayById(id) { var overlays = map.getOverlays(); for (var i = 0; i < overlays.length; i++) { if (overlays[i].myId === id) { map.removeOverlay(overlays[i]); break; } } } // 调用清除覆盖物的方法 removeOverlayById("marker1"); ``` 以上代码示例中,我们通过为每个覆盖物对象设置了`myId`属性,代表它们的唯一标识符。然后,通过遍历地图上所有覆盖物对象的方式,找到需要清除的覆盖物对象,并调用地图实例的`removeOverlay()`方法进行清除。 希望以上回答对您有帮助!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值