我有一个带有约500-1000个标记的Android应用。我正在使用android-maps-utils中显示的here中的ClusterManager对这些标记进行聚类。

在最新的Play服务更新中,Google更改了Google Map的监听器模型。 OnCameraChangeListener现在标记为已弃用。相反,有四个新的监听器(OnCameraIdleListener, OnCameraMoveListener, OnCameraMoveStartedListenerOnCameraMoveCanceledListener)。

由于该更新,我的应用程序运行缓慢。它卡在移动/缩放 map 上,聚类过程比较缓慢,需要几秒钟。

我认为这种行为可能与监听器模型的更改有关。因此,我尝试用新的addOnCameraChangeListener(clustermanager)替换addOnCameraIdleListener(clustermanager)函数。不幸的是,这不起作用,因为ClusterManager没有实现必要的接口(interface)。

这就是奇怪的地方,因为GitHub上 ClusterManager 的当前版本(0.4.3)确实实现了该接口(interface)。因此,它应该工作。

我正在使用Gradle导入ClusterManager:
compile 'com.google.maps.android:android-maps-utils:0.4.3
但是我的本地版本ClusterManager似乎仍然是旧版本,实现了旧的OnCameraChangeListener

那么,这里出了什么问题?
这是Gradle的不当行为吗?
有谁知道如何解决此问题?
自上次Play服务更新以来,还有其他人的Google Map/Clusterer缓慢而缓慢吗?

感谢您的帮助。谢谢你们。

最佳答案

您需要使用gooleMap.setOnCameraIdleListener(mClusterManager);而不是googleMap.setOnCameraMoveListener(mClusterManager);

您可以搜索ClusterManager的源代码,并且您会看到ClusterManager实现了新的OnCameraIdleListener。

另外,您还需要更新到新的android-maps-utils:0.4.4(编译'com.google.maps.android:android-maps-utils:0.4.4')

祝你好运并投票... ;-)

10-07 12:50