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.