我有一个带有大约 500-1000 个标记的 Android 应用程序。我正在使用 android-maps-utils 中的 ClusterManager如图here对这些标记进行聚类。
在最新的 Play Services 更新中,Google 更改了 Google map 的监听器模型。 OnCameraChangeListener
现在被标记为已弃用。相反,有四个新的监听器(OnCameraIdleListener、OnCameraMoveListener、OnCameraMoveStartedListener
、OnCameraMoveCanceledListener
)。
自那次更新以来,我的应用程序非常慢。它卡在移动/缩放 map 上,聚类过程很慢,需要几秒钟。
我认为这种行为可能与监听器模型的变化有关。因此,我尝试用新的 addOnCameraIdleListener(clustermanager)
替换 addOnCameraChangeListener(clustermanager)
函数。不幸的是,这不起作用,因为 ClusterManager
没有实现必要的接口(interface)。
这就是奇怪的地方,因为 ClusterManager
的当前版本 (0.4.3) GitHub 上确实实现了该接口(interface)。所以它应该可以工作。
我正在使用 Gradle 导入 ClusterManager:
编译 'com.google.maps.android:android-maps-utils:0.4.3
但我的本地版本的 ClusterManager
似乎仍然是一个旧版本,它实现了旧的 OnCameraChangeListener
。
那么这里有什么问题呢? 这是 Gradle 的不当行为吗? 有没有人知道如何解决这个问题? 自上次 Play Services 更新以来,是否还有其他人的 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')
祝你好运并投票...;-)
关于android - 谷歌地图与集群管理器 : onCameraChangeListener deprecated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39096070/