【问题标题】:Google Maps v3 keeps references to markers (zooming issue)Google Maps v3 保留对标记的引用(缩放问题)
【发布时间】:2015-01-21 21:35:30
【问题描述】:

我在谷歌地图上放置了一些标记,将它们保存在一个全局数组中。单击按钮后,标记应该会从地图中消失,也会从数组中删除它们。

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

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

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

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

解决方案

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

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

【问题讨论】:

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


【解决方案1】:

尝试改变:

markers.length = 0;
markers = [];

到:

markers = [];
markers = null;

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-25
    • 2011-10-12
    • 2011-08-25
    • 2012-11-16
    相关资源
    最近更新 更多