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;
}
}
}
1 个回复
阿峰
有的····
map.removeOverlay(element);
//移除所有不在视口内的覆盖物
for (var key in markerNotInView) {
var element = markerNotInView[key].marker;
map.removeOverlay(element);
delete mapOverlayMapping[key];
}