Mendapatkan pose Geospasial kamera perangkat

Setelah mengonfigurasi setelan aplikasi untuk menggunakan Geospatial API, Anda dapat memanggil ArEarth_getCameraGeospatialPose untuk mendapatkan ArGeospatialPose yang menjelaskan pemosisian Geospasial perangkat untuk kamera dalam frame terbaru. Pose ini, yang dikelola dalam objek ArEarth, berisi informasi berikut:

  • Lokasi, dinyatakan dalam lintang dan bujur
  • Ketinggian
  • Orientasi yang mendekati arah yang dihadapi pengguna dalam sistem koordinat EUS dengan X+ mengarah ke timur, Y+ mengarah ke atas, dan Z+ mengarah ke selatan

Memeriksa status pelacakan

Nilai geospasial hanya valid jika ArEarth.ArTrackingState adalah ArTrackingState.AR_TRACKING_STATE_TRACKING dan ArEarth.ArEarthState adalah AR_EARTH_STATE_ENABLED. Pastikan untuk menggabungkan semua panggilan Geospatial API dalam blok kontrol 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);
  }
}

Jika ArEarth.ArTrackingState tidak menjadi ArTrackingState.AR_TRACKING_STATE_TRACKING, ArEarth.ArTrackingState mungkin adalah AR_TRACKING_STATE_PAUSED atau AR_TRACKING_STATE_STOPPED. Jika salah satu kondisi ini tidak benar, periksa ArEarth.ArEarthState, yang menampilkan status error lain yang dapat mencegah pelacakan objek ArEarth.

Sesuaikan pose agar akurat

Saat perangkat tegak dalam orientasi default, sudut pitch (X+) dan roll (Z+) cenderung presisi karena perataan alami dengan pelacakan AR. Namun, sudut yaw (Y+) dapat bervariasi tergantung pada ketersediaan data VPS dan kondisi temporal di lokasi. Aplikasi Anda mungkin harus melakukan penyesuaian untuk akurasi.

ArGeospatialPose_getOrientationYawAccuracy() memberikan estimasi akurasi untuk sudut yaw (Y+) untuk ArGeospatialPose tertentu. Akurasi yaw orientasi adalah angka yang menjelaskan radius, dalam derajat, tingkat keyakinan persentil ke-68 di sekitar sudut yaw yang ditampilkan dari ArGeospatialPose_getEastUpSouthQuaternion(). Dengan kata lain, ada kemungkinan 68% bahwa sudut yaw sebenarnya ArGeospatialPose akurat.

Nilai yang lebih besar menunjukkan akurasi yang lebih rendah. Misalnya, jika perkiraan sudut yaw adalah 60 derajat dan akurasi yaw adalah 10 derajat, maka ada probabilitas 68% bahwa sudut yaw yang sebenarnya adalah antara 50 dan 70 derajat.

Langkah berikutnya