Получите геопространственную позу камеры устройства.
Оптимизируйте свои подборки
Сохраняйте и классифицируйте контент в соответствии со своими настройками.
После того как вы настроили параметры своего приложения для использования 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+) имеют тенденцию быть точными благодаря естественному выравниванию с отслеживанием AR. Однако углы отклонения (Y+) могут варьироваться в зависимости от доступности данных VPS и временных условий в месте расположения. Возможно, вашему приложению придется внести коррективы для обеспечения точности.
GeospatialPose.OrientationYawAccuracy
предоставляет оценку точности углов отклонения (Y+) для определенного AREarthManager.CameraGeospatialPose
. Точность отклонения от курса ориентации — это число, которое описывает радиус (в градусах) уровня достоверности 68-го процентиля вокруг углов отклонения от курса в GeospatialPose.EunRotation
. Другими словами, существует 68% вероятность того, что истинный угол отклонения AREarthManager.CameraGeospatialPose
будет точным в пределах количества градусов, возвращаемого GeospatialPose.OrientationYawAccuracy
.
Большие значения указывают на меньшую точность. Например, если расчетный угол отклонения от курса составляет 60 градусов, а точность отклонения от курса составляет 10 градусов, то существует 68% вероятность того, что истинный угол отклонения от курса составляет от 50 до 70 градусов.
Что дальше
Если не указано иное, контент на этой странице предоставляется по лицензии Creative Commons "С указанием авторства 4.0", а примеры кода – по лицензии Apache 2.0. Подробнее об этом написано в правилах сайта. Java – это зарегистрированный товарный знак корпорации Oracle и ее аффилированных лиц.
Последнее обновление: 2025-07-14 UTC.
[null,null,["Последнее обновление: 2025-07-14 UTC."],[[["\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."]]