Android MapView: ajusta el zoom automáticamente hasta que se visualicen todas las opciones de ItemizedOverlay
El setZoom () dentro de onCreate () se siente muy anticuado y me gustaría mejorar la experiencia del usuario inicialmente haciendo que el MapView establezca el zoom hasta que todos los GeoPoints / OverlayItems sean visibles en el mapa.
¿Cómo se puede hacer auto-mágicamente?
- Cómo quitar un LocationListener de LocationManager que se agrega dos veces en android?
- Android: LocationManager vs Servicios de Google Play
- Agregar distancia a una coordenada GPS
- Actualizaciones de ubicación continua en segundo plano
- Mantener un servicio de GPS vivo y optimizar la duración de la batería
- Desactivar el icono de GPS cuando LocationListener está durmiendo
- No se puede resolver Manifest.permission.ACCESS_FINE_LOCATION
- Comprobación de si el GPS está habilitado en android
- ¿Cómo actualizar la ubicación del GPS con frecuencia?
- Problema de Android para averiguar la última corrección GPS reciente
- OnStatusChanged situaciones
- ¿Cómo funciona getAltitude () de Android GPS Location Works
- Android: obtener la ubicación actual del usuario sin utilizar gps o Internet
Un poco como esto
int minLat = Integer.MAX_VALUE; int maxLat = Integer.MIN_VALUE; int minLon = Integer.MAX_VALUE; int maxLon = Integer.MIN_VALUE; for (GeoPoint item : items) { int lat = item.getLatitudeE6(); int lon = item.getLongitudeE6(); maxLat = Math.max(lat, maxLat); minLat = Math.min(lat, minLat); maxLon = Math.max(lon, maxLon); minLon = Math.min(lon, minLon); } mapController.zoomToSpan(Math.abs(maxLat - minLat), Math.abs(maxLon - minLon)); mapController.animateTo(new GeoPoint( (maxLat + minLat)/2, (maxLon + minLon)/2 ));
edit:
Ryan dio una sugerencia agradable: poner un relleno para que algunos de los puntos no se encuentran en los bordes (gracias Ryan!)
double fitFactor = 1.5; mapController.zoomToSpan((int) (Math.abs(maxLat - minLat) * fitFactor), (int)(Math.abs(maxLon - minLon) * fitFactor));
No hay manera mágica de lograr esto. Sugiero iterar a través de todos sus elementos de superposición para obtener el centro y el alcance de todos estos elementos. A continuación, ajuste el centro y el span según el mapa