Lấy tư thế Không gian địa lý của máy ảnh
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Sau khi định cấu hình chế độ cài đặt của ứng dụng để sử dụng API không gian địa lý, bạn có thể lấy AREarthManager.CameraGeospatialPose
của máy ảnh thiết bị. Tư thế này, được quản lý trong đối tượng AREarthManager
, chứa các thông tin sau:
- Vị trí, được biểu thị bằng vĩ độ và kinh độ
- Cao độ
- Hướng gần đúng với hướng người dùng đang đối mặt trong hệ toạ độ EUS, trong đó X+ chỉ về hướng đông, Y+ chỉ lên trên và Z+ chỉ về hướng nam
Kiểm tra trạng thái theo dõi
Giá trị không gian địa lý chỉ hợp lệ khi AREarthManager.EarthTrackingState
là TrackingState.Tracking
. Hãy nhớ gói tất cả lệnh gọi API không gian địa lý trong một khối điều khiển AREarthManager.EarthTrackingState
.
var earthTrackingState = EarthManager.EarthTrackingState;
if (earthTrackingState == TrackingState.Tracking)
{
// camera_geospatial_pose contains geodetic location, rotation, and
// confidences values.
var cameraGeospatialPose = EarthManager.CameraGeospatialPose;
}
Nếu AREarthManager.EarthTrackingState
không trở thành TrackingState.Tracking
, thì AREarthManager.EarthTrackingState
có thể là TrackingState.Limited
hoặc TrackingState.None
. Nếu không có điều kiện nào trong số này là đúng, hãy kiểm tra TrackingState.EarthTrackingState
. Thành phần này cho thấy các trạng thái lỗi khác có thể khiến đối tượng AREarthManager
không theo dõi được.
Điều chỉnh tư thế để đảm bảo tính chính xác
Khi thiết bị đứng thẳng theo hướng mặc định, các góc độ nghiêng (X+) và nghiêng (Z+) có xu hướng chính xác do được căn chỉnh tự nhiên với tính năng theo dõi AR. Tuy nhiên, các góc xoay ngang (Y+) có thể thay đổi tuỳ thuộc vào tình trạng sẵn có của dữ liệu VPS và điều kiện thời gian tại vị trí đó. Ứng dụng của bạn có thể phải điều chỉnh để đảm bảo độ chính xác.
GeospatialPose.OrientationYawAccuracy
cung cấp thông tin ước tính về độ chính xác cho các góc yaw (Y+) cho một AREarthManager.CameraGeospatialPose
nhất định. Độ chính xác của độ lệch hướng là một con số mô tả bán kính (tính bằng độ) của mức độ tin cậy thứ 68 theo tỷ lệ phần trăm xung quanh các góc lệch hướng trong GeospatialPose.EunRotation
. Nói cách khác, có 68% khả năng góc xoay thực của AREarthManager.CameraGeospatialPose
chính xác trong số độ do GeospatialPose.OrientationYawAccuracy
trả về.
Giá trị càng lớn thì độ chính xác càng thấp. Ví dụ: nếu góc nghiêng ước tính là 60 độ và độ chính xác của góc nghiêng là 10 độ, thì có 68% khả năng góc nghiêng thực tế nằm trong khoảng từ 50 đến 70 độ.
Bước tiếp theo
Trừ phi có lưu ý khác, nội dung của trang này được cấp phép theo Giấy phép ghi nhận tác giả 4.0 của Creative Commons và các mẫu mã lập trình được cấp phép theo Giấy phép Apache 2.0. Để biết thông tin chi tiết, vui lòng tham khảo Chính sách trang web của Google Developers. Java là nhãn hiệu đã đăng ký của Oracle và/hoặc các đơn vị liên kết với Oracle.
Cập nhật lần gần đây nhất: 2025-07-14 UTC.
[null,null,["Cập nhật lần gần đây nhất: 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."]]