谷歌地图与群集管理器:不推荐使用onCameraChangeListener

时间:2016-08-23 08:28:49

标签: android google-maps-android-api-2 markerclusterer android-maps-utils

我有一个大约500-1000个标记的Android应用程序。我正在使用android-maps-utils中显示的here中的ClusterManager来聚类这些标记。

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

自那次更新以来,我的应用程序非常慢。它坚持移动/缩放地图,聚类过程滞后,需要几秒钟。

我认为这种行为可能与侦听器模型中的更改有关。因此,我尝试将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的播放速度是否缓慢且有其他人吗?

我感谢任何帮助。谢谢,伙计们。

1 个答案:

答案 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')

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