Nutzer können den Zoom, die Neigung, die Position und die Drehung der Kamera mithilfe von Touch-Gesten auf der Karte steuern. Sie können die Kamera auch programmatisch konfigurieren.

Kameraposition
Die Kartenansicht wird so modelliert, als wäre eine Kamera auf einen bestimmten Punkt im Raum gerichtet. Die Position und Ausrichtung der Kamera werden durch Breiten-, Längen- und Höhengradkoordinaten (definiert als „Mittelpunkt“, auf den die Kamera zeigt), Richtung, Neigung, Bereich und Rollen definiert.
Mitte (Breitengrad, Längengrad, Höhe)
Der Mittelpunkt definiert den spezifischen Punkt im 3D-Raum, den die Kamera beobachtet. Dies wird mit der Klasse LatLngAltitude angegeben, die Werte für Breiten-, Längengrad und Höhe kombiniert. So können Sie den Fokuspunkt der Kamera dreidimensional positionieren.
Der Breitengrad kann zwischen -90 und 90 Grad liegen. Der Längengrad kann zwischen -180 bis 180 Grad liegen. Die Höhe wird in Metern angegeben. Wie die Höhe interpretiert wird, hängt vom altitudeMode der Kamera ab (standardmäßig AltitudeMode.ABSOLUTE, AltitudeMode.RELATIVE_TO_GROUND oder AltitudeMode.RELATIVE_TO_MESH).
Überschrift
Die Ausrichtung gibt die Kompassrichtung der Karte an. Sie wird in Grad im Uhrzeigersinn vom geografischen Norden gemessen. Norden entspricht 0 Grad, Osten 90 Grad, Süden 180 Grad und Westen 270 Grad.
Neigen
Die Neigung gibt den Winkel der Kamera zur vertikalen Achse in Grad an. Eine Neigung von 0 Grad bedeutet, dass die Kamera gerade nach unten auf die Erde gerichtet ist (Nadir). Eine Neigung von 90 Grad bedeutet, dass die Kamera horizontal in die durch die Ausrichtung angegebene Richtung zeigt.
Bereich
Der Bereich definiert die Entfernung in Metern zwischen der Position der Kamera und dem Mittelpunkt der Karte. Der Bereich kann von null Metern (sehr nah) bis zu 63 Millionen Metern reichen, sodass Ansichten von sehr nah bis hin zu einer globalen Perspektive möglich sind. Damit wird festgelegt, wie stark die Karte vergrößert oder verkleinert wird.
Rolle
Mit dem Rollwinkel wird der Winkel der Kamera zum Horizont in Grad festgelegt. Mit diesem Parameter können Sie Effekte wie das Neigen während Flugsimulationen oder sogar eine vollständige Fassrolle erstellen, bei der die Kamera um ihre Sichtachse gedreht wird.
Kamera steuern
Im folgenden Codebeispiel wird gezeigt, wie Sie dieCamera programmatisch steuern, indem Sie die Methode setCamera für GoogleMap3D aufrufen.
Wenn Sie dieses Codebeispiel verwenden möchten, folgen Sie der Anleitung unter Einrichtung und 3D-Karte in Ihre App einfügen, um Ihr Android Studio-Projekt mit einer einfachen 3D-Karte einzurichten. Fügen Sie dann den folgenden Code in die Datei MainActivity.kt ein:
// Add imports
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.camera
import com.google.android.gms.maps3d.model.latLngAltitude
// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
googleMap3D.setCamera(
camera {
center = latLngAltitude {
latitude = 38.743502
longitude = -109.499374
altitude = 1467.0
}
heading = 350.0
tilt = 58.1
range = 138.2
roll = 0.0
}
)
UI-Steuerelemente
Zusätzlich zu den Standardgesten bietet das Maps 3D SDK for Android auch UI-Steuerelemente zum Ändern der Kameraposition.
- Die Zoomsteuerung besteht aus den Buttons „+“ und „-“, mit denen die Zoomstufe der Karte geändert werden kann.
- Die Steuerung zum Verschieben besteht aus den Buttons „←“, „→“, „↑“ und „↓“, mit denen der Mittelpunkt der Karte geändert werden kann.
- Die Steuerelemente zum Drehen bestehen aus den Buttons „↺“ und „↻“, mit denen die Ausrichtung der Kamera geändert werden kann.
- Die Neigungssteuerung besteht aus den Buttons „^“ und „⌄“, mit denen die Neigung der Kamera geändert werden kann.
- Das Kompass-Steuerelement zeigt die Richtung des Kompassnordens an und ermöglicht es, die Kamera auf eine nördliche Ausrichtung zurückzusetzen.
Im folgenden Codebeispiel wird gezeigt, wie Sie die Sichtbarkeit der UI-Steuerelemente ändern:
```kotlin // Add imports import com.google.android.gms.maps3d.UiControlSettings import com.google.android.gms.maps3d.model.CompassControl import com.google.android.gms.maps3d.model.TiltControl import com.google.android.gms.maps3d.model.ZoomControl</p> <p>...</p> <p>val uiControlSettings = googleMap3D.getUiControlSettings()</p> <p>// Show UI controls on the trailing edge of the map uiControlSettings?.setUiControlsPlacement( listOf(CompassControl(), ZoomControl(), TiltControl()), UiControlSettings.ControlPlacement.TRAILING )</p> <p>// Hide UI controls on the trailing edge of the map uiControlSettings?.setUiControlsPlacement( emptyList(), UiControlSettings.ControlPlacement.TRAILING )