关于添加和删除谷歌地图标记的问题。

现在有一个定时器,每隔几秒钟添加一个新的位置的标记marker。
当我出现新标记时希望删除旧的标记。
比如开始出现了第一个标记,再出现第二个标记的时候同时删除第一个标记。
再出现第三个标记的时候同时删除第二个标记,
请问怎么弄。请说的详细一点。谢谢

3个回答

我用的是google离线地图,这是项目中的一部分。仅供参考

 // 清除渲染效果
    function clearOverlays() {
        if (markersArray) {
            for (i in markersArray) {
                markersArray[i].setMap(null);
            }
        }
    }
qq_19558705
ITDragon龙 回复ahuwangqun: 下面那里?球指教
大约 4 年之前 回复
u010468993
ahuwangqun 你这个是全部删除的,和我那个有点区别。但是我已经解决了,方法在下面。谢谢。
大约 4 年之前 回复

用一个全局变量记录住上一次的marker,然后setMap(null)

 if(window.marker)marker.setMap(null);//删除上一个标记
window.marker= new google.maps.Marker({..新标记配置..})
showbo
支付宝加好友偷能量挖 回复ahuwangqun: 嘿嘿,有用记得采纳
大约 4 年之前 回复
u010468993
ahuwangqun 没有试过你这种方法不太清楚是什么样的。这个问题我已经解决了。在下面。谢谢
大约 4 年之前 回复

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);

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问