Javascript 谷歌地图在绘制新标记时清除旧标记
我正在调用一个API并在几秒钟后绘制新的标记。新的标记被绘制出来,但旧的标记仍然保留着。我想在打印新标记时清除旧标记。这是我的密码Javascript 谷歌地图在绘制新标记时清除旧标记,javascript,google-maps,google-maps-api-3,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(){ $
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);
var myMarkers=[];
var i;
var marker=new google.maps.marker({
位置:新google.maps.LatLng(12.967086,77.746564),
地图:地图,
});
setInterval(函数(){
$.post(contextPath+“/api/getlocations”,{},函数(数据){
var响应=数据;
var位置=响应位置;
var标记,i;
对于(var i=myMarkers.length;i>0;i--){
myMarkers[i].setMap(空);
}
myMarkers=[];
对于(i=0;i
*映射已初始化
任何帮助都将不胜感激。感谢在窗口级别声明myMarkers以管理markers集合
var myMarkers = [];
在创建标记之前,请清除上一个标记
for (i = 0; i < myMarkers.length; i++) {
myMarkers.[i].setMap(null);
}
myMarkers = [];
//在“标记”集合中添加标记
myMarkers.push(marker);
我不确定你想要实现什么——听起来像一个“移动的标记”。如果是这样,请将您的“var marker”移到函数外部,然后首先删除(…)并让marker.setMap(null)作为一个“移动标记”。现在出现错误-Uncaught TypeError:无法读取未定义的属性“setMap”.我已更新代码,在setMap(null)的循环后添加清除myMarkers…尝试。。让我知道同样的错误-UncaughtTypeError:无法读取Undefine的属性“setMap”?您确定您创建的所有标记都是推入式myMarkers吗?您指的是myMarkers[i].setMap(null);?我已经用您的更改更新了代码。请检查。还是错误
myMarkers.push(marker);