百度地图开发中的清除覆盖物是指删除地图上的某些元素,例如标记、折线、多边形、圆形等。这些元素通常被称为覆盖物。在开发过程中,有时需要清除这些覆盖物,以实现地图的更新或调整。
清除覆盖物的方法通常取决于覆盖物的类型和添加到地图的方式。例如,使用JavaScript API添加的覆盖物可以通过调用相应的方法来清除。对于标记(Marker),可以使用map.removeOverlay(marker)
方法来清除;对于折线(Polyline),可以使用map.removeOverlay(polyline)
方法来清除;对于多边形(Polygon)和圆形(Circle),也可以使用类似的方法来清除。
清除覆盖物有两个方法:map.removeOverlay()或者 map.clearOverlays()。而 clearOverlays()方法一次移除全部的覆盖物,removeOverlay()一次移除一个指定覆盖物。
一、map.clearOverlays()
当使用Map.clearOverlays()方法一次性移除全部覆盖物时会触发此事件。
二、map.clearOverlays()
当使用Map.removeOverlay()方法移除单个覆盖物时会触发此事件
1.设置marker的nam属性
var marker = new BMap.Marker(points, {
icon: new BMap.Icon(icon, new BMap.Size(30, 36)),
offset: new BMap.Size(0, -18)
});
marker.name = name;//覆盖物设置名称;
map.addOverlay(marker);
获取所有覆盖物,然后删除指定名称的覆盖物。
var allOverlay = map.getOverlays();
allOverlay.map(item => {
//console.log(item);
if (item.name === params.name) {
map.removeOverlay(item);
}
})
2.设置文本标签属性
var label = new BMap.Label("我是id="+i,{offset:new BMap.Size(20,-10)});
addMarker(point,label);
function deletePoint(){
var allOverlay = map.getOverlays();
for (var i = 0; i < allOverlay.length -1; i++){
if(allOverlay[i].getLabel().content == "我是id=1"){
map.removeOverlay(allOverlay[i]);
return false;
}
}
@漏刻有时