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

  • ¿Cómo realizar zoom in / out en VideoView en android?
  • Ampliar la animación
  • Cómo reducir la vista de diseño de Android en Intellij Idea12?
  • Efecto de zoom de Android ImageView
  • Cómo establecer el nivel de zoom MapView en onCreate ()?
  • Pinch Ampliar la vista web
  • Galería de Android: reemplaza el mapa de bits en ImageView después de que el desplazamiento se detuvo
  • Cómo fijar correctamente fixTransX y fixTransY de TouchImageView para implementar doubleTap a ZoomOut?
  • MapController, OSMdroid, zoomToSpan () congela la aplicación
  • Zoom suave en vista de mapa
  • Zoom de Android y rotación de la vista de imagen
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.