欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-02 09:24:39
...

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

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