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ể gọi ArEarth_getCameraGeospatialPose
để lấy ArGeospatialPose
mô tả vị trí Không gian địa lý của thiết bị cho camera trong khung hình mới nhất. Tư thế này (được quản lý trong một đối tượng ArEarth
) 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 mà người dùng đang nhìn trong hệ toạ độ EUS với X+ trỏ về phía Đông, Y+ trỏ lên và Z+ trỏ về phía Nam
Kiểm tra trạng thái theo dõi
Giá trị không gian địa lý chỉ hợp lệ khi ArEarth.ArTrackingState
là ArTrackingState.AR_TRACKING_STATE_TRACKING
và ArEarth.ArEarthState
là AR_EARTH_STATE_ENABLED
. Hãy nhớ gói tất cả lệnh gọi API Không gian địa lý trong một khối kiểm soát 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); } }
Nếu ArEarth.ArTrackingState
không trở thành ArTrackingState.AR_TRACKING_STATE_TRACKING
, ArEarth.ArTrackingState
có thể là AR_TRACKING_STATE_PAUSED
hoặc AR_TRACKING_STATE_STOPPED
. Nếu không có điều kiện nào trong số này đúng, hãy kiểm tra ArEarth.ArEarthState
để cho thấy các trạng thái lỗi khác có thể khiến đối tượng ArEarth
không theo dõi được.
Điều chỉnh tư thế cho chính xác
Khi thiết bị thẳng đứng theo hướng mặc định, các góc cao độ (X+) và góc xoay (Z+) có xu hướng chính xác do sự căn chỉnh tự nhiên với tính năng theo dõi thực tế tăng cường. Tuy nhiên, các góc yaw (Y+) có thể thay đổi tuỳ thuộc vào khả năng cung cấp dữ liệu của VPS và điều kiện tạm thời tại vị trí. Ứng dụng của bạn có thể phải điều chỉnh để đảm bảo tính chính xác.
ArGeospatialPose_getOrientationYawAccuracy()
cung cấp số liệu ước tính độ chính xác cho các góc yaw (Y+) cho một ArGeospatialPose
nhất định. Độ chính xác về góc ngáp theo hướng là một con số mô tả bán kính (tính theo độ) của mức độ tin cậy theo phân vị thứ 68 về góc ngáp được trả về từ ArGeospatialPose_getEastUpSouthQuaternion()
. Nói cách khác, có 68% khả năng góc ngáp thực sự của ArGeospatialPose
là chính xác.
Giá trị lớn hơn cho biết độ chính xác thấp hơn. Ví dụ: nếu góc yaw yaw ước tính là 60 độ và độ chính xác yaw là 10 độ, thì có 68% xác suất rằng góc yaw thực sự nằm trong khoảng từ 50 đến 70 độ.
Các bước tiếp theo
- Đặt neo không gian địa lý bằng cách lấy tư thế Không gian địa lý của neo.