我正在开发Google地图应用程序,但我遇到了这个问题。我需要从地图中删除所有超出范围的标记。
除了保持一个数组并查看每个标记的latlng之外,有没有简单的方法呢?
我不能使用MarkerManager,因为我的分数太多了。我不想使用clearOverlays(),因为它会关闭任何打开的标记。
任何帮助都将不胜感激。
答案 0 :(得分:4)
如果您不想单独查看每个标记,请先将它们聚类到一些集合中,然后计算集合的边界。
然后,您可以根据当前在地图上显示的内容显示或隐藏集合(您可以使用GMap2.getBounds()找到地图的边界。)
我们谈论了多少分?
<强>更新强>
一个。大约65K。
我可以看到为什么在页面加载时无法创建65K GMarkers。这将需要5秒钟。
我将它们聚类成200个ish的组,当组的边缘在显示的边缘之外的1/4地图宽度内然后找到,创建标记并显示相邻的组。它超出了外边缘地图宽度的1/2,然后隐藏了该组。
其他替代方法是使用第三方库,例如