รับท่า 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 องศา

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