Modos de câmera

A classe Camera oferece métodos para definir diferentes modos de câmera. Cada modo oferece uma maneira diferente de visualizar o mapa durante a navegação. Para definir o modo da câmera, chame um dos seguintes métodos:

followMyLocation()
Este é o modo de câmera padrão para navegação. Esse modo configura a câmera para seguir o veículo. Durante a navegação, a câmera fica voltada automaticamente para a direção da viagem.
setLocation()
Movimenta e aplica zoom na câmera para apontar para um local específico. Ao usar esse modo, você pode definir a localização da câmera, a direção dela e o nível de zoom. Quando você usa esse modo de câmera, o botão Recentralizar aparece.
showRouteOverview()
Exibe uma visão geral do trajeto restante, movimentando e aplicando zoom conforme necessário para ajustá-lo à visualização de mapa. Quando você usa esse modo de câmera, o botão Recentralizar aparece.

Clicar no botão Recentralizar define o modo de câmera para "Seguir meu local".

Seguir meu modo de localização

Esse é o modo de câmera mais usado para navegação, em que a câmera segue o veículo. Neste modo de câmera, você pode ver o trajeto com:

  • O veículo sempre virou para a tela, mostrado em uma perspectiva inclinada acima (Camera.Perspective.TILTED).

  • O veículo com o mapa sempre orientado para o norte, mostrado em uma perspectiva aérea (Camera.Perspective.TOP_DOWN_NORTH_UP).

  • O veículo estava sempre de frente para a tela, mostrado em uma perspectiva aérea de cima para baixo (Camera.Perspective.TOP_DOWN_HEADING_UP).

O exemplo de código a seguir demonstra como definir o modo da câmera como follow my Location e usar a perspectiva inclinada de cima.

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

Definir o Modo de localização

O modo setLocation fornece ao desenvolvedor mais controle sobre a câmera. Nesse modo, você coloca a câmera em um local específico, atribui um rolamento para orientar a visualização da câmera e define o nível de zoom da câmera.

A configuração consiste em definir um local para a câmera a partir das coordenadas do GPS e, em seguida, empacotar o local, o rolamento da câmera e o nível 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 visão geral do trajeto

A configuração da câmera showRouteOverview mostra toda a jornada. Para viagens com vários destinos, esse modo mostra a parte não percorrida do trajeto.

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

Próxima etapa

Consulte IU de navegação personalizada para saber como os usuários interagem com o mapa, determinando quais componentes integrados da interface aparecem no mapa.