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"