當百度地圖中出現多個圖層時,可用以下方法删除指定圖層:
//删除屬性為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);
}
}
}
}
}