קבלת המיקום הגיאו-מרחבי של מצלמת המכשיר

אחרי שמגדירים את ההגדרות של האפליקציה לשימוש ב-Geospatial API, אפשר להפעיל את Earth.getCameraGeospatialPose() כדי לקבל GeospatialPose שמתאר את המיקום הגיאו-מרחבי של המכשיר למצלמה בפריים האחרון. התנוחה הזו, שמנוהלת באובייקט Earth, מכילה את המידע הבא:

  • מיקום, מבוטא בקווי אורך ורוחב
  • גובה
  • כיוון שמעריך את הכיוון שאליו המשתמש פונה במערכת הקואורדינטות של האיחוד האירופי, כאשר X+ פונה מזרחה, Y+ מצביע למעלה ו-Z+ מצביע דרומה.

בדיקת סטטוס המעקב

ערכים גיאו-מרחביים תקפים רק כאשר הערך של Earth.TrackingState הוא TrackingState.TRACKING. חשוב לעטוף את כל הקריאות ל-Geospatial API בבלוק בקרה של Earth.TrackingState.

Java

if (earth != null && earth.getTrackingState() == TrackingState.TRACKING) {
  GeospatialPose cameraGeospatialPose = earth.getCameraGeospatialPose();
  // cameraGeospatialPose contains geodetic location, rotation, and confidences values.
}

Kotlin

if (earth.trackingState == TrackingState.TRACKING) {
  val cameraGeospatialPose = earth.cameraGeospatialPose
  // cameraGeospatialPose contains geodetic location, rotation, and confidences values.
}

אם Earth.TrackingState לא הופך ל-TrackingState.TRACKING, הערך של Earth.TrackingState עשוי להיות TrackingState.PAUSED או TrackingState.STOPPED. אם אף אחד מהתנאים האלה לא מתקיים, מסמנים את Earth.Earthstate, שמראה מצבי שגיאה אחרים שעשויים למנוע את המעקב אחר האובייקט Earth.

שינוי התנוחה כדי לשפר את הדיוק

כשהמכשיר זקוף בכיוון ברירת המחדל, זוויות ההטיה (X+) והרוטציה (Z+) נוטות להיות מדויקות בגלל ההתאמה הטבעית למעקב AR. עם זאת, זוויות ההטיה (Y+) עשויות להשתנות בהתאם לזמינות הנתונים של ה-VPS ולתנאים הזמניים במיקום. יכול להיות שתצטרכו לבצע שינויים באפליקציה כדי לשפר את הדיוק.

השדה GeospatialPose.getOrientationYawAccuracy() מספק אומדן של הדיוק של זוויות ההטיה (Y+) עבור GeospatialPose מסוים. הדיוק של הסיבוב הוא מספר שמתאר את הרדיוס במעלות של רמת הסמך של האחוזון ה-68 סביב זוויות ההטיה שהוחזרו מ-GeospatialPose.getEastUpSouthQuaternion(). במילים אחרות, יש סיכוי של 68% שזווית ההסתה האמיתית של GeospatialPose מדויקת.

ככל שהערך גבוה יותר, כך רמת הדיוק נמוכה יותר. לדוגמה, אם זווית ההטיה המשוערת היא 60 מעלות ורמת הדיוק של ההטיה היא 10 מעלות, יש 68% סבירות שזווית ההטיה האמיתית היא בין 50 ל-70 מעלות.

המאמרים הבאים