当百度地图中出现多个图层时,可用以下方法删除指定图层:
//删除属性为marker的覆盖物
var allOverlay=map.getOverlays();
if (allOverlay.length) {
for (var i=0; i < allOverlay.length; i++) {
if(allOverlay[i].toString() == "[object Marker]"){
map.removeOverlay(allOverlay[i]);
}
}
}
//删除属性为Label的覆盖物
var allOverlay=map.getOverlays();
if (allOverlay.length) {
for (var i=0; i < allOverlay.length; i++) {
if(allOverlay[i].toString() == "[object Label]"){
map.removeOverlay(allOverlay[i]);
}
}
}
以此类推,还可以删除属性为Polygon、Overlay等的覆盖物。
//删除指定marker
//在添加marker时,可以给marker添加属性,比如:marker.id="111";
// 删除id为111的marker
deleteOverlays('111');
function deleteOverlays(content) {
var allOverlay = map.getOverlays();
var labelContent="";
if (allOverlay.length) {
for (var i=0; i < allOverlay.length; i++) {
if(allOverlay[i].toString() == "[object Marker]"){
var elem = allOverlay[i];
labelContent = allOverlay[i].id;
if (labelContent && labelContent == content) {
map.removeOverlay(elem);
}
}
}
}
}