javascript - 绘制新标记时,谷歌地图会清除旧标记

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

我正在调用 API 并在几秒钟的间隔后绘制新标记。新的标记被绘制出来,但旧的标记仍然存在。我想在绘制新标记时清除旧标记。这是我的代码。

var myMarkers = [];  
var i;
var marker = new google.maps.Marker({
    position: new google.maps.LatLng(12.967086,77.746564),
    map: map,
});       
setInterval(function(){
        $.post(contextPath+"/api/getlocations", {} , function(data){
            var response = data;
            var locations = response.locations;
            var marker, i;

            for (var i = myMarkers.length; i > 0; i--) {
                myMarkers[i].setMap(null);
            }
            myMarkers = [];
            for (i = 0; i < locations.length; i++) {
                marker = new google.maps.Marker({
                    position: new google.maps.LatLng(locations[i][1], locations[i][2]),
                    map: map
                });

                google.maps.event.addListener(marker, 'click', (function(marker, i) {
                    return function() {
                        infowindow.open(map, marker);
                    }
                })(marker, i));
                myMarkers.push(marker);
            }
        });
    }, 5000);

* map 已初始化。

任何帮助将不胜感激。谢谢

最佳答案

在窗口级别声明 myMarkers 来管理标记集合

var myMarkers = [];  

在创建标记之前清除之前的标记

for (i = 0;  i <  myMarkers.length;  i++) {

  myMarkers.[i].setMap(null);
}
myMarkers = [];

..

  marker = new google.maps.Marker({
                position: new google.maps.LatLng(locations[i][1], locations[i][2]),
                map: map
            });

//在您的标记集合中添加标记

  myMarkers.push(marker);

关于javascript - 绘制新标记时,谷歌地图会清除旧标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44655382/

相关文章:

javascript - 使用 Javascript 更改没有 id 的 DOM 元素的 css

javascript - 单击更改谷歌地图多边形颜色/填充

android - Places Api 在 android 中停止工作

Mysql、JSP、谷歌地图

javascript - 如何从 (x, y) 屏幕坐标转换为 LatLng(Google map )

android - API 中 Google 中所有街道和道路名称的列表

javascript - 从 map 上删除特定标记?

javascript - 重叠绝对定位的 div

javascript - AWS Cognito - 使用 IAM 角色访问 S3

android - 使用 PendingIntent 获取位置始终返回 Null