在Google Maps Android V2中群集大量标记时的最佳做法

时间:2014-06-05 10:05:05

标签: android google-maps-android-api-2 markerclusterer markers

我想在Google地图上显示大量标记(50k +)。事实证明,Android Maps Util Library https://github.com/googlemaps/android-maps-utils似乎是群集标记时的首选。

我想知道是否存在任何最佳做法,以便在显示如此大量的标记时提高地图用户体验的效果。

示例

例如,我使用群集管理器向群集管理器添加大约20.000个标记,从而在缩放和平移地图时产生不太平滑的地图交互体验。

我用过的东西:

GridBasedAlgorithm<MyClusterItem> gridAlgorithm = new GridBasedAlgorithm<MyClusterItem>();     
mClusterManager.setAlgorithm(new PreCachingAlgorithmDecorator<MyClusterItem>(gridAlgorithm));

我的策略

1)在摄像机更改事件中从群集器中删除所有标记,然后仅添加视图边界内的标记。在高缩放级别上工作得很好,当缩放级别降低时,有许多标记要移除和添加,增加了整个聚类过程的开销

2)首先添加所有标记。

  • 100 Markers =&gt;效果很好
  • 1000 Markers =&gt;可行,但在缩小时已经显示出聚类过程中的缓慢
  • 10000 Markers =&gt;已经非常缓慢的行为,需要很长时间才能重新聚集标记并且缩小进度并不顺利
  • 20000 Markers =&gt;重新聚类需要很长时间(> 20秒),地图无响应

1 个答案:

答案 0 :(得分:0)

过去我是如何做到的: 您应该收听地图运动并仅绘制当前应该可见的标记。此外,如果将标记放置在同一屏幕位置,则应该管理缩放级别并将几个标记聚合为单个标记。

相关问题