Dodawanie animacji ścieżki kamery

Wybierz platformę: Android iOS JavaScript

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