אתם יכולים להוסיף אנימציות של נתיב המצלמה למפה התלת-ממדית כדי לספק למשתמשים חוויה עשירה יותר. אנימציות של נתיב המצלמה יכולות לעבור לנקודה מסוימת במפה, להסתובב סביבה או לשלב בין שתי הפעולות כדי להנפיש את Camera, כולל ציון הגובה וaltitudeMode שלה.
כשמגדירים Camera לאנימציה, אפשר להגדיר את המאפיין altitudeMode (או להפעיל את setAltitudeMode) כדי לציין איך הגובה של המצלמה יפורש:
-
AltitudeMode.ABSOLUTE: הגובה מפורש כמטרים מעל גובה פני הים הממוצע (ערך ברירת המחדל אם לא צוין אחרת). -
AltitudeMode.RELATIVE_TO_GROUND: מפרש את הגובה כמטרים מעל פני הקרקע בנקודת המרכז של המצלמה. -
AltitudeMode.RELATIVE_TO_MESH: הגובה מפורש כמטרים מעל פני השטח הגבוהים ביותר של רשת תלת-ממדית (כמו בניינים או עצים) בנקודת המרכז של המצלמה.
מעבר בטיסה אל
דוגמת הקוד הבאה ממחישה איך להוסיף אנימציה ל-Camera כדי לעבור לנקודה ספציפית במפה תלת-ממדית. לשם כך, מפעילים את השיטה flyCameraTo ב-GoogleMap3D עם הגדרת 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
}
)
טיסה מסביב
בדוגמת הקוד הבאה אפשר לראות איך להוסיף אנימציה ל-Camera כדי להציג תנועה סביב נקודה ספציפית במפה תלת-ממדית. לשם כך, מפעילים את השיטה flyCameraAround ב-GoogleMap3D עם הגדרת 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
}
)