代码之家  ›  专栏  ›  技术社区  ›  Natim

谷歌地图API v3-如何清除覆盖?

  •  22
  • Natim  · 技术社区  · 14 年前

    在googlemapsapiv2中,我使用 map.clearOverlays()

    如何使用googlemapsapiv3做到这一点?

    谢谢

    7 回复  |  直到 14 年前
        1
  •  15
  •   Community CDub    7 年前

    here

    var markers = [];
    
    function clearOverlays() {
     while(markers.length) { markers.pop().setMap(null); }
      markers.length = 0;
    }
    
    markers.push(marker);
    google.maps.event.addListener(marker,"click",function(){});
    
        2
  •  35
  •   Erik Philips Gabriel Costa    13 年前

    这是一个很好的例子:

    http://apitricks.blogspot.com/2010/02/clearoverlays-in-v3.html

    第四条链接死亡的:

    clearOverlays() in V3

    API v3中没有clearOverlays()。介绍了一些做法。我认为这是迄今为止最简单的。

    创建时按一个数组中的所有覆盖(与往常一样)。以下代码将清除映射和数组:

    while(overlays[0])
    {
      overlays.pop().setMap(null);
    }
    

        3
  •  2
  •   Karim Samir    11 年前

    我找到了另一个解决方案,效果很好

    gmap.overlayMapTypes.setAt( 0, null);
    

    而gmap是你的地图对象

        4
  •  1
  •   Burak Dede    13 年前

    您可以查看Google地图文档,因为它显示了简单的deleteOverLays方法 http://code.google.com/apis/maps/documentation/javascript/overlays.html

    // Deletes all markers in the array by removing references to them
    function deleteOverlays() {
      if (markersArray) {
        for (i in markersArray) {
          markersArray[i].setMap(null);
        }
        markersArray.length = 0;
      }
    }
    
        5
  •  1
  •   Prabowo Murti    11 年前

    polyShape = new google.maps.Polygon(
        {
            strokeColor     : '#000000',
            strokeOpacity   : 0.3,
            strokeWeight    : 1,
            fillColor       : "#000000",
            fillOpacity     : 0.26,
            geodesic        : true
        });
    

    那么。。遍历路径以删除它。

    var path = new google.maps.MVCArray;
    
    /**
     * Delete all points inside Map
     */
    function clearMap()
    {
        //clear markers
        for (var i = 0; i < markers.length; i++)
        {
            markers[i].setMap(null);
    
        }
        markers = [];
    
        //clear polygon, still finding more elegant way
        while (polyShape.getPath().length)
        {
            path.removeAt(0);
        }
    }
    
        6
  •  1
  •   Pascale    7 年前

    overlayMapTypes 对象带来了一个清晰的方法:

    map.overlayMapTypes.clear()

    如果在API版本中找不到该方法,可以求助于以下源代码 clear :

    clear = function() {
        for (; this.get("length");) this.pop()
    };
    
        7
  •  0
  •   k_zoltan    13 年前

    你可以在这里找到谷歌提供的一个很好的例子: http://code.google.com/p/gmaps-samples-v3/source/browse/trunk/clear-all-overlays/clear-all-overlays.html

    • 多边形
    • 和多段线分开