6

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

4

2 回答 2

9

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

您实际上必须将您的调用移至fromaddMarker和in仅创建创建这些s 所需的数据列表。这可能是最简单的形式。onLoadFinishedonCameraChangeonLoadFinishedMarkerList<MarkerOptions>

即使您不想使用集群,Lalit Poptani 在上面的评论中提到的Android 地图扩展也可以为您处理。您只需保持您的代码原样,只需拨打电话

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

用此扩展库替换 Google Maps Android API v2 后。

于 2013-07-24T20:09:07.170 回答
0

您可以使用带有地理服务器的Spatial Lite提供程序来提供WMS地图。在 android 中,您可以设置一个瓦片提供者来使用这些瓦片地图。

于 2013-07-24T11:48:54.830 回答