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

Uygulamanızın ayarlarını Coğrafi API'yi kullanacak şekilde yapılandırdıktan sonra, cihazın en son karedeki kamera için coğrafi konumunu açıklayan bir ArGeospatialPose almak üzere ArEarth_getCameraGeospatialPose işlevini çağırabilirsiniz. ArEarth nesnesinde yönetilen bu duruş aşağıdaki bilgileri içerir:

  • Enlem ve boylamla ifade edilen konum
  • Rakım
  • X+ doğuyu, Y+ yukarıyı ve Z+ güneyi işaret edecek şekilde EUS koordinat sisteminde kullanıcının baktığı yöne yaklaşık olarak denk gelen yön

İ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 Coğrafi API çağrılarını bir ArEarth.ArTrackingState kontrol bloğuna sarmalayın.

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 olmazsa ArEarth.ArTrackingState AR_TRACKING_STATE_PAUSED veya AR_TRACKING_STATE_STOPPED olabilir. Bu koşulların hiçbiri geçerli değilse ArEarth nesnesinin izlenmesini engelleyebilecek diğer hata durumlarını gösteren ArEarth.ArEarthState seçeneğini işaretleyin.

Doğruluk için pozu ayarlama

Cihaz varsayılan yönde dik konumdayken, AR izlemeyle doğal bir uyum sağladığı için eğim (X+) ve yuvarlanma (Z+) açıları genellikle hassas olur. Ancak yan kayma (Y+) açıları, VPS veri kullanılabilirliğine ve konumdaki zamansal koşullara bağlı olarak değişebilir. Uygulamanızda doğruluk için düzenlemeler yapmanız gerekebilir.

ArGeospatialPose_getOrientationYawAccuracy(), belirli bir ArGeospatialPose için yan kayma (Y+) açıları için doğruluk tahmini sağlar. Yön sapma doğruluğu, ArGeospatialPose_getEastUpSouthQuaternion() tarafından 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. Diğer bir deyişle, ArGeospatialPose'ın gerçek yalpalama açısının doğru olma olasılığı% 68'dir.

Daha büyük değerler daha düşük doğruluk anlamına gelir. Örneğin, tahmini sapma açısı 60 derece ve sapma doğruluğu 10 derece ise gerçek sapma açısının 50 ile 70 derece arasında olma olasılığı% 68'dir.

Sırada ne var?