Zoom automático en Google Maps en java? (Dependiendo de la resolución de pantalla de Android)

Tengo 2 GeoPoints dados para mostrarlos en el mapa con marcadores.

¿Cómo puedo obtener el nivel de zoom óptimo para el MapController con el fin de enfocar el centro de ambos puntos, sino también tenerlos en el mapa.

Todo esto debería funcionar en diferentes resoluciones de pantalla.

2 Solutions collect form web for “Zoom automático en Google Maps en java? (Dependiendo de la resolución de pantalla de Android)”

Puede hacerlo utilizando MapController de MapView . Obtener el MapController utilizando MapView.getController () , entonces puede intentar establecer el zoom correcto utilizando MapController.zoomToSpan (). También tienden a utilizar getLatSpanE6 () y getLonSpanE6 () de ItemizedOverlay para hacer esto más sencillo. Un ejemplo:

MapView map = (MapView) findViewById(R.id.Map); MapController mc = map.getController(); mc.zoomToSpan(overlay.getLatSpanE6(), overlay.getLonSpanE6()); 

Es importante tener en cuenta su advertencia:

Debido a que el zoom sólo puede alcanzar niveles discretos, y debido a que la relación de aspecto del mapa puede no coincidir con la relación dada, la calidad del ajuste puede variar. Lo único que garantizamos es que, después del zoom, al menos uno de la nueva latitud o la nueva longitud estará dentro de un factor de 2 desde el parámetro correspondiente.

Editar: Para obtener también el mapa para ampliar el lugar correcto, tiene que utilizar MapController.setCenter ().

Asi es como debería de hacerse:

 private void loadMarkerPositions() { for (Stores store : storeList) { latlong1 = new LatLng(store.getLatitude(), store.getLongtitude()); array.add(latlong1); } List<LatLng> points = array; final LatLngBounds.Builder bc = new LatLngBounds.Builder(); for (LatLng item : points) { bc.include(item); } googleMap.setOnCameraChangeListener(new OnCameraChangeListener() { @Override public void onCameraChange(CameraPosition arg0) { // Move camera. googleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(bc.build(), 30)); // Remove listener to prevent position reset on camera move. googleMap.setOnCameraChangeListener(null); } }); } 

Referencia: moveCamera con CameraUpdateFactory.newLatLngBounds se bloquea

Hay otra manera fácil, usted puede utilizar este proyecto para lograr todas las actividades relacionadas con mapas:

https://github.com/girishnair12345/Google-Maps-V2-library

  • Zoom de Android y rotación de la vista de imagen
  • Configuración del nivel de zoom máximo en google maps android api v2
  • Android google maps no se puede ampliar con compás activo
  • Pinch Zoom ListView Android
  • Activar / desactivar el zoom en Android WebView
  • Rendimiento deficiente de la animación de zoom personalizado de Android
  • ¿Por qué los navegadores móviles cargan mi página completamente ampliada?
  • Cómo agrandar el elemento central en un listview - android?
  • Obtenga coordenadas del centro de la página web en dispositivos de tableta mediante JavaScript
  • Mantenga el mapa centrado, independientemente de dónde pinche el zoom en android
  • MapController, OSMdroid, zoomToSpan () congela la aplicación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.