【问题标题】:Determining if a marker is visible in Google Maps确定标记是否在 Google 地图中可见
【发布时间】:2009-03-16 17:21:01
【问题描述】:

我正在开发一个谷歌地图应用程序,我遇到了这个问题。我需要从地图中删除所有超出范围的标记。

除了保留一个数组并查看每个标记的纬度之外,还有什么简单的方法吗?

我不能使用 MarkerManager,因为我的积分太多了。我不想使用 clearOverlays() 因为它会关闭任何打开的标记。

任何帮助将不胜感激。

【问题讨论】:

    标签: javascript google-maps


    【解决方案1】:

    如果您不想单独查看每个标记,则最初将它们聚集成一些集合并计算集合的边界。

    然后,您可以根据地图上当前显示的内容显示或隐藏集合(您可以使用 GMap2.getBounds() 找到地图的边界)。

    我们在谈论多少点?

    更新

    A.大约 65K。

    我明白为什么在页面加载时不能创建 65K GMarkers。这将需要 5 秒以上。

    我会将它们分成 200 个组,当组的边缘在显示边缘之外的 1/4 地图宽度内时,然后找到、创建标记并显示相邻的组。它超出了外边缘的 1/2 地图宽度,然后隐藏该组。

    其他替代方法是使用第三方库,例如

    【讨论】:

    • 感谢您的提示,另一个问题是下载信息以生成 65k 标记需要太长时间...
    • 在服务器端将它们分组并在初始页面加载时加载组边界。然后,您可以使用 AJAX 在组接近地图显示部分时动态下载点。
    猜你喜欢
    • 2010-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-16
    • 2021-10-19
    • 2014-05-23
    相关资源
    最近更新 更多