Google Maps API v3 - 如何清除叠加层?

Nat*_*tim 23 api google-maps google-maps-api-3

在Google Maps API v2中,我使用map.clearOverlays()删除标记并再次绘制它们.

如何使用Google Maps API v3执行此操作?

谢谢

小智 34

这很好:

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

链接死亡的文章:

clearOverlays() in V3

API v3中没有clearOverlays().已经介绍了一些做法.我认为到目前为止这是最简单的.

在创建时推送数组中的所有叠加(像往常一样).以下代码将清除map和数组:

while(overlays[0])
{
  overlays.pop().setMap(null);
}
Run Code Online (Sandbox Code Playgroud)

数组的pop()方法删除数组的最后一个元素,并返回该元素.只要数组中有元素,'while'就会发生这种情况.当覆盖[0]不再存在时,任务完成并且代码将继续.


Pau*_*ens 14

有关您可以使用的各种选项的详细信息,请参阅此处,但您现在必须遍历标记并单独删除它们.您的代码应如下所示:

var markers = [];

function clearOverlays() {
 while(markers.length) { markers.pop().setMap(null); }
  markers.length = 0;
}

markers.push(marker);
google.maps.event.addListener(marker,"click",function(){});
Run Code Online (Sandbox Code Playgroud)