【发布时间】:2009-03-16 17:21:01
【问题描述】:
我正在开发一个谷歌地图应用程序,我遇到了这个问题。我需要从地图中删除所有超出范围的标记。
除了保留一个数组并查看每个标记的纬度之外,还有什么简单的方法吗?
我不能使用 MarkerManager,因为我的积分太多了。我不想使用 clearOverlays() 因为它会关闭任何打开的标记。
任何帮助将不胜感激。
【问题讨论】:
我正在开发一个谷歌地图应用程序,我遇到了这个问题。我需要从地图中删除所有超出范围的标记。
除了保留一个数组并查看每个标记的纬度之外,还有什么简单的方法吗?
我不能使用 MarkerManager,因为我的积分太多了。我不想使用 clearOverlays() 因为它会关闭任何打开的标记。
任何帮助将不胜感激。
【问题讨论】:
如果您不想单独查看每个标记,则最初将它们聚集成一些集合并计算集合的边界。
然后,您可以根据地图上当前显示的内容显示或隐藏集合(您可以使用 GMap2.getBounds() 找到地图的边界)。
我们在谈论多少点?
更新
A.大约 65K。
我明白为什么在页面加载时不能创建 65K GMarkers。这将需要 5 秒以上。
我会将它们分成 200 个组,当组的边缘在显示边缘之外的 1/4 地图宽度内时,然后找到、创建标记并显示相邻的组。它超出了外边缘的 1/2 地图宽度,然后隐藏该组。
其他替代方法是使用第三方库,例如
【讨论】: