javascript - 如何在不同的时间间隔后隐藏谷歌地图圆圈对象?

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

假设我的谷歌地图上有 2 个 cricle 对象。
我想在创建后 3 秒后从 map 上删除每个圆圈。

这是代码。问题是 setTimeout 仅适用于我创建的最后一个圆..
我怎样才能让它工作?

var map;

function initialize() {
    var mapOptions = {
        center: new google.maps.LatLng(centerLan, centerLon),
        zoom: 10
    };
    map = new google.maps.Map(document.getElementById("map"), mapOptions);
}

google.maps.event.addDomListener(window, 'load', initialize);

function setAlarm(lon, lat) {
    var alarmPosition = {
        strokeColor: '#FF0000',
        strokeOpacity: 0.8,
        strokeWeight: 0,
        fillColor: '#FF0000',
        fillOpacity: 0.35,
        map: map,
        center: new google.maps.LatLng(lon, lat),
        radius: Math.sqrt(150) * 100
    };
    // Add the circle for this city to the map.
    cityCircle = new google.maps.Circle(alarmPosition);

    //trying to remove the circle after some time

        setTimeout(function() {
    cityCircle.setMap(null);
    }, 3000);
}

最佳答案

将变量设置为局部变量:

//note the var-keyword  
var cityCircle = new google.maps.Circle(alarmPosition);

否则每次调用 setAlarm 时都会覆盖它,并且您只能删除上次调用中创建的圆圈。

关于javascript - 如何在不同的时间间隔后隐藏谷歌地图圆圈对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24839714/

相关文章:

javascript - jQuery .attr 不工作

iphone - 如何将文本的 nsstring 值转换为 objective-c 中的 CLLocationCoordinate2D for google map

javascript - Angular 地理编码结果不同步

javascript - 删除标记后如何删除信息窗口?

google-maps - 谷歌地图 API v3 : Markers not being removed

javascript - 如何导出谷歌地图标记并通过 map API 将它们添加到另一个 map ?

javascript - 在 componentDidMount() 中调用时方法不更新状态

javascript - 使用 JavaScript 将数字转换为日期时间格式

javascript - 如何打开下载的文件?

android - 使用 CSS3 转换时,谷歌地图在 Android 2.2 的 WebView 中变慢