在谷歌地图API v2,如果我想删除所有的地图标记,我可以简单地做:
map.clearOverlays();
我如何做到这一点在谷歌地图API v3?
看看参考API,我不清楚。
在谷歌地图API v2,如果我想删除所有的地图标记,我可以简单地做:
map.clearOverlays();
我如何做到这一点在谷歌地图API v3?
看看参考API,我不清楚。
当前回答
同样的问题。这段代码不再工作了。
我已经纠正了它,这样改变clearMarkers方法:
set_map(空) ---> setMap(空)
google.maps.Map.prototype.clearMarkers = function() {
for(var i=0; i < this.markers.length; i++){
this.markers[i].setMap(null);
}
this.markers = new Array();
};
文档已更新,包括关于主题的详细信息:https://developers.google.com/maps/documentation/javascript/markers#remove
其他回答
使用这个你可以删除地图上的所有标记。
map.clear();
这对你有帮助,对我也有帮助。
我找到了一个简单的解决方法(我认为):
var marker = new google.maps.Marker();
function Clear(){
marker.setMap(null);
}
for (i in markersArray) {
markersArray[i].setMap(null);
}
只在IE上工作。
for (var i=0; i<markersArray.length; i++) {
markersArray[i].setMap(null);
}
工作在chrome, firefox,如…
您需要将map null设置为该标记。
var markersList = [];
function removeMarkers(markersList) {
for(var i = 0; i < markersList.length; i++) {
markersList[i].setMap(null);
}
}
function addMarkers() {
var marker = new google.maps.Marker({
position : {
lat : 12.374,
lng : -11.55
},
map : map
});
markersList.push(marker);
}
我发现使用google-maps-utility-library-v3项目中的markermanager库是最简单的方法。
1. 设置标记管理器
mgr = new MarkerManager(map);
google.maps.event.addListener(mgr, 'loaded', function () {
loadMarkers();
});
2. 向MarkerManager添加标记
function loadMarkers() {
var marker = new google.maps.Marker({
title: title,
position: latlng,
icon: icon
});
mgr.addMarker(marker);
mgr.refresh();
}
3.要清除标记,只需要调用MarkerManger的clearMarkers()函数
mgr.clearMarkers();