Android: Establecer el nivel de zoom en Google Maps para incluir todos los puntos marcadores

Estoy intentando establecer el nivel de zoom de Maps en android de tal manera que incluya todos los puntos de mi lista. Estoy usando código siguiente.

int minLatitude = Integer.MAX_VALUE; int maxLatitude = Integer.MIN_VALUE; int minLongitude = Integer.MAX_VALUE; int maxLongitude = Integer.MIN_VALUE; // Find the boundaries of the item set // item contains a list of GeoPoints for (GeoPoint item : items) { int lat = item.getLatitudeE6(); int lon = item.getLongitudeE6(); maxLatitude = Math.max(lat, maxLatitude); minLatitude = Math.min(lat, minLatitude); maxLongitude = Math.max(lon, maxLongitude); minLongitude = Math.min(lon, minLongitude); } objMapController.zoomToSpan( Math.abs(maxLatitude - minLatitude), Math.abs(maxLongitude - minLongitude)); 

Esto funciona a veces. Sin embargo, a veces algunos puntos no se muestran y necesito a continuación, Zoom Out para ver esos puntos. ¿Hay alguna forma de resolver este problema?

Otro enfoque con Android Map API v2:

 private void fixZoom() { List<LatLng> points = route.getPoints(); // route is instance of PolylineOptions LatLngBounds.Builder bc = new LatLngBounds.Builder(); for (LatLng item : points) { bc.include(item); } map.moveCamera(CameraUpdateFactory.newLatLngBounds(bc.build(), 50)); } 

Descubrí la respuesta yo mismo, el nivel de zoom era correcto. Necesito agregar código siguiente para mostrar todos los puntos en la pantalla.

 objMapController.animateTo(new GeoPoint( (maxLatitude + minLatitude)/2, (maxLongitude + minLongitude)/2 )); 

El punto central no estaba bien alineado creando problema para mí. Esto funciona.

Parte del problema podría ser que MIN_VALUE sigue siendo un número positivo, pero latitudes y longitudes pueden ser números negativos. Intente utilizar NEGATIVE_INFINITY en lugar de MIN_VALUE.

  • Cómo utilizar SupportMapFragment dentro de un fragmento?
  • Android Google Maps: ¿Cómo obtener el área que se muestra actualmente en el dispositivo de pantalla?
  • Al presionar googleMap Marker en Android, 2 botones aparecen en la esquina inferior derecha, ¿puedo desactivarlos?
  • Android OnInfoWindowClickListener () nunca llamado
  • Androide MapView en el fragmento
  • La importación com.google.android.gms no se puede resolver
  • Error al cargar el mapa. Error al contactar a los servidores de Google. Esto es probablemente un problema de autenticación
  • Avisos legales de Google Maps API v2 Cadena demasiado larga
  • Android Loading markers dinámicamente mejor estrategia
  • Cómo ocultar mapview (google maps v2) cuando el fragmento cambió
  • Keytool Signing Problem: Keystore fue manipulado, o la contraseña fue incorrecta
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.