我有一个大约500-1000个标记的Android应用程序。我正在使用android-maps-utils中显示的here中的ClusterManager来聚类这些标记。
在最新的Play服务更新中,Google更改了Google地图的监听模型。 OnCameraChangeListener
现已标记为已弃用。相反,有四个新的听众(OnCameraIdleListener, OnCameraMoveListener, OnCameraMoveStartedListener
,OnCameraMoveCanceledListener
)。
自那次更新以来,我的应用程序非常慢。它坚持移动/缩放地图,聚类过程滞后,需要几秒钟。
我认为这种行为可能与侦听器模型中的更改有关。因此,我尝试将addOnCameraChangeListener(clustermanager)
函数替换为新的addOnCameraIdleListener(clustermanager)
。遗憾的是,由于ClusterManager
未实现必要的接口,因此无法正常工作。
这就是它变得奇怪的地方,因为GitHub上ClusterManager
的当前版本(0.4.3)确实实现了该接口。所以它应该有用。
我使用Gradle导入ClusterManager:
compile 'com.google.maps.android:android-maps-utils:0.4.3
但我的ClusterManager
的本地版本似乎仍旧是旧的OnCameraChangeListener
。
那么这里有什么问题? 这是Gradle的不当行为吗? 有人知道如何解决这个问题吗? 自上次播放服务更新以来,Google Map / Clusterer的播放速度是否缓慢且有其他人吗?
我感谢任何帮助。谢谢,伙计们。
答案 0 :(得分:21)
你需要使用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')
祝你好运并投票......; - )