Javascript 谷歌地图中的清晰圆圈

Javascript 谷歌地图中的清晰圆圈,javascript,google-maps,maps,Javascript,Google Maps,Maps,我正在尝试从地图上删除一些圆,但没有按预期工作。这是我的密码 我用来画圆的函数: for (var city in citymap) { var circleOptions = { map: GoogleMap, radius: distance, //In meters strokeColor: circleColor, fillOpacity: 0.0, strokeWeight: circleWeight, s

我正在尝试从地图上删除一些圆,但没有按预期工作。这是我的密码

我用来画圆的函数:

for (var city in citymap) {
    var circleOptions = {
      map: GoogleMap,
      radius: distance, //In meters
      strokeColor: circleColor,
      fillOpacity: 0.0,
      strokeWeight: circleWeight,
      strokeOpacity: 0.5,
      center: citymap[city].center,
      };
    // Add the circle for this city to the map.

    cityCircle[circleId] = new google.maps.Circle(circleOptions);
}
看看cityCircle数组,我有八个元素,从0到7。我尝试使用stackoverflow论坛抓取的以下功能删除它们:

function RemoveOverlays(overlays) {
    for (var i = 0; i < overlays.length; i++) {
        overlays[i].setMap(null);
    }
函数移除覆盖(覆盖){
对于(变量i=0;i
我在else-if循环中调用函数,如下所示:

else if  (zoom <6 ){
   if (typeof cityCircle[0] !=undefined && cityCircle[0] !=null) {
    RemoveOverlays(cityCircle)
   }
}
else if(缩放运算符将类型转换为字符串值,因此您应通过以下方式进行检查:

typeof cityCircle[0] != "undefined"

我的代码输入错误…在调整了那条线之后,没有删除任何圆,即使是最新绘制的圆也没有删除。??@user1460038您可以展示一些实例或更多代码吗?如果
语句是,那么这个
在哪里,等等…您如何称呼它?在缩放更改事件中?@user1460038您在哪里定义
城市圆
?我在sc开始时就已经定义了它使用var cityCircle=new Array()编写脚本;
。这不在你的“全部代码”中。如果你的“全部代码”是复制问题(包括HTML标记)所需的全部代码,这将非常有用。你在最后写了
,我刚刚删除了最新绘制的圆。
这听起来像是典型的闭包问题,但从代码的一部分我看不到它。另一种可能是可能性在于你只有一个索引集。
circleId
是如何生成的?你能提供完整的代码吗?@AntoJurković在我调用for循环中的drawCircle函数之前生成了circleId。
对于var circleId=0;circleId
@AntoJurković
cityCircle[circleId]=新的google.maps.Circle(circleOptions);
在drawCircle函数中。对不起,我不明白你的意思……我在下面已解决的问题中找到了解决方案。[google maps v3:从地图上清除由多段线构成的圆][1][1]:
typeof cityCircle[0] != "undefined"