Puedes agregar animaciones de ruta de cámara a tu mapa 3D para brindar una experiencia más envolvente a tus usuarios. Las animaciones de ruta de cámara pueden volar a un punto, volar alrededor de él o
combinarse para animar la
Camera
a un punto del mapa, lo que incluye especificar su
altitud
y
altitudeMode.
Cuando configuras un
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 terrestre 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
Camera
para que vuele a un punto específico en un mapa 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
}
)
Volar alrededor de
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 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
}
)