الحصول على الوضع الجيوفضائي لكاميرا الجهاز
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
بعد ضبط إعدادات تطبيقك لاستخدام Geospatial API، يمكنك الحصول على AREarthManager.CameraGeospatialPose
كاميرا الجهاز. يحتوي وضع الجسم هذا، الذي تتم إدارته في عنصر AREarthManager
، على المعلومات التالية:
- الموقع الجغرافي، معرَّفًا بخطوط الطول والعرض
- الارتفاع
- اتجاه تقريبي للاتجاه الذي يواجهه المستخدم في نظام إحداثيات EUS مع توجيه X+ نحو الشرق وY+ نحو الأعلى وZ+ نحو الجنوب
التحقّق من حالة التتبّع
تكون القيم الجغرافية المكانية صالحة فقط عندما تكون قيمة AREarthManager.EarthTrackingState
هي TrackingState.Tracking
. احرص على تضمين جميع طلبات البيانات من واجهة برمجة التطبيقات Geospatial API في كتلة تحكّم AREarthManager.EarthTrackingState
.
var earthTrackingState = EarthManager.EarthTrackingState;
if (earthTrackingState == TrackingState.Tracking)
{
// camera_geospatial_pose contains geodetic location, rotation, and
// confidences values.
var cameraGeospatialPose = EarthManager.CameraGeospatialPose;
}
إذا لم يصبح AREarthManager.EarthTrackingState
TrackingState.Tracking
، قد يكون AREarthManager.EarthTrackingState
TrackingState.Limited
أو TrackingState.None
. إذا لم يكن أيّ من هذين الشرطَين صحيحًا، ضَع علامة في المربّع TrackingState.EarthTrackingState
الذي يعرض حالات خطأ أخرى قد تمنع تتبُّع عنصر AREarthManager
.
تعديل الوضع للحصول على دقة أكبر
عندما يكون الجهاز منتصبًا في الوضع التلقائي، تميل زاويتا الانحراف (X+) والدوران (Z+) إلى أن تكونا دقيقتَين بسبب المواءمة الطبيعية مع التتبّع بالواقع المعزّز. ومع ذلك، يمكن أن تختلف زوايا الانحراف (Y+) حسب مدى توفّر بيانات VPS والظروف الزمنية في الموقع الجغرافي. قد يحتاج تطبيقك إلى إجراء تعديلات لتحسين الدقة.
تقدّم GeospatialPose.OrientationYawAccuracy
تقديرًا للدقة لزوايا الانحراف (Y+) AREarthManager.CameraGeospatialPose
معيّنة. دقة انحراف الاتجاه هي رقم يصف نصف القطر، بالدرجات، لمستوى الثقة في الشريحة المئوية 68 حول زوايا الانحراف في GeospatialPose.EunRotation
. بعبارة أخرى، هناك احتمال بنسبة% 68 أن تكون زاوية الانحراف الحقيقية لجسم AREarthManager.CameraGeospatialPose
دقيقة ضمن عدد الدرجات التي يعرضها
GeospatialPose.OrientationYawAccuracy
.
تشير القيم الأكبر إلى انخفاض الدقة. على سبيل المثال، إذا كانت زاوية الانحراف المقدَّرة 60 درجة ودقة الانحراف 10 درجات، تكون هناك احتمالية بنسبة% 68 أن تكون زاوية الانحراف الفعلية بين 50 و70 درجة.
الخطوات التالية
إنّ محتوى هذه الصفحة مرخّص بموجب ترخيص Creative Commons Attribution 4.0 ما لم يُنصّ على خلاف ذلك، ونماذج الرموز مرخّصة بموجب ترخيص Apache 2.0. للاطّلاع على التفاصيل، يُرجى مراجعة سياسات موقع Google Developers. إنّ Java هي علامة تجارية مسجَّلة لشركة Oracle و/أو شركائها التابعين.
تاريخ التعديل الأخير: 2025-07-14 (حسب التوقيت العالمي المتفَّق عليه)
[null,null,["تاريخ التعديل الأخير: 2025-07-14 (حسب التوقيت العالمي المتفَّق عليه)"],[[["\u003cp\u003eAccess the device camera's geospatial pose, including location, altitude, and orientation, using the \u003ccode\u003eAREarthManager.CameraGeospatialPose\u003c/code\u003e after configuring the Geospatial API.\u003c/p\u003e\n"],["\u003cp\u003eEnsure the \u003ccode\u003eAREarthManager.EarthTrackingState\u003c/code\u003e is in the \u003ccode\u003eTrackingState.Tracking\u003c/code\u003e state before using geospatial values to avoid issues caused by limited or no tracking.\u003c/p\u003e\n"],["\u003cp\u003eAccount for potential inaccuracies in the yaw (Y+) angle of the orientation, especially when the device isn't upright, and utilize \u003ccode\u003eGeospatialPose.OrientationYawAccuracy\u003c/code\u003e to estimate the yaw accuracy.\u003c/p\u003e\n"],["\u003cp\u003eUnderstand that the \u003ccode\u003eGeospatialPose.OrientationYawAccuracy\u003c/code\u003e value represents the radius, in degrees, of the 68th percentile confidence level around the yaw angles, with larger values indicating lower accuracy.\u003c/p\u003e\n"]]],[],null,["# Obtain the device camera's Geospatial pose\n\nOnce you have configured your app's settings to use the Geospatial API, you can obtain the device camera's [`AREarthManager.CameraGeospatialPose`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#camerageospatialpose). This pose, managed in an [`AREarthManager`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager) object, contains the following information:\n\n- Location, expressed in latitude and longitude\n- Altitude\n- An orientation approximating the direction the user is facing in the EUS coordinate system with X+ pointing east, Y+ pointing up, and Z+ pointing south\n\nCheck the tracking state\n------------------------\n\nGeospatial values are only valid while [`AREarthManager.EarthTrackingState`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthtrackingstate) is [`TrackingState.Tracking`](https://docs.unity3d.com/Packages/com.unity.xr.arsubsystems@4.2/api/UnityEngine.XR.ARSubsystems.TrackingState.html). Make sure to wrap all Geospatial API calls in a [`AREarthManager.EarthTrackingState`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthtrackingstate) control block. \n\n var earthTrackingState = EarthManager.EarthTrackingState;\n if (earthTrackingState == TrackingState.Tracking)\n {\n // camera_geospatial_pose contains geodetic location, rotation, and\n // confidences values.\n var cameraGeospatialPose = EarthManager.CameraGeospatialPose;\n }\n\nIf [`AREarthManager.EarthTrackingState`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthtrackingstate) does not become [`TrackingState.Tracking`](https://docs.unity3d.com/Packages/com.unity.xr.arsubsystems@4.2/api/UnityEngine.XR.ARSubsystems.TrackingState.html), [`AREarthManager.EarthTrackingState`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthtrackingstate) may be [`TrackingState.Limited`](https://docs.unity3d.com/Packages/com.unity.xr.arsubsystems@4.2/api/UnityEngine.XR.ARSubsystems.TrackingState.html) or [`TrackingState.None`](https://docs.unity3d.com/Packages/com.unity.xr.arsubsystems@4.2/api/UnityEngine.XR.ARSubsystems.TrackingState.html). If neither of these conditions are true, check [`TrackingState.EarthTrackingState`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#earthtrackingstate), which shows other error states that may keep the [`AREarthManager`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager) object from tracking.\n\nAdjust the pose for accuracy\n----------------------------\n\nWhen the device is upright in the default orientation, the pitch (X+) and roll (Z+) angles tend to be precise due to a natural alignment with AR tracking. However, the yaw (Y+) angles can vary depending on VPS data availability and temporal conditions at the location. Your app may have to make adjustments for accuracy.\n\n[`GeospatialPose.OrientationYawAccuracy`](/ar/reference/unity-arf/struct/Google/XR/ARCoreExtensions/GeospatialPose#orientationyawaccuracy) provides an accuracy estimate for the yaw (Y+) angles for a certain [`AREarthManager.CameraGeospatialPose`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#camerageospatialpose). The orientation yaw accuracy is a number that describes the radius, in degrees, of the 68th percentile confidence level around the yaw angles in [`GeospatialPose.EunRotation`](/ar/reference/unity-arf/struct/Google/XR/ARCoreExtensions/GeospatialPose#eunrotation). In other words, there is a 68% chance that the [`AREarthManager.CameraGeospatialPose`](/ar/reference/unity-arf/class/Google/XR/ARCoreExtensions/AREarthManager#camerageospatialpose)'s true yaw angle is accurate within the number of degrees returned by\n[`GeospatialPose.OrientationYawAccuracy`](/ar/reference/unity-arf/struct/Google/XR/ARCoreExtensions/GeospatialPose#orientationyawaccuracy).\n\nLarger values indicate lower accuracy. For example, if the estimated yaw angle is 60 degrees and the yaw accuracy is 10 degrees, then there is a 68% probability that the true yaw angle is between 50 and 70 degrees.\n\nWhat's next\n-----------\n\n- [Place a Geospatial anchor](/ar/develop/unity-arf/geospatial/anchors#wgs84_anchors) by obtaining the anchor's Geospatial pose."]]