Google Maps v3会保留对标记的引用(缩放问题)

时间:2015-01-21 21:35:30

标签: google-maps google-maps-api-3 google-maps-markers markers

我在Google地图上放置了一些标记,将它们保存在全局数组中。单击按钮,标记应从地图中消失,并从数组中删除它们。

    // clear markers
    for (var i = 0; i < markers.length; i++) {
        markers[i].setMap(null);
    }

    // delete marker from markers array
    markers.length = 0;
    markers = [];

这就像一个魅力,标记从地图上消失。在下一步中,我通过ajax调用获取一些新数据,再次创建标记并在markers数组中添加这些标记。新标记在地图上可见,但在放大/缩小地图时,“旧”标记会再次可见。所以我混合了旧标记和新标记。

这是Google地图缓存问题吗? 如何真正从地图中删除旧标记 - 地图刷新? 提前谢谢。

写完这个问题后,我找到了这个问题的答案: 我还有一个MarkerClusterer,它包含对markers数组(和标记)的引用。清除MarkerClusterer后,对旧标记的所有引用都消失了。看到这个链接:

Any change in zoom level causes all my markers to re-appear on my Google map

1 个答案:

答案 0 :(得分:0)

尝试更改:

markers.length = 0;
markers = [];

为:

markers = [];
markers = null;

然后在添加新标记之前再次初始化数组。