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 máy ảnh trong khung hình mới nhất. Tư thế này, được quản lý trong đố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 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 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 điều khiển 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
, thì 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 là đúng, hãy kiểm tra ArEarth.ArEarthState
. 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 ArEarth
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.
ArGeospatialPose_getOrientationYawAccuracy()
cung cấp thông tin ước tính về độ chính xác cho các góc yaw (Y+) cho một ArGeospatialPose
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 được trả về từ ArGeospatialPose_getEastUpSouthQuaternion()
. Nói cách khác, có 68% khả năng góc xoay thực của ArGeospatialPose
là chính xác.
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
- Đặt điểm neo Không gian địa lý bằng cách lấy tư thế Không gian địa lý của điểm neo.