Comment puis-je obtenir le niveau de zoom actuel sous forme d'entier sur un GoogleMap. J'ai besoin de prendre ce code de GMaps v1.1:
MapView mGoogleMapView;
int zoomLevel = mGoogleMapView.getZoomLevel();
Je connais les méthodes getMinZoomLevel () et getMaxZoomLevel () mais je ne trouve rien dans la documentation Android GMap V2 qui donnera le niveau de zoom actuel. Quelqu'un at-il des pointeurs sur la façon dont pour faire ça?
Toute aide serait appréciée.
GoogleMap map;
....
float zoom = map.getCameraPosition().zoom;
Je pense que OnCameraChangeListener fera l'affaire.
map.setOnCameraChangeListener(new OnCameraChangeListener() {
private float currentZoom = -1;
@Override
public void onCameraChange(CameraPosition position) {
if (position.zoom != currentZoom){
currentZoom = position.zoom; // here you get zoom level
}
}
});
Mise à jour:
À partir du service Google Play 9.4.0 OnCameraChangeListener a été déconseillé et ne fonctionnera plus bientôt.Autrement, ils sont remplacés par OnCameraMoveStarted Listener, OnCameraMoveListener , OnCameraMoveCancel edListener et OnCameraIdleListener.
Par conséquent, nous pouvons utiliser OnCameraIdleListener ici pour obtenir le niveau de zoom actuel de la caméra.
Échantillon de code:
map.setOnCameraIdleListener(new GoogleMap.OnCameraIdleListener() {
@Override
public void onCameraIdle() {
int zoomLevel = map.getCameraPosition().zoom;
//use zoomLevel value..
}
});
Appelez getCameraPosition()
sur le GoogleMap
, et lisez le champ zoom
du résultat CameraPosition
objet .