Kamera umożliwia zmianę punktu widzenia użytkownika na mapie. Możesz używać trybów kamery, aby kontrolować sposób wyświetlania mapy podczas nawigacji. Aby ustawić tryb aparatu, wywołaj jedną z tych metod powiązanych z kamerą:
Śledź moją lokalizację (
GoogleMap.followMyLocation
) – domyślny tryb kamery do nawigacji. W tym trybie kamera jest ustawiona na urządzenie lub pojazd. Podczas nawigacji kamera automatycznie ustawia się w kierunku jazdy. Gdy włączone jest ustawienie wysokiej szczegółowości (NavigationMapStyle.HIGH_DETAIL
), obrysy budynków 2D są wyświetlane, gdy poziom powiększenia wynosi 19 lub więcej.Przypięty do lokalizacji (
GoogleMap.animateCamera
iGoogleMap.moveCamera
) — Blokuje kamerę w określonej lokalizacji. W tym trybie możesz ustawić położenie kamery oraz inne właściwości kamery, takie jak kierunek, pochylenie, przybliżenie itp. Gdy ten widok jest wybrany, a Nawigator jest zainicjowany, widoczny jest przycisk Wyśrodkuj.Pokaż opis trasy (
NavigationView.showRouteOverview
lubSupportNavigationFragment.showRouteOverview
) – wyświetla opis reszty trasy (do 45 minut jazdy), przesuwając i powiększając widok mapy w miarę potrzeby, aby dopasować ją do trasy. Po wybraniu tego widoku pojawia się przycisk Wyśrodkuj.
Kliknięcie przycisku Wyśrodkuj ponownie powoduje przełączenie kamery w tryb followMyLocation
.
Tryb Śledź moją lokalizację
Najczęstszym ustawieniem kamery jest ustawienie jej na urządzenie lub pojazd, co pozwala na wyświetlanie bieżącej pozycji w trakcie podróży. W tym trybie kamery możesz wyświetlać trasę z samochodem zawsze skierowanym w górę ekranu pod kątem (CameraPerspective.TILTED
) lub z kierunkiem (CameraPerspective.TOP_DOWN_HEADING_UP)
zawsze u góry ekranu).CameraPerspective.TOP_DOWN_NORTH_UP
Ten fragment kodu używa perspektywy TILTED
:
// Set the camera to follow the device (vehicle):
mNavFragment.getMapAsync(googleMap -> googleMap.followMyLocation(CameraPerspective.TILTED))
Przypięty do trybu lokalizacji
Tryb Pinned
zapewnia największą kontrolę nad kamerą. W tym trybie umieszczasz kamerę w określonym miejscu, przypisujesz kierunek, aby ustawić widok kamery, zmieniasz pochylenie, aby ustawić kąt widzenia, i określasz poziom powiększenia kamery.
Poniższy fragment kodu pokazuje kilka typowych sposobów przemieszczania kamery.
private static final LatLng SYDNEY = new LatLng(-33.88, 151.21);
private static final LatLng MOUNTAIN_VIEW = new LatLng(37.4, -122.1);
private GoogleMap map;
... // Obtain the map from a SupportNavigationFragment or NavigationView.
// Move the camera instantly to Sydney with a zoom of 15.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(SYDNEY, 15));
// Zoom in, animating the camera.
map.animateCamera(CameraUpdateFactory.zoomIn());
// Zoom out to zoom level 10, animating with a duration of 2 seconds.
map.animateCamera(CameraUpdateFactory.zoomTo(10), 2000, null);
// Construct a CameraPosition focusing on Mountain View and animate the camera to that position.
CameraPosition cameraPosition = new CameraPosition.Builder()
.target(MOUNTAIN_VIEW) // Sets the center of the map to Mountain View
.zoom(17) // Sets the zoom
.bearing(90) // Sets the orientation of the camera to east
.tilt(30) // Sets the tilt of the camera to 30 degrees
.build(); // Creates a CameraPosition from the builder
map.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
Tryb wyświetlania opisu trasy
Ustawienie showRouteOverview
kamery wyświetla całą podróż.
W przypadku podróży z wieloma miejscami docelowymi ten tryb wyświetla nieprzebytą część trasy.
// Place the camera to see the remaining route:
mNavFragment.showRouteOverview();
Ustawienie wysokiej szczegółowości
Gdy włączone jest ustawienie wysokiej szczegółowości, wyświetlane są kontury budynków 2D, gdy poziom powiększenia kamery jest ustawiony na 19 lub wyższy. Podczas nawigacji możesz zastąpić poziom powiększenia, używając obiektu FollowMyLocationOptions
. Pozwala to zwiększyć poziom powiększenia, aby wyświetlić 2D-kontury budynków, gdy użytkownik zbliża się do miejsca docelowego.
W tym przykładzie włączono ustawienie wysokiej szczegółowości:
navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);
W tym przykładzie poziom powiększenia kamery jest zastępowany podczas nawigacji. Poziom powiększenia jest ustawiony na 15, co jest wystarczające do wyświetlania 2D-kontur budynków.
googleMap.followMyLocation(
FollowMyLocationOptions.builder(CameraPerspective.TILTED)
.setZoomLevel(15.0f)
.build());
Następny krok
Aby dowiedzieć się, jak dostosować sposób interakcji użytkowników z mapą, określ, które z wbudowanych komponentów interfejsu użytkownika mają się na niej wyświetlać. Więcej informacji znajdziesz w artykule Dostosowywanie interfejsu nawigacji.