谷歌地图API v3:如何删除所有标记?

在Google Maps API v2中,如果我想删除所有地图标记,我可以简单地执行以下操作:

map.clearOverlays();

如何在 Google Maps API v3 中执行此操作?

看看参考API,我不清楚。


答案 1

只需执行以下操作:

I. 声明一个全局变量:

var markersArray = [];

二、定义一个函数:

function clearOverlays() {
  for (var i = 0; i < markersArray.length; i++ ) {
    markersArray[i].setMap(null);
  }
  markersArray.length = 0;
}

google.maps.Map.prototype.clearOverlays = function() {
  for (var i = 0; i < markersArray.length; i++ ) {
    markersArray[i].setMap(null);
  }
  markersArray.length = 0;
}

III. 在调用以下内容之前,在“标记数组”中推送标记:

markersArray.push(marker);
google.maps.event.addListener(marker,"click",function(){});

IV. 根据需要调用 或 函数。clearOverlays();map.clearOverlays();

就是这样!!


答案 2

同样的问题。此代码不再有效。

我已经纠正了它,以这种方式更改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