אחרי שמגדירים את ההגדרות של האפליקציה לשימוש ב-Geospatial API, אפשר להפעיל את ArEarth_getCameraGeospatialPose
כדי לקבל ArGeospatialPose
שמתאר את המיקום הגיאו-מרחבי של המכשיר למצלמה בפריים האחרון. התנוחה הזו, שמנוהלת באובייקט ArEarth
, מכילה את הפרטים הבאים:
- מיקום, שמוצג לפי קו רוחב וקו אורך
- גובה
- כיוון שמשוער לכיוון שאליו המשתמש פונה במערכת הקואורדינטות EUS, כאשר X+ מצביע לכיוון מזרח, Y+ מצביע למעלה ו-Z+ מצביע לכיוון דרום
בדיקת סטטוס המעקב
ערכים גיאו-מרחביים תקפים רק כאשר ArEarth.ArTrackingState
הוא ArTrackingState.AR_TRACKING_STATE_TRACKING
ו-ArEarth.ArEarthState
הוא AR_EARTH_STATE_ENABLED
. חשוב לתחום את כל הקריאות ל-Geospatial API בבלוק בקרה מסוג ArEarth.ArTrackingState
.
if (ar_earth != NULL) { ArTrackingState earth_tracking_state = AR_TRACKING_STATE_STOPPED; ArTrackable_getTrackingState(ar_session, (ArTrackable*)ar_earth, &earth_tracking_state); if (earth_tracking_state == AR_TRACKING_STATE_TRACKING) { ArGeospatialPose* camera_geospatial_pose = NULL; ArGeospatialPose_create(ar_session, &camera_geospatial_pose); ArEarth_getCameraGeospatialPose(ar_session, ar_earth, camera_geospatial_pose); // camera_geospatial_pose contains geodetic location, rotation, and // confidences values. ArGeospatialPose_destroy(camera_geospatial_pose); } }
אם ArEarth.ArTrackingState
לא הופך ל-ArTrackingState.AR_TRACKING_STATE_TRACKING
, הערך של ArEarth.ArTrackingState
עשוי להיות AR_TRACKING_STATE_PAUSED
או AR_TRACKING_STATE_STOPPED
. אם אף אחד מהתנאים האלה לא מתקיים, בודקים את השדה ArEarth.ArEarthState
, שבו מוצגים מצבי שגיאה אחרים שעשויים למנוע את המעקב אחרי האובייקט ArEarth
.
שינוי התנוחה כדי לשפר את הדיוק
כשהמכשיר זקוף בכיוון ברירת המחדל, זוויות ההטיה (X+) והרוטציה (Z+) נוטות להיות מדויקות בגלל ההתאמה הטבעית למעקב AR. עם זאת, זוויות ההטיה (Y+) עשויות להשתנות בהתאם לזמינות הנתונים של ה-VPS ולתנאים הזמניים במיקום. יכול להיות שתצטרכו לבצע שינויים באפליקציה כדי לשפר את הדיוק.
ArGeospatialPose_getOrientationYawAccuracy()
מספק הערכת דיוק לזוויות ההטיה (Y+) של ArGeospatialPose
מסוים. הדיוק של כיוון הנטייה (yaw) הוא מספר שמתאר את הרדיוס, במעלות, של רמת האמון ב-68% סביב זוויות הנטייה (yaw) שמוחזרות מ-ArGeospatialPose_getEastUpSouthQuaternion()
. במילים אחרות, יש סיכוי של 68% שזווית הנטייה האמיתית של ArGeospatialPose
מדויקת.
ככל שהערך גבוה יותר, כך רמת הדיוק נמוכה יותר. לדוגמה, אם זווית ההטיה המשוערת היא 60 מעלות ורמת הדיוק של ההטיה היא 10 מעלות, יש 68% סבירות שזווית ההטיה האמיתית היא בין 50 ל-70 מעלות.
המאמרים הבאים
- ממקמים נקודת עיגון גיאו-מרחבית על ידי קבלת תנוחת המיקום הגיאו-מרחבי של הנקודה.