现在有一个定时器,每隔几秒钟添加一个新的位置的标记marker。
当我出现新标记时希望删除旧的标记。
比如开始出现了第一个标记,再出现第二个标记的时候同时删除第一个标记。
再出现第三个标记的时候同时删除第二个标记,
请问怎么弄。请说的详细一点。谢谢
我用的是google离线地图,这是项目中的一部分。仅供参考
// 清除渲染效果
function clearOverlays() {
if (markersArray) {
for (i in markersArray) {
markersArray[i].setMap(null);
}
}
}
用一个全局变量记录住上一次的marker,然后setMap(null)
if(window.marker)marker.setMap(null);//删除上一个标记
window.marker= new google.maps.Marker({..新标记配置..})
var markersArray = []; // 标记点数组
var lastIndex = -1;
//用一个定时器来控制方法move定时循环执行的
// 此方法大致如下
function move(){}
// 构建marker
var marker = "";
// 加入数组
markersArray.push(marker);
// 删除之前的marker
if(lastIndex != -1){markersArray[lastIndex].setMap(null);}
//这个地方再调另外一个function 来将marker和infowindow展示。
show(marker);
lastIndex = markersArray.indexOf(marker,0);