Kamera anpassen

Mit der Kamera können Sie die Nutzeransicht der Karte ändern. Mit den Kameramodi können Sie das Verhalten der Kartenansicht während der Navigation steuern. Rufen Sie zum Festlegen des Kameramodus eine der folgenden Methoden auf, die mit der Kamera verknüpft sind:

  • Meinen Standort verfolgen (GoogleMap.followMyLocation): Der Standardkameramodus für die Navigation. In diesem Modus wird die Kamera auf das Gerät oder Fahrzeug ausgerichtet. Während der Navigation zeigt die Kamera automatisch in Fahrtrichtung. Wenn die Einstellung für hohe Details aktiviert ist (NavigationMapStyle.HIGH_DETAIL), werden 2D-Gebäudeumrisse ab der Zoomstufe 19 angezeigt.

  • An Ort angepinnt (GoogleMap.animateCamera und GoogleMap.moveCamera): Die Kamera wird an einer bestimmten Stelle fixiert. In diesem Modus können Sie die Kameraposition sowie andere Kameraeigenschaften wie Richtung, Neigung und Zoom festlegen. Wenn diese Ansicht ausgewählt ist und der Navigator initialisiert wurde, ist die Schaltfläche Neu ausrichten sichtbar.

  • Routenübersicht anzeigen (NavigationView.showRouteOverview oder SupportNavigationFragment.showRouteOverview): Hier sehen Sie eine Übersicht der verbleibenden Route. Sie können schwenken und zoomen, um die Route in der Kartenansicht anzupassen. Wenn diese Ansicht ausgewählt ist, wird die Schaltfläche Zur Mitte ausrichten angezeigt.

Wenn Sie auf die Schaltfläche Neuer Bildausschnitt klicken, wird die Kamera in den Modus followMyLocation versetzt.

Modus „Meinen Standort folgen“

Die gängigste Kameraeinstellung ist die Ausrichtung auf das Gerät oder Fahrzeug, um die aktuelle Position während der Fahrt zu zeigen. In diesem Kameramodus wird die Route mit dem Auto immer in einer abgewinkelten Perspektive (CameraPerspective.TILTED) oben auf dem Display angezeigt. Sie können sich die Fahrt auch so anzeigen lassen, dass Norden (CameraPerspective.TOP_DOWN_NORTH_UP) oder die Fahrtrichtung (CameraPerspective.TOP_DOWN_HEADING_UP)) immer oben auf dem Display zu sehen ist.

Im folgenden Codefragment wird die Perspektive TILTED verwendet:

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

An den Standortmodus angepinnt

Im Modus Pinned haben Sie die größte Kontrolle über die Kamera. In diesem Modus platzieren Sie die Kamera an einem bestimmten Ort, weisen ihr eine Ausrichtung zu, um die Kameraansicht zu orientieren, ändern die Neigung, um den Blickwinkel festzulegen, und legen die Zoomstufe der Kamera fest.

Das folgende Code-Snippet zeigt einige der gängigen Methoden zum Bewegen der Kamera.

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));

Routenübersicht anzeigen

Bei der Kameraeinstellung showRouteOverview wird der gesamte Weg angezeigt. Bei Fahrten mit mehreren Zielen wird in diesem Modus der nicht zurückgelegte Teil der Route angezeigt.

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

Einstellung „Hohe Detailgenauigkeit“

Wenn die Einstellung „Hohe Detailgenauigkeit“ aktiviert ist, werden 2D-Gebäudeumrisse angezeigt, wenn die Zoomstufe der Kamera auf 19 oder höher eingestellt ist. Sie können die Zoomstufe während der Navigation mit einem FollowMyLocationOptions-Objekt überschreiben. So können Sie die Zoomstufe so weit erhöhen, dass 2D-Gebäudeumrisse angezeigt werden, wenn sich der Nutzer seinem Ziel nähert.

In diesem Beispiel ist die Einstellung „Hohe Detailgenauigkeit“ aktiviert:

  navigationView.setNavigationMapStyle(NavigationMapStyle.HIGH_DETAIL);

Im folgenden Beispiel wird die Zoomstufe der Kamera während der Navigation überschrieben. Die Zoomstufe ist auf 15 festgelegt, was hoch genug ist, um 2D-Gebäudeumrisse anzuzeigen.

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

Nächster Schritt

Unter Navigations-UI anpassen erfahren Sie, wie Sie festlegen können, welche der integrierten UI-Komponenten auf der Karte angezeigt werden, um die Interaktion der Nutzer mit der Karte anzupassen.