Vous pouvez ajouter des animations de trajectoire de caméra à votre carte 3D pour offrir une expérience plus immersive à vos utilisateurs. Les animations de trajectoire de la caméra peuvent voler vers un point de la carte, voler autour de celui-ci ou être combinées pour animer la Camera vers un point de la carte, y compris en spécifiant son altitude et son altitudeMode.
Lorsque vous configurez un Camera pour une animation, vous pouvez définir la propriété altitudeMode (ou appeler setAltitudeMode) pour spécifier comment l'altitude de la caméra est interprétée :
AltitudeMode.ABSOLUTE: interprète l'altitude en mètres au-dessus du niveau moyen de la mer (valeur par défaut si elle n'est pas spécifiée).AltitudeMode.RELATIVE_TO_GROUND: interprète l'altitude en mètres au-dessus de la surface du sol au point central de la caméra.AltitudeMode.RELATIVE_TO_MESH: interprète l'altitude en mètres au-dessus de la surface de maillage 3D la plus élevée (comme des bâtiments ou des arbres) au point central de la caméra.
Aller à
L'exemple de code suivant montre comment animer l'Camera pour qu'il survole un point spécifique sur une carte 3D en appelant la méthode flyCameraTo sur GoogleMap3D avec une configuration 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
}
)
Survoler
L'exemple de code suivant montre comment animer l'Camera pour survoler un point spécifique sur une carte 3D en appelant la méthode flyCameraAround sur GoogleMap3D avec une configuration 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
}
)