5

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

在最新的 Play Services 更新中,Google 更改了 Google Map 的侦听器模型。现在OnCameraChangeListener被标记为已弃用。取而代之的是四个新的侦听器 ( OnCameraIdleListener, OnCameraMoveListener, OnCameraMoveStartedListener, OnCameraMoveCanceledListener)。

由于那次更新,我的应用程序非常慢。它停留在移动/缩放地图上,聚类过程很慢,需要几秒钟。

我认为这种行为可能与侦听器模型的变化有关。因此,我尝试addOnCameraChangeListener(clustermanager)用新的addOnCameraIdleListener(clustermanager). 不幸的是,这不起作用,因为ClusterManager没有实现必要的接口。

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

我正在使用 Gradle 导入 ClusterManager:

compile 'com.google.maps.android:android-maps-utils:0.4.3

但是我的本地版本ClusterManager似乎仍然是旧版本,它实现了旧的OnCameraChangeListener.

那么这里有什么问题呢?这是 Gradle 的不当行为吗?有人知道如何解决这个问题吗?自上次 Play Services 更新以来,还有其他人的 Google Map / Clusterer 速度缓慢且滞后吗?

我很感激任何帮助。多谢你们。

4

1 回答 1

22

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

你可以去搜索ClusterManager的源码,你会看到ClusterManager实现了新的OnCameraIdleListener。

您还需要更新到新的 android-maps-utils:0.4.4 (compile 'com.google.maps.android:android-maps-utils:0.4.4')

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

于 2016-08-29T18:29:45.457 回答