Dodawanie animacji ścieżki kamery

Wybierz platformę: Android iOS JavaScript

Do mapy 3D możesz dodawać animacje ścieżki kamery, aby zapewnić użytkownikom bardziej realistyczne wrażenia. Animacje ścieżki kamery mogą obejmować przelot do punktu na mapie, przelot wokół niego lub kombinację tych działań, aby animować Camera do punktu na mapie, w tym określić jego wysokość i altitudeMode.

Podczas konfigurowania obiektu Camera na potrzeby animacji możesz ustawić właściwość altitudeMode (lub wywołać metodę 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 określono inaczej).
  • AltitudeMode.RELATIVE_TO_GROUND: interpretuje wysokość jako metry nad powierzchnią ziemi w punkcie centralnym kamery.
  • AltitudeMode.RELATIVE_TO_MESH: interpretuje wysokość jako metry nad najwyższą powierzchnią siatki 3D (np. budynkami lub drzewami) w punkcie środkowym kamery.

Przejdź do

Poniższy przykładowy kod pokazuje, jak animować element Camera, aby przelatywał do określonego punktu na mapie 3D, przez wywołanie metody flyCameraTo w elemencie 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
    }
)

Poruszanie się

Poniższy przykładowy kod pokazuje, jak animować Camera, aby latał 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
    }
)