Sie können Ihrer 3D-Karte Kamerapfad-Animationen hinzufügen, um Ihren Nutzern eine noch intensivere Erfahrung zu bieten. Bei Kamerapfad-Animationen kann die Camera zu einem Punkt auf der Karte fliegen, um ihn herumfliegen oder beides kombiniert werden. Dabei können auch die Höhe und die altitudeMode angegeben werden.
Wenn Sie ein Camera für eine Animation konfigurieren, können Sie die Property altitudeMode festlegen oder setAltitudeMode aufrufen, um anzugeben, wie die Höhe der Kamera interpretiert wird:
AltitudeMode.ABSOLUTE: Interpretiert die Höhe als Meter über dem Meeresspiegel (der Standardwert, wenn nicht angegeben).AltitudeMode.RELATIVE_TO_GROUND: Die Höhe wird als Meter über der Erdoberfläche am Mittelpunkt der Kamera interpretiert.AltitudeMode.RELATIVE_TO_MESH: Die Höhe wird als Meter über der höchsten 3D-Mesh-Oberfläche (z. B. Gebäude oder Bäume) am Mittelpunkt der Kamera interpretiert.
Anfliegen
Im folgenden Codebeispiel wird gezeigt, wie Sie die Camera so animieren, dass sie zu einem bestimmten Punkt auf einer 3D-Karte fliegt. Dazu rufen Sie die Methode flyCameraTo für GoogleMap3D mit einer FlyToOptions-Konfiguration auf.
// Add imports and define constants
import com.google.android.gms.maps3d.model.AltitudeMode
import com.google.android.gms.maps3d.model.FlyToOptions
import com.google.android.gms.maps3d.model.FlyAroundOptions
import com.google.android.gms.maps3d.model.Camera
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.latLngAltitude
const val EMPIRE_STATE_BUILDING_LATITUDE = 40.748233
const val EMPIRE_STATE_BUILDING_LONGITUDE = -73.985663
// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
googleMap3D.flyCameraTo(
flyToOptions {
endCamera = camera {
center = latLngAltitude {
latitude = EMPIRE_STATE_BUILDING_LATITUDE
longitude = EMPIRE_STATE_BUILDING_LONGITUDE
altitude = 212.0 // in meters
}
heading = 34.0 // bearing in degrees
tilt = 67.0 // relative to vertical
range = 750.0 // distance away from the focal point in meters
roll = 0.0 // roll relative to horizontal
altitudeMode = AltitudeMode.RELATIVE_TO_GROUND
}
durationInMillis = 2000
}
)
Herumfliegen
Im folgenden Codebeispiel wird gezeigt, wie Sie die Camera so animieren, dass sie um einen bestimmten Punkt auf einer 3D-Karte fliegt. Dazu wird die Methode flyCameraAround für GoogleMap3D mit einer FlyAroundOptions-Konfiguration aufgerufen.
// Add imports and define constants
import com.google.android.gms.maps3d.model.AltitudeMode
import com.google.android.gms.maps3d.model.Map3DMode
import com.google.android.gms.maps3d.model.latLngAltitude
const val EMPIRE_STATE_BUILDING_LATITUDE = 40.748233
const val EMPIRE_STATE_BUILDING_LONGITUDE = -73.985663
// Add to the onMap3DViewReady method, after the googleMap3D object has been initialized
googleMap3D.setMapMode(Map3DMode.HYBRID)
googleMap3D.flyCameraAround(
flyAroundOptions {
center = camera {
center = latLngAltitude {
latitude = EMPIRE_STATE_BUILDING_LATITUDE
longitude = EMPIRE_STATE_BUILDING_LONGITUDE
altitude = 212.0
}
heading = 34.0
tilt = 67.0
range = 750.0
roll = 0.0
altitudeMode = AltitudeMode.RELATIVE_TO_GROUND
}
durationInMillis = 5000
rounds = 1.0 // Number of rotations - can be fractional
}
)