Kullanıcılarınıza daha etkileyici bir deneyim sunmak için 3D haritanıza kamera yolu animasyonları ekleyebilirsiniz. Kamera yolu animasyonları, haritadaki bir noktaya uçabilir, bu noktanın etrafında uçabilir veya Camera öğesini haritadaki bir noktaya animasyonla taşımak için birleştirilebilir. Bu noktaya taşınırken rakım ve altitudeMode da belirtilebilir.
Bir animasyon için Camera yapılandırırken kameranın yüksekliğinin nasıl yorumlanacağını belirtmek üzere altitudeMode özelliğini ayarlayabilir (veya setAltitudeMode yöntemini çağırabilirsiniz):
AltitudeMode.ABSOLUTE: Rakımı, ortalama deniz seviyesinin üzerindeki metre cinsinden değer olarak yorumlar (belirtilmezse varsayılan değer).AltitudeMode.RELATIVE_TO_GROUND: Yüksekliği, kameranın odak noktasında zemin yüzeyinin üzerindeki metre cinsinden değer olarak yorumlar.AltitudeMode.RELATIVE_TO_MESH: Rakımı, kameranın merkez noktasındaki en yüksek 3D ağ yüzeyinin (ör. binalar veya ağaçlar) üzerindeki metre cinsinden değer olarak yorumlar.
Git
Aşağıdaki kod örneğinde, FlyToOptions yapılandırmasıyla GoogleMap3D üzerinde flyCameraTo yöntemini çağırarak Camera öğesinin 3D haritadaki belirli bir noktaya uçacak şekilde nasıl animasyonlu hale getirileceği gösterilmektedir.
// 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
}
)
Etrafta uçma
Aşağıdaki kod örneğinde, FlyAroundOptions yapılandırmasıyla GoogleMap3D üzerinde flyCameraAround yöntemini çağırarak Camera öğesinin 3D haritadaki belirli bir noktanın etrafında uçacak şekilde nasıl animasyonlu hale getirileceği gösterilmektedir.
// 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
}
)