الحصول على الوضع الجيوفضائي لكاميرا الجهاز

بعد ضبط إعدادات تطبيقك لاستخدام واجهة برمجة التطبيقات Geospatial API، يمكنك طلب ArEarth_getCameraGeospatialPose للحصول على ArGeospatialPose يصف الموقع الجغرافي المكاني للكاميرا في أحدث إطار. يحتوي هذا الوضع، الذي تتم إدارته في كائن ArEarth، على المعلومات التالية:

  • الموقع الجغرافي، معبرًا عنه بخط العرض وخط الطول
  • الارتفاع
  • اتجاه تقريبي الاتجاه الذي يواجهه المستخدم في نظام الإحداثيات الأوروبي مع اتجاه 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) دقيقة بسبب التوافق الطبيعي مع تتبُّع الواقع المعزّز. ومع ذلك، يمكن أن تختلف زوايا الانحراف (Y+ ) بناءً على مدى توفُّر بيانات VPS والظروف الزمنية في الموقع الجغرافي. قد يحتاج تطبيقك إلى إجراء تعديلات للتأكّد من دقته.

توفّر السمة ArGeospatialPose_getOrientationYawAccuracy() تقديرًا بدقة لزوايا الانحراف (+ص) بالنسبة إلى ArGeospatialPose معيّنة. دقة الانحراف الاتجاهي هي رقم يصف نصف القطر بالدرجات لمستوى الثقة لدى الشريحة المئوية 68 حول زوايا الانحراف الناتجة من ArGeospatialPose_getEastUpSouthQuaternion(). بعبارة أخرى، هناك احتمال بنسبة 68% أن تكون زاوية الانحراف الحقيقية لـ ArGeospatialPose دقيقة.

تشير القيم الأكبر إلى انخفاض الدقة. على سبيل المثال، إذا كانت زاوية الانحراف المقدرة هي 60 درجة ودقة الانحراف 10 درجات، فإن هناك احتمالاً يبلغ 68% أن زاوية الانحراف الحقيقية تتراوح بين 50 و70 درجة.

الخطوات التالية