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

时间:2009-03-16 17:21:01

标签: javascript google-maps

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

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

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

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:4)

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

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

我们谈论了多少分?

<强>更新

一个。大约65K。

我可以看到为什么在页面加载时无法创建65K GMarkers。这将需要5秒钟。

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

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