添加1000的标记到Android谷歌地图

Hec*_*tor 6 android android-loader google-maps-android-api-2

我正在开发一个基于GoogleMap的Android应用程序.
我需要在地图上显示1000个标记.
目前,我从SQLite数据库加载器中检索每个标记的纬度和经度,并在public void onLoadFinished(final Loader loader, final Cursor cursor)方法中添加标记.
这种方法虽然提供了非常糟糕的用户体验,因为当我添加标记时应用程序没有响应.
如何在googlemap中添加1000个标记并保持我的应用程序响应?
因为我必须在主UI线程上将标记添加到地图.

Mac*_*ski 9

一种可能的方法是仅Marker在它们落入地图的可见区域时添加s.

您实际上必须将您的呼叫转移addMarkeronLoadFinished,onCameraChange并且onLoadFinished仅创建创建这些呼叫所需的数据列表Marker.这可能是最简单的形式List<MarkerOptions>.

Lalit Poptani在上面的评论中提到的Android Maps Extensions可以为您处理,即使您不想使用群集.你只需保留你的代码,只需拨打电话即可

googleMap.setClustering(new ClusteringSettings().enabled(false).addMarkersDynamically(true));
Run Code Online (Sandbox Code Playgroud)

用此扩展程序lib替换Google Maps Android API v2之后.