Escuchar nivel de zoom en google maps v2 en android

Estoy desarrollando una aplicación de Android que se supone que utiliza Google Maps v2. Ahora estoy atascado en la búsqueda cuando el nivel de zoom del mapa ha cambiado. ¿Puede alguien ayudarme? Gracias de antemano.

Cree una implementación de OnCameraChangeListener y pase una instancia de ella a setOnCameraChangeListener() de su GoogleMap . Su oyente debe ser llamado con onCameraChange() siempre que el usuario cambie el zoom, el centro o la inclinación. CameraPosition el nuevo nivel de zoom desde el objeto CameraPosition que se pasa.

Si está buscando cómo determinar si el nivel de zoom ha cambiado desde el nivel de zoom anterior, esto es lo que sugeriría:

Defina una variable de instancia para realizar un seguimiento del nivel de zoom anterior:

 //Initialize to a non-valid zoom value private float previousZoomLevel = -1.0f; 

Además, defina una variable de instancia para que sepa si el mapa está ampliando:

 private boolean isZooming = false; 

Cuando configure su instancia de GoogleMap, déle un OnCameraChangeListener …

 //mMap is an instance of GoogleMap mMap.setOnCameraChangeListener(getCameraChangeListener()); 

Ahora, defina el OnCameraChangeListener que determinará si el nivel de zoom ha cambiado:

 public OnCameraChangeListener getCameraChangeListener() { return new OnCameraChangeListener() { @Override public void onCameraChange(CameraPosition position) { Log.d("Zoom", "Zoom: " + position.zoom); if(previousZoomLevel != position.zoom) { isZooming = true; } previousZoomLevel = position.zoom; } }; } 

Ahora, puede comprobar el valor de isZooming para saber si está cambiando los niveles de zoom.

Asegúrese de ajustar

 isZooming = false; 

Después de haber completado cualquier acción depende de saber si el mapa está haciendo zoom.

Dado que las respuestas anteriores se basan en OnCameraChangeListener y que está obsoleto , esta respuesta se basa en la cámara setOnCameraMoveListener .

En este ejemplo, estoy cambiando mi Tipo de mapa cuando el usuario cambia el zoom (usando los controles o los dedos y el zoom). Si el nivel de zoom cambia por encima de 18.0, el tipo de mapa cambia a MAP_TYPE_HYBRIB y si va por debajo de 18.0, el tipo de mapa cambia a MAP_TYPE_NORMAL .

 googleMap.setOnCameraMoveListener(new GoogleMap.OnCameraMoveListener() { @Override public void onCameraMove() { CameraPosition cameraPosition = googleMap.getCameraPosition(); if(cameraPosition.zoom > 18.0) { googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID); } else { googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); } } }); 
  • Mi botón de ubicación
  • Marcador personalizado en google maps en android con vector icono de activo
  • Google Maps API v2 Android agregar forma drawable como marcador
  • El proyecto de la biblioteca de Android no se registra en Google Map
  • Cómo puedo dejar google maps api v2 ir directamente a mi ubicación
  • Compruebe si la latitud y la longitud están dentro de un círculo
  • Utilice ActionBarSherlock con el mapa de Google API V2
  • Aplicación para Android con direcciones de voz GPS
  • Android: java.lang.NoClassDefFoundError: com.google.android.gms.R $ styleable
  • Creación de OnDragListener para Google Map v2 Fragment
  • Agregar varios ClusterManager al mapa de Google
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.