Dostosuj ustawienia kamery

Aparat umożliwia zmianę punktu widzenia użytkownika na mapie. Za pomocą trybów aparatu możesz kontrolować działanie widoku 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 aparatu do nawigacji. Ten tryb ustawia aparat na urządzeniu lub w pojeździe. Podczas nawigacji aparat automatycznie jest skierowany w kierunku jazdy. Gdy włączone jest ustawienie wysokiej jakości (NavigationMapStyle.HIGH_DETAIL), kontury budynków 2D są wyświetlane przy powiększeniu na poziomie 19 lub wyższym.

  • Przypięte do lokalizacji (GoogleMap.animateCamera i GoogleMap.moveCamera) – ustawia kamerę w określonej lokalizacji. Podczas korzystania z tego trybu możesz ustawić lokalizację kamery i inne właściwości, takie jak nachylenie, nachylenie, powiększenie itp. Po wybraniu tego widoku i zainicjowaniu Nawigatora widoczny jest przycisk Wyśrodkuj.

  • Pokaż przegląd trasy (NavigationView.showRouteOverview lub SupportNavigationFragment.showRouteOverview) – umożliwia wyświetlenie przeglądu pozostałej trasy wraz z przesunięciem i powiększeniem w razie potrzeby, aby dopasować trasę do widoku mapy. Po wybraniu tego widoku widoczny jest przycisk Wyśrodkuj.

Kliknięcie przycisku Wyśrodkuj powoduje ustawienie kamery w trybie followMyLocation.

Śledź mój tryb lokalizacji

Najpopularniejszym ustawieniem kamery jest ustawienie kamery na urządzeniu lub w pojeździe, która pokazuje jego aktualne położenie podczas jazdy. W tym trybie aparatu możesz zobaczyć trasę z samochodem skierowanym na ekran zawsze pod kątem (CameraPerspective.TILTED) lub z samochodem poruszającym się z północą (CameraPerspective.TOP_DOWN_NORTH_UP) lub z kierunkiem (CameraPerspective.TOP_DOWN_HEADING_UP) zawsze u góry ekranu).

Następujący fragment kodu korzysta z perspektywy TILTED:

// Set the camera to follow the device (vehicle):
mNavFragment.getMapAsync(googleMap -> googleMap.followMyLocation(CameraPerspective.TILTED))

Przypięto do trybu lokalizacji

Tryb Pinned zapewnia największą kontrolę nad kamerą. W tym trybie ustawiasz kamerę w określonym miejscu, przypisujesz położenie kierujące do kierunku widoku, zmieniasz pochylenie kamery, by ustawić kąt, a także ustawiasz poziom powiększenia.

Ten fragment kodu pokazuje typowe sposoby przesuwania 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));

Pokaż tryb przeglądu trasy

Ustawienie aparatu showRouteOverview wyświetla całą podróż. W przypadku podróży obejmujących wiele miejsc ten tryb wyświetla niewykorzystaną część trasy.

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

Ustawienie Wysoka szczegółowość

Gdy ustawienie wysokiej jakości jest włączone, kontury budynków 2D są wyświetlane, gdy poziom powiększenia kamery jest ustawiony na 19 lub wyższy. Poziom powiększenia możesz zastąpić podczas nawigacji za pomocą obiektu FollowMyLocationOptions. Pozwala to zwiększyć poziom powiększenia do poziomu umożliwiającego wyświetlanie obrysów budynków 2D, gdy użytkownik zbliża się do celu.

Ten przykład włącza ustawienie wysokiej jakości:

  navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);

Poniższy przykład zastępuje poziom powiększenia kamery podczas nawigacji. Poziom powiększenia jest ustawiony na 15, co pozwala wyświetlić dwuwymiarowe kontury budynków.

  googleMap.followMyLocation(
              FollowMyLocationOptions.builder(CameraPerspective.TILTED)
                      .setZoomLevel(15.0f)
                      .build());

Następny krok

Przeczytaj artykuł Dostosowywanie interfejsu nawigacji, aby dowiedzieć się, jak dostosować sposób, w jaki użytkownicy korzystają z mapy, określając, które z wbudowanych komponentów interfejsu mają się pojawić na mapie.