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

问题描述 投票:18回答:1

我想在Google Map上显示大量标记(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个标记=>效果很好
  • 1000 Markers => Works,但在缩小发生时已经显示出聚类过程中的缓慢
  • 10000个标记=>行为已经非常缓慢,需要很长时间才能重新聚类标记并且缩小放大不顺利
  • 20000 Markers =>重新聚类需要很长时间(> 20秒),地图没有响应
android google-maps-android-api-2 markerclusterer markers
1个回答
0
投票

我过去是怎么做到的:你应该听地图运动,只绘制目前应该可见的标记。 此外,如果放置在同一屏幕位置,您应该管理缩放级别并将少量标记聚合为单个标记。

© www.soinside.com 2019 - 2024. All rights reserved.