增加1000';s标记到android谷歌地图
我正在开发一个基于谷歌地图的android应用程序。增加1000';s标记到android谷歌地图,android,google-maps-android-api-2,android-loader,Android,Google Maps Android Api 2,Android Loader,我正在开发一个基于谷歌地图的android应用程序。 我需要在地图上显示1000个标记。 目前,我从SQLite数据库加载程序中检索每个标记的纬度和经度,并将标记添加到public void onload finished(final loader,final Cursor Cursor)方法中。 但是,这种方法会带来非常糟糕的用户体验,因为在我添加标记时,应用程序没有响应。 如何在谷歌地图上添加1000个标记并保持应用程序的响应性? 因为我必须在主UI线程上将标记添加到地图。您可以使用提供程序
我需要在地图上显示1000个标记。
目前,我从SQLite数据库加载程序中检索每个标记的纬度和经度,并将标记添加到
public void onload finished(final loader,final Cursor Cursor)
方法中。但是,这种方法会带来非常糟糕的用户体验,因为在我添加标记时,应用程序没有响应。
如何在谷歌地图上添加1000个标记并保持应用程序的响应性?
因为我必须在主UI线程上将标记添加到地图。您可以使用提供程序提供地图。
在安卓系统中,你可以设置一个标签来使用这些平铺地图。一种可能的方法是,当它们落入地图的可见区域时,只添加
标记
实际上,您必须将对addMarker
的调用从onLoadFinished
移动到onCameraChange
,并且在onLoadFinished
中只创建创建这些标记所需的数据列表。最简单的形式可能是List
Lalit Poptani在上面的评论中提到,即使您不想使用集群,也可以为您处理这些问题。您只需将代码保持原样,然后只进行如下调用
googleMap.setClustering(new ClusteringSettings().enabled(false).addMarkersDynamically(true));
在用这个扩展库替换Google Maps Android API v2之后。你尝试过AsyncTask吗..我没有尝试过AsyncTask,但是我认为这不会解决问题,因为我仍然需要在onPostExecute()映射扩展中的ui线程上添加标记,请加上这个作为一个正确的答案,因为它值得更多的信贷。谢谢Lalit Poptani。谢谢你抽出时间回答我的问题。然而,“Spatial Lite”链接给了我一个404OhMyGod,感谢链接到集群扩展,我认为它只存在于JS API中。@thibaultd这是我写的代码。这里还有另一种方法:@MaciejGórski我没有看到setClustering
用于GoogleMap
对象的方法。这不是在新图书馆里吗?