我正在开发基于GoogleMap的Android应用程序
我需要在地图上显示1000个标记
目前,我从SQLite数据库加载器中检索每个标记的纬度和经度,并在public void onLoadFinished(final Loader loader, final Cursor cursor)
方法中添加标记。
这种方法给用户带来了非常糟糕的体验,因为当我添加标记时应用程序没有响应
如何在googlemap中添加1000个标记并保持我的应用程序响应?
因为我必须在主UI线程上将标记添加到地图。
答案 0 :(得分:9)
一种可能的方法是仅在Marker
落入地图的可见区域时添加addMarker
。
您实际上必须将来自onLoadFinished
的{{1}}移至onCameraChange
,而onLoadFinished
只会创建创建这些Marker
所需的数据列表}秒。最简单的形式可能是List<MarkerOptions>
。
googleMap.setClustering(new ClusteringSettings().enabled(false).addMarkersDynamically(true));
将Google Maps Android API v2替换为此扩展程序。
答案 1 :(得分:0)
您可以使用Spatial Lite提供商和geoserver来提供WMS地图。 在Android中,您可以将tile provider设置为使用此类图块地图。