Android Maps – el método animateCamera () no funciona correctamente
Problema:
1) Mapa obteniendo animado para llegar a la ubicación requerida (4ª línea en código) pero se amplió a la ubicación por defecto (5ª línea en código)
- ¿Cómo mostrar múltiples marcadores con diferentes iconos en Google Maps Android API v2?
- Google Maps Android API v2 en China - la carga del mapa tomó alrededor de una hora
- Google Maps Android API v2 - MarkerOptions métodos arrastrables y visibles
- Animación de tipo GIF para marcador en google map api ANDROID
- Google Maps Android API v2 es gratis?
[Dejando el mapa en la ubicación predeterminada en el nivel de zoom especificado]
2) Entiendo por qué está ocurriendo el problema, pero no sé cómo resolverlo.
3) Si cambio la 4ta línea a moveCamera en vez de animateCamera que trabajará, pero quiero el método de animateCamera ().
Aquí está el código:
map=((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap(); MarkerOptions options=new MarkerOptions().position(new LatLng(13.0810,80.2740)); map.addMarker(options); map.animateCamera(CameraUpdateFactory.newLatLng(new LatLng(13.0810,80.2740)),4000,null); map.animateCamera(CameraUpdateFactory.zoomTo(15.5f),2000,null);
- Cómo añadir marcadores a las calles solamente - Android Development
- Android - Google Maps API v2 - NoClassDefFoundError
- Cómo agregar controles personalizados a MapFragment en Google Maps Android API v2?
- Recicle Android Maps V2 SupportMapFragment al girar
- Cómo recuperar la ubicación del dispositivo actual y mostrarlo en el fragmento de mapa en un fragmento
- Cómo invertir Geocode en google maps api 2 android
- Google Maps Android API v2 ClassNotFound Error de tiempo de ejecución
- ¿Por qué mi android enviar método de intento de correo electrónico no es el trabajo
El problema es que usted llama al zoom
justo después de comenzar a animar a la nueva ubicación. Es por eso que solo reemplaza la última acción de actualización de la cámara con la nueva.
Simplemente puede resolverse creando una acción de actualización de cámara más precisa (que incluya tanto el cambio de latlng como el cambio de nivel de zoom):
CameraPosition newCamPos = new CameraPosition(new LatLng(13.0810,80.2740), 15.5f, map.getCameraPosition().tilt, //use old tilt map.getCameraPosition().bearing); //use old bearing map.animateCamera(CameraUpdateFactory.newCameraPosition(newCamPos), 4000, null);
ALTERNATIVAMENTE, como se ha señalado por MaciejGórski, sólo puede utilizar la interfaz newLatLngZoom
que incluye tanto LatLng
como el cambio de zoom
:
map.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(13.0810,80.2740), 15.5f), 4000, null);
Utilice animateCamera
con la primera animateCamera
y llame a la segunda animateCamera
en onFinish
.
Ejemplo: AnimateCameraChainingExampleActivity.java
- Iniciar actividad en arranque
- Ionic 2: Cómo manejar el botón de hardware atrás que comprueba la confirmación de Salir en la aplicación