هنگامی که تنظیمات برنامه خود را برای استفاده از Geospatial API پیکربندی کردید، می توانید ArEarth_getCameraGeospatialPose
تماس بگیرید تا ArGeospatialPose
به دست آورید که موقعیت مکانی دستگاه را برای دوربین در آخرین فریم توصیف می کند. این حالت که در یک شی ArEarth
مدیریت می شود، حاوی اطلاعات زیر است:
- مکان، بیان شده در طول و عرض جغرافیایی
- ارتفاع
- جهت تقریبی جهتی که کاربر با آن روبرو است در سیستم مختصات EUS با X+ به سمت شرق، Y+ به سمت بالا و Z+ به سمت جنوب.
وضعیت ردیابی را بررسی کنید
مقادیر مکانی فقط زمانی معتبر هستند که ArEarth.ArTrackingState
ArTrackingState.AR_TRACKING_STATE_TRACKING
است.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
را از ردیابی باز دارد.
ژست را برای دقت تنظیم کنید
هنگامی که دستگاه در جهت پیشفرض عمودی است، به دلیل همترازی طبیعی با ردیابی AR، زوایای گام (X+) و رول (Z+) دقیق هستند. با این حال، زوایای انحراف (Y+) بسته به در دسترس بودن داده های VPS و شرایط زمانی در محل می تواند متفاوت باشد. برنامه شما ممکن است مجبور باشد تنظیماتی را برای دقت انجام دهد.
ArGeospatialPose_getOrientationYawAccuracy()
تخمین دقتی برای زوایای انحراف (Y+) برای یک ArGeospatialPose
خاص ارائه می دهد. دقت انحراف جهت گیری عددی است که شعاع سطح اطمینان صدک 68 را بر حسب درجه در اطراف زوایای انحراف برگشتی از ArGeospatialPose_getEastUpSouthQuaternion()
توصیف می کند. به عبارت دیگر، 68 درصد احتمال دارد که زاویه انحراف واقعی ArGeospatialPose
دقیق باشد.
مقادیر بزرگتر نشان دهنده دقت کمتر است. به عنوان مثال، اگر زاویه انحراف تخمینی 60 درجه و دقت انحراف 10 درجه باشد، به احتمال 68 درصد زاویه انحراف واقعی بین 50 تا 70 درجه است.
بعدش چی
- با به دست آوردن موقعیت مکانی لنگر، یک لنگر Geospatial قرار دهید.