4

我有一個約500-1000個標記的Android應用程序。我正在使用來自android-maps-utils的ClusterManager,如here所示,以聚集這些標記。谷歌地圖與集羣管理器:onCameraChangeListener已棄用

在最新的Play Services更新中,Google更改了Google Map的偵聽器模型。 OnCameraChangeListener現在被標記爲已棄用。相反,有四個新聽衆(OnCameraIdleListener, OnCameraMoveListener, OnCameraMoveStartedListener,OnCameraMoveCanceledListener)。

由於更新我的應用程序速度非常慢。它在移動/縮放地圖時遇到困難,集羣過程滯後,需要幾秒鐘。

我認爲這種行爲可能與監聽模型中的變化相關聯。因此我試圖用新的addOnCameraIdleListener(clustermanager)替換addOnCameraChangeListener(clustermanager)函數。不幸的是,這不起作用,因爲ClusterManager沒有實現必要的接口。

這就是奇怪的地方,因爲GitHub上的ClusterManager的當前版本(0.4.3)確實實現了該接口。所以它應該工作。

我使用進口的搖籃ClusterManager:

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

,但我對ClusterManager的本地版本似乎仍然是一箇舊的,它實現了老OnCameraChangeListener

那麼這裏有什麼問題? 這是Gradle的錯誤行爲嗎? 有沒有人知道如何解決這個問題? 自上次Play服務更新以來Google Map/Clusterer的運行速度緩慢嗎?

我很感激任何幫助。多謝你們。

回答

20

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

您可以搜索ClusterManager的源代碼,您將看到ClusterManager實現新的OnCameraIdleListener。

你也需要更新到新的Android的地圖-utils的:0.4.4(編譯 'com.google.maps.android:android-maps-utils:0.4.4')

好運氣和投票up ... ;-)

+0

它現在正常工作4.4版本的android-maps-utils。 當我發佈這個問題時,只有4.3版本可以通過Gradle(4.4只是在GitHub上)。似乎有人現在就可以使用它。所以,謝謝Max,並感謝「某人」。 ;) – Manuel