डिवाइस के कैमरे की जियोस्पेशियल पोज़ पाएं

Geospatial API का इस्तेमाल करने के लिए, अपने ऐप्लिकेशन की सेटिंग कॉन्फ़िगर की जा सकती है. इसके बाद, ArEarth_getCameraGeospatialPose को कॉल करके ArGeospatialPose किया जा सकता है. इस कॉल से, नए फ़्रेम में कैमरे के लिए डिवाइस की जियोस्पेशियल पोज़िशनिंग के बारे में जानकारी मिलेगी. इस पोज़ को ArEarth ऑब्जेक्ट में मैनेज किया जाता है. इसमें यह जानकारी शामिल होती है:

  • जगह, अक्षांश और देशांतर में दिखाई जाती है
  • ऊंचाई
  • ईयूएस कोऑर्डिनेट सिस्टम में उपयोगकर्ता की तरफ़ का ओरिएंटेशन

ट्रैकिंग स्टेटस की जांच करना

जियोस्पेशल वैल्यू सिर्फ़ तब मान्य होती हैं, जब 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+) कोण सटीक होते हैं. ऐसा एआर ट्रैकिंग के साथ नैचुरल अलाइनमेंट की वजह से होता है. हालांकि, VPS डेटा की उपलब्धता और किसी जगह के समय की स्थितियों के आधार पर यॉ (Y+) के कोण अलग-अलग हो सकते हैं. सटीक जानकारी पाने के लिए, आपके ऐप्लिकेशन में बदलाव करने पड़ सकते हैं.

ArGeospatialPose_getOrientationYawAccuracy(), कुछ ArGeospatialPose के लिए यॉ (Y+) कोणों का सटीक अनुमान देता है. स्क्रीन की ओरिएंटेशन यॉ की सही जानकारी, ArGeospatialPose_getEastUpSouthQuaternion() से मिले यॉर ऐंगल के आस-पास के 68वें पर्सेंटाइल कॉन्फ़िडेंस लेवल के दायरे को दिखाती है. यह संख्या, डिग्री के हिसाब से होती है. दूसरे शब्दों में, इस बात की 68% संभावना है कि ArGeospatialPose का वास्तविक यॉ एंगल सटीक हो.

बड़ी वैल्यू का मतलब है कि ज़्यादा सटीक जानकारी नहीं मिलती है. उदाहरण के लिए, अगर यॉ का ऐंगल 60 डिग्री और यॉ की सही जगह 10 डिग्री है, तो इस बात की 68% संभावना होगी कि यॉर का सही ऐंगल 50 से 70 डिग्री के बीच होगा.

आगे क्या करना है