Agrega animaciones de ruta de la cámara

Selecciona la plataforma: Android iOS JavaScript

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
    }
)