【问题标题】:Google Maps API v3: How to remove all markers?Google Maps API v3:如何删除所有标记?
【发布时间】:2010-12-05 09:49:37
【问题描述】:

在 Google Maps API v2 中,如果我想删除所有地图标记,我可以这样做:

map.clearOverlays();

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

看着Reference API,我不清楚。

【问题讨论】:

标签: javascript html google-maps google-maps-api-3


【解决方案1】:
google.maps.Map.prototype.markers = new Array();

google.maps.Map.prototype.addMarker = function(marker) {
    this.markers[this.markers.length] = marker;
};

google.maps.Map.prototype.getMarkers = function() {
    return this.markers
};

google.maps.Map.prototype.clearMarkers = function() {
    for(var i=0; i<this.markers.length; i++){
        this.markers[i].setMap(null);
    }
    this.markers = new Array();
};

我认为 V3 中没有,所以我使用了上面的自定义实现。

免责声明:我没有编写此代码,但我在将其合并到我的代码库时忘记保留引用,所以我不知道它来自哪里。

【讨论】:

  • +1 来自我。我会在 google.maps.Marker 构造函数(或 setMap 方法,因为我认为构造函数在内部调用它)周围添加一个包装器,它会自动调用 addMarker,但仍然是不错的答案:)。
  • @Maiku Mari,你会用代码展示你会做什么不同的事情以及为什么。谢谢
  • 这不是解决方案吗?您可以通过在要清除的特定标记上使用 set_map(null) 来删除标记,如果要清除所有标记,则使用此函数循环。如果你想要更多的东西在这里请求它:code.google.com/p/gmaps-api-issues/issues/…
  • -1 风格不好。只创建了一个标记数组,但在 clearMarkers 之后每个地图一个(由于原型的 get/set 差异)。多个地图对象的严重错误。
【解决方案2】:

两个答案中发布的“set_map”功能似乎不再适用于 Google Maps v3 API。

我想知道发生了什么

更新:

Google 似乎更改了他们的 API,使得“set_map”不是“setMap”。

http://code.google.com/apis/maps/documentation/v3/reference.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-20
    • 2012-05-24
    • 2013-05-02
    • 2011-12-19
    • 2011-10-07
    • 2015-07-16
    • 1970-01-01
    • 2012-03-19
    相关资源
    最近更新 更多