jody
jody
  • 发布:2015-05-09 10:33
  • 更新:2015-09-06 19:13
  • 阅读:3854

maps如何从覆盖物中删除特定点?

分类:HTML5+

removeOverlay可删除覆盖物,但当向地图中动态添加多个点时如何删除指定的点?
在百度api中有getOverlays()能获取所有覆盖物对象,通过lable可进行识别,但在H5的maps里没有该方法,请教大家要实现这样的效果如何做?

百度js API例子

    function addMarker(point,label){  
        var marker = new BMap.Marker(point);  
        map.addOverlay(marker);  
        marker.setLabel(label);  
    }  
    // 随机向地图添加25个标注  
    var bounds = map.getBounds();  
    var sw = bounds.getSouthWest();  
    var ne = bounds.getNorthEast();  
    var lngSpan = Math.abs(sw.lng - ne.lng);  
    var latSpan = Math.abs(ne.lat - sw.lat);  
    for (var i = 0; i < 10; i++) {  
        var point = new BMap.Point(sw.lng + lngSpan * (Math.random() * 0.7), ne.lat - latSpan * (Math.random() * 0.7));  
        var label = new BMap.Label("我是id="+i,{offset:new BMap.Size(20,-10)});  
        addMarker(point,label);  
    }  
    function deletePoint(){  
        var allOverlay = map.getOverlays();  
        for (var i = 0; i < allOverlay.length -1; i++){  
            if(allOverlay[i].getLabel().content == "我是id=6"){  
                map.removeOverlay(allOverlay[i]);  
                return false;  
            }  
        }  
    }
2015-05-09 10:33 负责人:无 分享
已邀请:
阿峰

阿峰

有的····
map.removeOverlay(element);

//移除所有不在视口内的覆盖物
for (var key in markerNotInView) {
var element = markerNotInView[key].marker;
map.removeOverlay(element);
delete mapOverlayMapping[key];
}

该问题目前已经被锁定, 无法添加新回复