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

时间:2013-07-24 11:43:20

标签: android google-maps-android-api-2 android-loader

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

2 个答案:

答案 0 :(得分:9)

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

您实际上必须将来自onLoadFinished的{​​{1}}移至onCameraChange,而onLoadFinished只会创建创建这些Marker所需的数据列表}秒。最简单的形式可能是List<MarkerOptions>

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

即可
googleMap.setClustering(new ClusteringSettings().enabled(false).addMarkersDynamically(true));

将Google Maps Android API v2替换为此扩展程序。

答案 1 :(得分:0)

您可以使用Spatial Lite提供商和geoserver来提供WMS地图。 在Android中,您可以将tile provider设置为使用此类图块地图。