我在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
答案 0 :(得分:0)
尝试更改:
markers.length = 0;
markers = [];
为:
markers = [];
markers = null;
然后在添加新标记之前再次初始化数组。