Using the tutorial here, I successfully implemented clustering in my Android app. Since OnCameraChangeListener() is now deprecated in com.google.android.gms:play-services:9.4.0 is there a new way to implement the part below?
private ClusterManager<MyItem> mClusterManager;
googleMap.setOnCameraChangeListener(mClusterManager);
EDIT:
I tried directly replacing setOnCameraChangeListener by setOnCameraMoveListener like
googleMap.setOnCameraMoveListener(mClusterManager);
This does not work since setOnCameraMoveListener() is expecting an object of class OnCameraMoveListener. Casting mClusterManager does not work either.
googleMap.setOnCameraMoveListener((GoogleMap.OnCameraMoveListener) mClusterManager);
You need to use
gooleMap.setOnCameraIdleListener(mClusterManager);
instead of
googleMap.setOnCameraMoveListener(mClusterManager);
You can to search for the source code of ClusterManager and you will see that ClusterManager implements the new OnCameraIdleListener.
Also you need to update to new android-maps-utils:0.4.4
(compile 'com.google.maps.android:android-maps-utils:0.4.4')
Good luck and vote up... ;-)
It is advisable to use newly introduced four camera listeners (OnCameraIdleListener
, OnCameraMoveListener
, OnCameraMoveStartedListener
,OnCameraMoveCanceledListener
), but if you still want to go with setOnCameraChangeListener
use specific version of android-maps-utils
(Given below)
compile 'com.google.maps.android:android-maps-utils:0.4.3'
in your module level gradle file. Check this answer if you want to implement new methods.
As per the documentation, this interface has been deprecated and replaced by more granular options which you could use.
This interface was deprecated. Replaced by GoogleMap.OnCameraMoveStartedListener, GoogleMap.OnCameraMoveListener and GoogleMap.OnCameraIdleListener. The order in which the deprecated onCameraChange method will be called in relation to the methods in the new camera change listeners is undefined.
来源:https://stackoverflow.com/questions/39095415/google-maps-android-clustering-oncamerachangelistener-deprecated