Puedes agregar animaciones de ruta de la cámara a tu mapa en 3D para brindar una experiencia más inmersiva a tus usuarios. Las animaciones de ruta de la cámara pueden volar hacia un punto del mapa, volar alrededor de él o combinarse para animar la Camera hacia ese punto, lo que incluye especificar su altitud y su altitudeMode.
Cuando configuras un objeto Camera para una animación, puedes establecer la propiedad altitudeMode (o llamar a setAltitudeMode) para especificar cómo se interpreta la altitud de la cámara:
AltitudeMode.ABSOLUTE: Interpreta la altitud como metros sobre el nivel medio del mar (el valor predeterminado si no se especifica).AltitudeMode.RELATIVE_TO_GROUND: Interpreta la altitud como metros sobre la superficie del suelo en el punto central de la cámara.AltitudeMode.RELATIVE_TO_MESH: Interpreta la altitud como metros sobre la superficie de malla 3D más alta (como edificios o árboles) en el punto central de la cámara.
Visualizar
En la siguiente muestra de código, se indica cómo animar el objeto Camera para que vuele a un punto específico en un mapa en 3D llamando al método flyCameraTo en GoogleMap3D con una configuración de 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
}
)
Vuela alrededor
En la siguiente muestra de código, se indica cómo animar la
Camera
para que vuele alrededor de un punto específico en un mapa en 3D llamando al método
flyCameraAround
en
GoogleMap3D
con una configuración de
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
}
)