אחרי שקובעים את הגדרות האפליקציה לשימוש ב-גיאו-מרחבי API, אפשר לבצע קריאה ל-ArEarth_getCameraGeospatialPose
כדי לקבל ArGeospatialPose
שמתאר את המיקום הגיאו-מרחבי של המצלמה בפריים האחרון. התנוחה הזו, שמנוהלת באובייקט ArEarth
, מכילה את המידע הבא:
- מיקום, שמוצג לפי קו רוחב וקו אורך
- גובה
- כיוון שמעריך את הכיוון שאליו המשתמש פונה במערכת הקואורדינטות של האיחוד האירופי, כאשר 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
מסוים. הדיוק של הסיבוב הוא מספר שמתאר את הרדיוס במעלות של רמת הסמך של האחוזון ה-68 סביב זוויות ההטיה שהוחזרו מ-ArGeospatialPose_getEastUpSouthQuaternion()
. במילים אחרות, יש סיכוי של 68% שזווית ההסתה האמיתית של ArGeospatialPose
מדויקת.
ערכים גבוהים יותר מצביעים על רמת דיוק נמוכה יותר. לדוגמה, אם זווית ההטיה המשוערת היא 60 מעלות ורמת הדיוק של ההטיה היא 10 מעלות, יש 68% סבירות שזווית ההטיה האמיתית היא בין 50 ל-70 מעלות.
המאמרים הבאים
- ממקמים עוגן גיאו-מרחבי על ידי קבלת תנוחת ה-Geospatial של העוגן.