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 odak 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, Camera öğesinin flyCameraTo yöntemini GoogleMap3D üzerinde FlyToOptions yapılandırmasıyla çağırarak 3D haritada belirli bir noktaya uçacak şekilde nasıl animasyon oluşturulacağı 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, Camera öğesinin flyCameraAround yöntemini GoogleMap3D üzerinde FlyAroundOptions yapılandırmasıyla çağırarak 3D haritadaki belirli bir nokta etrafında uçacak şekilde nasıl animasyon oluşturulacağı 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
}
)