Możesz dodać animacje ścieżki kamery do mapy 3D, aby zapewnić użytkownikom bardziej wciągające wrażenia. Animacje ścieżki kamery mogą przelatywać do punktu na mapie, przelatywać wokół niego lub być
łączone, aby animować
Camera
do punktu na mapie, w tym określać jej
wysokość
i
altitudeMode.
Podczas konfigurowania
Camera
do animacji możesz ustawić właściwość
altitudeMode (lub wywołać
setAltitudeMode)
, aby określić, jak ma być interpretowana wysokość kamery:
AltitudeMode.ABSOLUTE: interpretuje wysokość jako metry nad średnim poziomem morza (wartość domyślna, jeśli nie jest określona).AltitudeMode.RELATIVE_TO_GROUND: interpretuje wysokość jako metry nad powierzchnią gruntu w środkowym punkcie kamery.AltitudeMode.RELATIVE_TO_MESH: interpretuje wysokość jako metry nad najwyższą powierzchnią siatki 3D (np. budynków lub drzew) w środkowym punkcie kamery.
Przejdź do
Poniższy przykładowy kod pokazuje, jak animować
Camera
, aby przelatywała do określonego punktu na mapie 3D, wywołując metodę
flyCameraTo
w
GoogleMap3D
z konfiguracją
FlyToOptions.
// 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
}
)
Przelatywanie wokół
Poniższy przykładowy kod pokazuje, jak animować
Camera
, aby przelatywała wokół określonego punktu na mapie 3D, wywołując metodę
flyCameraAround
w
GoogleMap3D
z konfiguracją
FlyAroundOptions.
// 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
}
)