天天看點

【百度地圖】删除指定覆寫物

當百度地圖中出現多個圖層時,可用以下方法删除指定圖層:

//删除屬性為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);
                }
            }
        }
    }
}
           

繼續閱讀