4

Ich habe eine Android App mit etwa 500-1000 Markern. Ich verwende den ClusterManager von android-maps-utils wie gezeigt here, um diese Markierungen zu gruppieren.Google Map vs. Cluster Manager: onCameraChangeListener veraltet

Mit dem neuesten Play Services-Update hat Google das Listener-Modell von Google Map geändert. Die OnCameraChangeListener ist jetzt als veraltet markiert. Stattdessen gibt es vier neue Listener (OnCameraIdleListener, OnCameraMoveListener, OnCameraMoveStartedListener, OnCameraMoveCanceledListener).

Seit diesem Update ist meine App unglaublich langsam. Es bleibt beim Verschieben/Zoomen der Karte hängen, der Clustering-Prozess ist verzögert und benötigt einige Sekunden.

Ich dachte, dieses Verhalten ist möglicherweise mit den Änderungen im Listener-Modell verknüpft. Daher habe ich versucht, die addOnCameraChangeListener(clustermanager) Funktion durch die neue addOnCameraIdleListener(clustermanager) zu ersetzen. Leider funktioniert das nicht, da die ClusterManager die notwendige Schnittstelle nicht implementiert.

Und das ist, wo es seltsam wird, weil die aktuelle Version (0.4.3) der ClusterManager auf GitHub diese Schnittstelle implementiert. Also sollte es funktionieren.

ich den Import der ClusterManager mit Gradle:

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

aber meine lokale Version des ClusterManager scheint immer noch ein altes zu sein, die die alte OnCameraChangeListener implementiert.

Was ist hier falsch? Ist dies ein Fehlverhalten von Gradle? Hat jemand eine Idee, wie Sie dieses Problem beheben können? Und gibt es noch jemanden, dessen Google Map/Clusterer seit dem letzten Play Services-Update langsam und stockig ist?

Ich schätze jede Hilfe. Danke Leute.

Antwort

20

Sie müssen gooleMap.setOnCameraIdleListener (mClusterManager) verwenden; anstelle von googleMap.setOnCameraMoveListener (mClusterManager);

Sie können nach dem Quellcode von ClusterManager suchen und sehen, dass ClusterManager den neuen OnCameraIdleListener implementiert.

Auch müssen Sie die neue Android-Karten-utils aktualisieren: 0.4.4 (kompilieren 'com.google.maps.android:android-maps-utils:0.4.4')

Viel Glück und Stimme up ... ;-)

+0

Es funktioniert jetzt die 4.4-Version von android-maps-utils. Als ich diese Frage gepostet habe, war nur die Version 4.3 über Gradle verfügbar (4.4 war gerade auf GitHub). Scheint so, als hätte jemand es jetzt verfügbar gemacht. Also, danke Max, und danke "jemand". ;) – Manuel