android百度地图清除指定覆盖物,百度地图javascript开发,删除指定覆盖物方法

在百度地图开发的过程中,经常有人问到如何删除指定覆盖物。本站openGPS.cn决定做一个分享,将自己在处理这个问题i时候写过的一个方法分享出来。

百度地图提供了清除所有覆盖物的方法,也提供了删除指定覆盖物的方法。删除所有覆盖物不用多说,随时用随时删除,代码就一句:map.clearOverlays();

然而删除指定覆盖物,这个需求很多新人不容易实现。

原因:声明过的变量,没有独立存储下来,就不知道怎么找到这个变量,然后把这个变量作为参数传进去执行删除。

本文先提供一个删除指定类型覆盖物的方法:

// openGPS.cn提示: 删除所有折线覆盖物

function clearAllPolyline() {

var allOverlay = map.getOverlays();

for (var i = 0; i 

if (allOverlay[i].toString() == "[object Polyline]") {

map.removeOverlay(allOverlay[i]);

}

}

}

// openGPS.cn提示: 删除所有lable覆盖物

function clearAllLable() {

var allOverlay = map.getOverlays();

for (var i = 0; i 

if (allOverlay[i].toString() == "[object Marker]") {

map.removeOverlay(allOverlay[i].getLabel()); //注意获取lable的方式

}

}

}

然后,在讲讲如何删除特定覆盖物,这里有个前提:在创建某个需要被操作的覆盖物之前,需要为其赋值一个id。我的示例中,所有的Marker属性都是用  marker.imei = "xxxxxx";  的方式为Marker对象赋值了一个id(tip:请记住js语法特点,直接属性赋值就可以用),遍历的时候配合对该id的检查实现删除该覆盖物。

/* openGPS.cn提示:

我的示例中,所有的Marker属性都是用  marker.imei = "xxxxxx"; 的方式为Marker对象赋值了一个id

因此,我的写法是:

先获取全部覆盖物:

然后判断覆盖物是否是Marker类型:

然后判断是否是我要删除的id(imei):

然后拿到目标对象,执行删除操作

*/

function getMapMarker(imei) {

var reMarker = null;

var allOverlay = map.getOverlays();

for (var i = 0; i 

if (allOverlay[i].toString() == "[object Marker]") {

if (allOverlay[i].getTitle() == imei) {

reMarker = allOverlay[i];

break;

}

}

}

return reMarker;

}

百度地图开发,删除指定覆盖物的教程暂时写到这里。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值