Modos de cámara

La clase Camera proporciona métodos para configurar diferentes modos de la cámara. Cada modo proporciona una forma diferente de ver el mapa durante la navegación. Para configurar el modo de cámara, llama a uno de los siguientes métodos:

followMyLocation()
Este es el modo de cámara predeterminado para la navegación. Este modo configura la cámara para que siga al vehículo. Durante la navegación, la cámara se orienta automáticamente en la dirección del viaje.
setLocation()
Desplaza la cámara y hace zoom para apuntar a una ubicación específica. Cuando usas este modo, puedes configurar la ubicación de la cámara, la dirección a la que apunta y el nivel de zoom. Cuando usas este modo de cámara, aparece el botón Volver a centrar.
showRouteOverview()
Muestra una descripción general de la ruta restante, el desplazamiento lateral y el zoom según sea necesario para que la ruta se ajuste a la vista de mapa. Cuando usas este modo de cámara, aparece el botón Volver a centrar.

Si haces clic en el botón Volver a centrar, se configura el modo de la cámara en Seguir mi ubicación.

Seguir mi modo de ubicación

Este es el modo de cámara más usado para la navegación, en el que la cámara sigue al vehículo. En este modo de cámara, puedes ver la ruta con los siguientes elementos:

  • El vehículo siempre se dirigió hacia la pantalla, como se muestra en una perspectiva angular desde arriba (Camera.Perspective.TILTED).

  • El vehículo que viaja con el mapa siempre orientado hacia el norte, lo que se muestra en una perspectiva aérea en línea recta (Camera.Perspective.TOP_DOWN_NORTH_UP)

  • El vehículo siempre se dirigió hacia arriba en la pantalla, como se muestra en una perspectiva recta hacia abajo desde arriba (Camera.Perspective.TOP_DOWN_HEADING_UP).

En el siguiente ejemplo de código, se muestra cómo configurar el modo de cámara en Follow my Location (Sigue mi ubicación) y usar la perspectiva angular desde arriba.

NavFragment.getCamera().followMyLocation(Camera.Perspective.TILTED);

Configurar el modo de ubicación

El modo setLocation le brinda al desarrollador el mayor control posible de la cámara. En este modo, debes colocar la cámara en una ubicación específica, asignar un rumbo para orientar la vista de la cámara y establecer el nivel de zoom.

La configuración consiste en definir una ubicación para la cámara a partir de las coordenadas del GPS y, luego, empaquetar la ubicación, el rumbo de la cámara y el nivel de zoom:

// Set up a stationary camera
// Pick a location to place the camera: Seattle Space Needle
double cameraLatitude = 47.6101d;
double cameraLongitude = -122.3421d;  // Use negative for W of Greenwich.

// Package the coordinates
com.google.android.libraries.navigation.LatLng cameraCenter;
cameraCenter = new com.google.android.libraries.navigation.LatLng (cameraLatitude, cameraLongitude);

// Prepare the state info for the setLocation method.
com.google.android.libraries.navigation.CameraPosition newCameraPosition;
newCameraPosition = new com.google.android.libraries.navigation.CameraPosition();

newCameraPosition.center(cameraCenter);
newCameraPosition.bearing(-90.00f); // N 0.00; E 90.00; S 180.00; W 270.0 (or -90.0).
newCameraPosition.zoom(14.0f);      // Zooms to street level (approx.)

boolean animate = true;
mNavFragment.getCamera().setLocation(newCameraPosition, animate);

Mostrar modo de descripción general de la ruta

El parámetro de configuración de la cámara showRouteOverview muestra todo el recorrido. En el caso de viajes con varios destinos, este modo muestra la parte no viajada de la ruta.

// Place the camera to see the remaining route:
mNavFragment.getCamera().showRouteOverview();

Próximo paso

Consulta la IU de navegación personalizada para aprender a personalizar la forma en que los usuarios interactúan con tu mapa. Para ello, debes determinar qué componentes de la IU integrados aparecerán en el mapa.