รับท่า Geospatial ของกล้องของอุปกรณ์

เมื่อกำหนดการตั้งค่าของแอปให้ใช้ Geospatial API แล้ว คุณสามารถเรียกใช้ ArEarth_getCameraGeospatialPose เพื่อขอรับ ArGeospatialPose ที่อธิบายการระบุตำแหน่งทางภูมิศาสตร์ของอุปกรณ์สำหรับกล้องในเฟรมล่าสุด ท่าทางนี้ซึ่งจัดการในออบเจ็กต์ ArEarth มีข้อมูลต่อไปนี้

  • ตำแหน่ง แสดงเป็นละติจูดและลองจิจูด
  • ระดับความสูง
  • การวางแนวที่ใกล้เคียงกับทิศทางที่ผู้ใช้หันหน้าไปในระบบพิกัด EUS โดย X+ ชี้ไปทางตะวันออก, Y+ ชี้ขึ้น และ Z+ ชี้ขึ้นทิศใต้

ตรวจสอบสถานะการติดตาม

ค่าภูมิสารสนเทศจะใช้ได้ในขณะที่ ArEarth.ArTrackingState มีค่าเป็น ArTrackingState.AR_TRACKING_STATE_TRACKING และ ArEarth.ArEarthState คือ AR_EARTH_STATE_ENABLED ตรวจสอบว่าได้รวมการเรียก Geospatial API ทั้งหมดในบล็อกการควบคุม 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);
  }
}

หาก ArEarth.ArTrackingState ไม่เปลี่ยนเป็น ArTrackingState.AR_TRACKING_STATE_TRACKING ArEarth.ArTrackingState อาจเป็น AR_TRACKING_STATE_PAUSED หรือ AR_TRACKING_STATE_STOPPED หากเงื่อนไขเหล่านี้ไม่เป็นจริง ให้เลือก ArEarth.ArEarthState ซึ่งแสดงสถานะข้อผิดพลาดอื่นๆ ที่อาจทำให้ออบเจ็กต์ ArEarth ติดตามไม่ได้

ปรับท่าทางเพื่อความแม่นยำ

เมื่ออุปกรณ์ตั้งตรงตามการวางแนวเริ่มต้น มุมระดับความสูงต่ำ (X+) และมุมกลิ้ง (Z+) มักจะแม่นยำเนื่องจากการวางแนวตามธรรมชาติกับการติดตาม AR อย่างไรก็ตาม มุมการเอียง (Y+) อาจแตกต่างกันไปโดยขึ้นอยู่กับความพร้อมใช้งานของข้อมูล VPS และเงื่อนไขชั่วคราวของตำแหน่งนั้นๆ แอปอาจต้องปรับเพื่อความแม่นยำ

ArGeospatialPose_getOrientationYawAccuracy() ระบุค่าประมาณความแม่นยำสำหรับมุมเอียง (Y+) ของมุมเอียงหนึ่งๆ ArGeospatialPose ความแม่นยำในการเอียงของการวางแนวคือตัวเลขที่อธิบายรัศมีเป็นองศาของระดับความเชื่อมั่นของเปอร์เซ็นไทล์ที่ 68 รอบๆ มุมเอียงที่แสดงผลจาก ArGeospatialPose_getEastUpSouthQuaternion() กล่าวคือ มีโอกาส 68% ที่มุมเอียงที่แท้จริงของ ArGeospatialPose จะถูกต้อง

ค่ายิ่งมากหมายถึงความแม่นยำต่ำ ตัวอย่างเช่น หากมุมเอียงโดยประมาณคือ 60 องศาและความแม่นยำในการเอียงอยู่ที่ 10 องศา แสดงว่ามุมเอียงจริงจะมีความเป็นไปได้ 68% ที่มุมการเอียงจริงจะอยู่ระหว่าง 50 ถึง 70 องศา

ขั้นตอนถัดไป