天天看点

【百度地图】删除指定覆盖物

当百度地图中出现多个图层时,可用以下方法删除指定图层:

//删除属性为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);
                }
            }
        }
    }
}
           

继续阅读