הוספת אנימציות לנתיב המצלמה

בחירת פלטפורמה: Android iOS JavaScript

אתם יכולים להוסיף אנימציות של נתיב המצלמה למפה התלת-ממדית כדי לספק למשתמשים חוויה עשירה יותר. אנימציות של נתיב המצלמה יכולות לעבור לנקודה מסוימת במפה, להסתובב סביבה או לשלב בין שתי הפעולות כדי להנפיש את 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
    }
)