web-dev-qa-db-fra.com

Google Maps V2 - Android - Obtenez le niveau de zoom actuel

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.

59
user268397
GoogleMap map;

....

float zoom = map.getCameraPosition().zoom;
190
Pavel Dudka

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..
    }
});
40
ridoy

Appelez getCameraPosition() sur le GoogleMap , et lisez le champ zoom du résultat CameraPosition objet .

8
CommonsWare