Você pode adicionar animações de trajeto da câmera ao seu mapa 3D para oferecer uma experiência mais imersiva aos usuários. As animações de trajeto da câmera podem voar para, voar ao redor ou ser combinadas para animar a Camera para um ponto no mapa, incluindo a especificação da altitude e do altitudeMode.
Ao configurar um
Camera
para uma animação, é possível definir a propriedade
altitudeMode (ou chamar
setAltitudeMode)
para especificar como a altitude da câmera é interpretada:
AltitudeMode.ABSOLUTE: interpreta a altitude como metros acima do nível médio do mar (o valor padrão, se não for especificado).AltitudeMode.RELATIVE_TO_GROUND: interpreta a altitude como metros acima da superfície do solo no ponto central da câmera.AltitudeMode.RELATIVE_TO_MESH: interpreta a altitude como metros acima da superfície de malha 3D mais alta (como edifícios ou árvores) no ponto central da câmera.
Voar para
O exemplo de código a seguir demonstra como animar o
Camera
para sobrevoar um ponto específico em um mapa 3D chamando o método
flyCameraTo
em
GoogleMap3D
com uma configuração
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
}
)
Voar ao redor
O exemplo de código a seguir demonstra como animar a
Camera
para sobrevoar um ponto específico em um mapa 3D chamando o método
flyCameraAround
em
GoogleMap3D
com uma configuração
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
}
)