Comment obtenir le niveau de zoom GoogleMap actuel?

Sur GoogleMap Android API v2, Comment puis-je obtenir le niveau de zoom actuel de la carte? Sur API v1, il y avait float MapView.getZoomLevel(), mais il ne semble y avoir rien de similaire sur la version de L'API que J'utilise, et que Google recommande.

J'ai pensé à utiliser une variable de classe pour enregistrer le niveau de zoom manuellement via un écouteur de clic de bouton de zoom, mais cela ne résout pas le problème du zoom de type pincement.

Pourquoi ai-je besoin du niveau de zoom actuel? Je limite la plage de la carte à un certain rectangle et vous voulez tous les mouvements qui quitteraient autrement ce rectangle, rebondir. Cette animation m'oblige à utiliser un niveau de zoom, car sans elle, le niveau de zoom maximal par défaut est utilisé. Ce que je veux vraiment, c'est maintenir le niveau de zoom utilisé avant la tentative de déplacement.

protected void recenterMap() {
    map.getMinZoomLevel();
    if(MAP_BOUNDS.contains(map.getCameraPosition().target) == false) {
        CameraPosition cameraPosition = new CameraPosition.Builder()
        .target(MAP_CENTER)      
        .zoom(current_zoom)
        .build();     

        map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
    } else {
        MAP_CENTER = map.getCameraPosition().target;
    }
}

Remarquez que la variable current_zoom est ce que je dois définir.

21
demandé sur jhc 2013-02-15 01:30:13

2 réponses

Pour Android, essayez d'obtenir la position actuelle de la caméra et d'obtenir le zoom à partir de cela.
Je crois que c'est:

map.getCameraPosition().zoom
67
répondu Chris B. 2013-06-16 13:13:53

Il devrait être (sur L'API v2)

map.getZoom(); 

Sinon, essayez document.getElementById("zoom").innerHTML

-5
répondu Chris B. 2013-06-16 13:14:08