首页新闻找找看学习计划

百度地图如何删除所有Marker呢?

0
悬赏园豆:10 [已解决问题] 解决于 2015-06-10 19:57
        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?
奋奋奋的主页 奋奋奋 | 初学一级 | 园豆:32
提问于:2015-06-02 20:34
< >
分享
最佳答案
0

你这样写数组长度都在变化的,for循环有问题的

 

1楼的应该可以

 

或者创建marker时加入一个全局数组,这里删,可以保证不删除其他的不想删的marker

收获园豆:5
jhlong | 初学一级 |园豆:21 | 2015-06-08 14:40
其他回答(2)
0

var len =map.getOverlays().length

for (var i = len ;i>0; i--)

{

if (map.getOverlays()[i].GO == "Marker")

map.removeOverlay(map.getOverlays()[i]);

}

收获园豆:4
wufei | 园豆:338 (菜鸟二级) | 2015-06-04 14:15
0

map.clearOverlays();    //清除地图上所有覆盖物

试试这句话,清除地图上面所有的覆盖物

 

这句话有个缺点,你有些不想清除的数据也会清除,不过是有解决的方法,清除你想清除的点

收获园豆:1
cmj940306 | 园豆:156 (初学一级) | 2015-06-05 18:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册