3

Beim Versuch, ClusterManager zu verwenden, habe ich festgestellt, dass die getMap(). SetOnCamera Änderung Listener (ClusterManager) veraltet ist. Wenn ich mir das Beispiel von android-maps-utils auf Github anschaue, habe ich bemerkt, dass getMap(). SetOnCamera Idle Listener (mClusterManager);ClusterManager setOnCameraIdleListener

Wenn ich versuche, das gleiche zu tun, erhalte ich einen Fehler, weil die Standard-ClusterManager-Klasse GoogleMap.OnCameraIdleListener nicht implementiert.

Doch in meiner gridle Datei, verwende ich, was mir scheint, Bibliotheken die neuesten Karten-util:

dependencies { 
    compile 'com.google.maps.android:android-maps-utils:0.4.3' 
} 

Wie kann ich den Zugriff auf die neueste ClusterManager Klasse bekommen? Dank

Antwort

14

statt:

mMap.setOnCameraChangeListener(mClusterManager); 

tun:

final CameraPosition[] mPreviousCameraPosition = {null}; 
    googleMap.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() { 
     @Override 
     public void onCameraIdle() { 
      CameraPosition position = googleMap.getCameraPosition(); 
      if(mPreviousCameraPosition[0] == null || mPreviousCameraPosition[0].zoom != position.zoom) { 
       mPreviousCameraPosition[0] = googleMap.getCameraPosition(); 
       clusterManager.cluster(); 
      } 
     } 
    }); 

, die ...

0

nach Play-Dienste-Karten 9.4.0 Version des API funktionieren sie Ändern Sie GoogleMap.OnCameraChangeListener in diese 3 Listener

GoogleMap.OnCame raMoveStartedListener,

GoogleMap.OnCameraMoveListener,

GoogleMap.OnCameraIdleListener.

Verwandte Themen