判断在Google地图中一个标记是否可见

5

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

除了保留数组并查看每个标记的latlng之外,是否有任何简单的方法可以做到这一点?

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

任何帮助将不胜感激。

1个回答

4
如果您不想逐个查看每个标记,则可以将它们聚类到一些集合中,并计算集合的边界。然后,根据地图上当前显示的内容(可以使用GMap2.getBounds()找到地图的边界),显示或隐藏这些集合。
我们要谈论多少点? 更新 A. 约65K。
我可以理解为什么在页面加载时无法创建65K GMarkers。那将需要超过5秒钟。
我会将它们分成大约200个一组,当该组的边缘接近显示边缘的1/4地图宽度时,查找、创建标记并显示相邻的组。如果超出了外部边缘的1/2地图宽度,则隐藏该组。
其他选择是使用第三方库,例如:

谢谢你的提示,另一个问题是将信息下载以生成65k标记需要太长时间... - Sklivvz
将它们在服务器端分组,并在初始页面加载时加载组边界。然后,当组接近地图的显示部分时,您可以使用AJAX动态下载点。 - RichH

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接