Cihazın kamerasının Jeo-uzamsal pozunu alın

Uygulamanızın ayarlarını Geospatial API'yi kullanacak şekilde yapılandırdıktan sonra, ArEarth_getCameraGeospatialPose çağırarak cihazın son karede kameranın coğrafi konumunu açıklayan bir ArGeospatialPose elde edebilirsiniz. ArEarth nesnesinde yönetilen bu poz, aşağıdaki bilgileri içerir:

  • Enlem ve boylam cinsinden ifade edilen konum
  • Rakım
  • Kullanıcının EUS koordinat sisteminde baktığı yöne yakın bir yön; X+ doğuyu, Y+ yukarıyı, Z+ ise güneyi işaret eder

İzleme durumunu kontrol etme

Coğrafi değerler yalnızca ArEarth.ArTrackingState ArTrackingState.AR_TRACKING_STATE_TRACKING ve ArEarth.ArEarthState AR_EARTH_STATE_ENABLED olduğunda geçerlidir. Tüm Geospatial API çağrılarını bir ArEarth.ArTrackingState kontrol bloğunda sarmaladığınızdan emin olun.

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);
  }
}

ArEarth.ArTrackingState, ArTrackingState.AR_TRACKING_STATE_TRACKING haline gelmezse ArEarth.ArTrackingState değeri AR_TRACKING_STATE_PAUSED veya AR_TRACKING_STATE_STOPPED olabilir. Bu koşulların ikisi de doğru değilse ArEarth nesnesinin izlenmesini engelleyebilecek diğer hata durumlarını gösteren ArEarth.ArEarthState öğesini işaretleyin.

Pozu doğru olacak şekilde ayarlayın

Cihaz varsayılan yönde dik konumda olduğunda, AR izlemeyle doğal hizalama nedeniyle perde (X+) ve yuvarlama (Z+) açıları genellikle hassastır. Bununla birlikte, sapma (Y+) açıları VPS verilerinin kullanılabilirliği ve konumdaki zamansal koşullara bağlı olarak değişiklik gösterebilir. Uygulamanızın doğruluk için ayarlamalar yapması gerekebilir.

ArGeospatialPose_getOrientationYawAccuracy(), belirli bir ArGeospatialPose için sapma (Y+) açılarıyla ilgili doğruluk tahmini sağlar. Yön sapma doğruluğu, ArGeospatialPose_getEastUpSouthQuaternion() konumundan döndürülen sapma açıları etrafındaki 68. yüzdelik dilim güven düzeyinin yarıçapını derece cinsinden tanımlayan bir sayıdır. Başka bir deyişle, ArGeospatialPose'in gerçek sapma açısının doğru olma olasılığı% 68'dir.

Değer ne kadar büyükse doğruluğun düşük olduğunu belirtir. Örneğin, tahmini sapma açısı 60 derece ve sapma doğruluğu 10 dereceyse gerçek sapma açısının 50 ile 70 derece arasında olma olasılığı% 68'dir.

Sırada ne var?