function clearAll() { //for (var i = 0; i < map.getOverlays().length; i++) { // map.removeOverlay(map.getOverlays()[i]); //} //overlays.length = 0; for (var i = 0; i < map.getOverlays().length; i++) { if (map.getOverlays()[i].GO == "Marker") map.removeOverlay(map.getOverlays()[i]); } overlays.length = 0; }
<a href='javascript:clearAll()' >Del</a>
length显示的是正确的数量, 为什么一次只能删除几个, 要点很多次才能清光所有Marker?
你这样写数组长度都在变化的,for循环有问题的
1楼的应该可以
或者创建marker时加入一个全局数组,这里删,可以保证不删除其他的不想删的marker
var len =map.getOverlays().length
for (var i = len ;i>0; i--)
{
if (map.getOverlays()[i].GO == "Marker")
map.removeOverlay(map.getOverlays()[i]);
}
map.clearOverlays(); //清除地图上所有覆盖物
试试这句话,清除地图上面所有的覆盖物
这句话有个缺点,你有些不想清除的数据也会清除,不过是有解决的方法,清除你想清除的点