¿Cómo ajustar el nivel de zoom para ajustar el límite y, a continuación, el mapa del centro en marcador de desplazamiento?

Tengo un mapa de google (com.google.android.gms.maps.GoogleMap) donde tengo algunos marcadores fijados.

Puedo, por separado,

1) ajustar el nivel de zoom y centrar el mapa en un límite:

mMap.animateCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10)); 

y

2) centrar el mapa sobre uno de los marcadores:

 LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude + offset, markerSelected.getPosition().longitude); mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng)); 

Pero, para la vida de mí, no puedo hacer ambas cosas, ajustar el nivel de zoom usando newLatLngBounds y luego centrar el mapa en otro lugar. Todo lo que hago es lo que veo sucediendo en el mapa.

¿Cómo hago esto?

Pruebe a usar moveCamera y animateCamera

 mMap.moveCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10)); LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude + offset, markerSelected.getPosition().longitude); mMap.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng)); 

moveCamera se moverá directamente a ese lugar mientras animateCamera proporcionará el efecto de movimiento. Son lineales en la naturaleza así que uno sucederá después del otro sin embargo acodarlos como he hecho arriba proporcionará el efecto potencial que usted está buscando.

Si está tratando de ver el movimiento real de ambas llamadas en la interfaz de usuario, tendrá que registrarse para la devolución de llamada y completar la animación según sea necesario.

Para los futuros visitantes esto es cómo puede encadenar animaciones de cámara:

 map.animateCamera(CameraUpdateFactory.newLatLngBounds(getZoomBounds(), 10), 2000, new CancelableCallback() { @Override public void onFinish() { LatLng poiSelectedLatLng = new LatLng(markerSelected.getPosition().latitude + offset, markerSelected.getPosition().longitude); map.animateCamera(CameraUpdateFactory.newLatLng(poiSelectedLatLng)); } @Override public void onCancel() { } }); 

También vea AnimateCameraChainingExampleActivity.java para un ejemplo de cómo encadenar infinitamente.

  • GetMap () devuelve null en Android con Google Maps API v2
  • Android Google Maps V2 cambiar Mi ubicación Icono
  • Encontrado com.google.android.gms: play-services: 8.4.0, pero la versión 8.3.0 es necesaria para el plugin google-services
  • Cómo obtener una clave de versión de Google Maps API v2
  • Calcular el nivel de zoom para Google Map para dos valores de LatLong
  • Cómo implementar mapa arrastrable como uber android, Actualizar con cambiar ubicación
  • Adición de botones para correlacionar infowindow android
  • He creado una clave de API de mapa de Android para V2, no puedo mostrar un mapa
  • Buscar en todos los lugares en el nombre de la ciudad
  • Android Google Maps No se pudo encontrar el estilo 'mapViewStyle' en el tema actual
  • Doble clic / toque zoom mapa (Android)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.