在谷歌地图API v2,如果我想删除所有的地图标记,我可以简单地做:
map.clearOverlays();
我如何做到这一点在谷歌地图API v3?
看看参考API,我不清楚。
在谷歌地图API v2,如果我想删除所有的地图标记,我可以简单地做:
map.clearOverlays();
我如何做到这一点在谷歌地图API v3?
看看参考API,我不清楚。
当前回答
我使用的速记法很好地完成了这项工作。只做
map.clear();
其他回答
要从地图中删除所有标记,创建如下函数:
1.addMarker(location):这个函数用于在地图上添加标记
2.clearMarkers():该函数从map中移除所有标记,而不是数组中
3.setMapOnAll(map):这个函数用于在数组中添加标记信息
4.deleteMarkers():该函数通过删除对数组中所有标记的引用来删除它们。
// Adds a marker to the map and push to the array.
function addMarker(location) {
var marker = new google.maps.Marker({
position: location,
map: map
});
markers.push(marker);
}
// Sets the map on all markers in the array.
function setMapOnAll(map) {
for (var i = 0; i < markers.length; i++) {
markers[i].setMap(map);
}
}
// Removes the markers from the map, but keeps them in the array.
function clearMarkers() {
setMapOnAll(null);
}
// Deletes all markers in the array by removing references to them.
function deleteMarkers() {
clearMarkers();
markers = [];
}
同样的问题。这段代码不再工作了。
我已经纠正了它,这样改变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
这是谷歌自己在至少一个样本中使用的方法:
var markers = [];
// Clear out the old markers.
markers.forEach(function(marker) {
marker.setMap(null);
});
markers = [];
检查谷歌样本完整的代码示例:
https://developers.google.com/maps/documentation/javascript/examples/places-searchbox
这是YingYang于2014年3月11日15:049在对用户原始问题的原始回复下发布的所有解决方案中最简单的一个
2.5年后,我在谷歌地图v3.18中使用了他的相同解决方案,它就像一个魅力
markersArray.push(newMarker) ;
while(markersArray.length) { markersArray.pop().setMap(null); }
// No need to clear the array after that.
只需要走过标记并将它们从map中移除,然后是空的maps标记数组:
var markers = map.markers;
for(var i = 0; i < markers.length; i++) {
markers[i].setMap(null);
}
map.markers = [];