代码之家  ›  专栏  ›  技术社区  ›  Sklivvz

确定标记是否在谷歌地图中可见

  •  5
  • Sklivvz  · 技术社区  · 17 年前

    我正在开发一个谷歌地图应用程序,我遇到了这个问题。我需要从地图上移除所有的界外标记。

    除了保持一个数组并查看每个标记的latlng之外,还有什么简单的方法可以做到这一点?

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

    1 回复  |  直到 17 年前
        1
  •  4
  •   RichH    17 年前

    如果您不想单独查看每个标记,那么首先将它们聚类到一些集合中,然后计算集合的边界。

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

    更新

    A、 大约6.5万。

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

    我会将它们分成200个ish的组,当组的边缘位于显示边缘外1/4的地图宽度内时,找到、创建标记并显示相邻的组。如果它超出了外部边缘的1/2贴图宽度,则隐藏组。

    其他选择是使用第三方库,如