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

Skl*_*vvz 5 javascript google-maps

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

除了保持一个数组并查看每个标记的latlng之外,有没有简单的方法呢?

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

任何帮助,将不胜感激.

Ric*_*chH 4

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

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

我们谈论的是多少点?

更新

答:大约 65K。

我明白为什么在页面加载时无法创建 65K GMarkers。这将需要 5 秒多的时间。

我会将它们分成 200 个左右的组,当组的边缘进入显示边缘之外 1/4 地图宽度范围内时,然后查找、创建标记并显示相邻组。如果它超出了外部边缘的 1/2 地图宽度,则隐藏该组。

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