استخدام المباني والتضاريس من حولك على حزمة تطوير البرامج (SDK) لنظام التشغيل Android (Kotlin/Java)

توفر واجهات برمجة التطبيقات Geometry API هندسة التضاريس أو المباني أو غيرها من الهياكل في أحد المشاهد. يمكن استخدام الشكل الهندسي لإغراق محتوى الواقع المعزّز أو عرضه أو وضعه عبر واجهات برمجة تطبيقات اختبار النتائج. يتم الحصول على بيانات "هندسة التجوّل الافتراضي" من خلال صور "التجوّل الافتراضي من Google".

تجربة النموذج

يوضّح نموذج تطبيق geospatial_java كيفية الحصول على أشكال المناظر الحضرية وعرضها.

عملية إعداد واجهة برمجة التطبيقات Geospatial API

لاستخدام Streetscape Geometry، سيلزمك إعداد Geospatial API في مشروعك. اتّبِع التعليمات حول تفعيل واجهة برمجة التطبيقات Geospatial API لإعداد Geospatial API.

تفعيل هندسة التجوّل الافتراضي

تحصل واجهة برمجة التطبيقات Geospatial API على بيانات Streetscape Geometry عند ضبط GeospatialMode على GeospatialMode.ENABLED وضبط StreetscapeGeometryMode على StreetscapeGeometryMode.ENABLED.

Java

Config config = session.getConfig();
// Streetscape Geometry requires the Geospatial API to be enabled.
config.setGeospatialMode(Config.GeospatialMode.ENABLED);
// Enable Streetscape Geometry.
config.setStreetscapeGeometryMode(Config.StreetscapeGeometryMode.ENABLED);
session.configure(config);

Kotlin

session.configure(
  session.config.apply {
    // Streetscape Geometry requires the Geospatial API to be enabled.
    geospatialMode = Config.GeospatialMode.ENABLED
    // Enable Streetscape Geometry.
    streetscapeGeometryMode = Config.StreetscapeGeometryMode.ENABLED
  }
)

احصل على هندسة التجوّل الافتراضي في جلسة ARCore

استخدِم Session.getAllTrackables() واستخدِم StreetscapeGeometry.class لفلترة النتائج.

Java

session.getAllTrackables(StreetscapeGeometry.class);

Kotlin

session.getAllTrackables(StreetscapeGeometry::class.java)

فهم StreetscapeGeometry

يحتوي StreetscapeGeometry على معلومات حول مبنى:

مبنى LOD 1

يتألّف StreetscapeGeometry.Quality.BUILDING_LOD_1 من آثار أقدام مبانٍ تنبثق باتجاه قمة مستوية. وقد تكون ارتفاعات المباني غير دقيقة.

مبنى LOD 2

سيكون لـ StreetscapeGeometry.Quality.BUILDING_LOD_2 أشكال هندسية بدقة أعلى. وتتطابق الجدران والأسطح المتداخلة مع شكل المبنى بشكل أكبر. وقد تستمر الميزات الأصغر حجمًا، مثل المداخن أو فتحات الأسطح، خارج الشبكة.

فهم Mesh

Mesh عبارة عن شبكة مضلّعة تمثّل إعادة إنشاء سطح هندسة "التجوّل الافتراضي". يحتوي كل Mesh على مخزن رأسي ومخزن مؤقت للفهرس:

إرفاق محتوى الواقع المعزّز بـ StreetscapeGeometry

هناك طريقتان لإرفاق محتوى الواقع المعزّز بميزة Streetscape Geometry:

إجراء اختبار مطابقة مع StreetscapeGeometry

يمكن استخدام Frame.hitTest() لإجراء اختبار نتيجة وفقًا لهندسة "التجوّل الافتراضي". في حالة العثور على تقاطعات، يحتوي HitResult على معلومات حول موقع النتيجة بالإضافة إلى مرجع إلى StreetscapeGeometry الذي تم الوصول إليه. يمكن تمرير هندسة "التجوّل الافتراضي" هذه إلى Trackable.createAnchor() لإنشاء إعلان ارتساء مرفق به.

Java

for (HitResult hit : frame.hitTest(singleTapEvent)) {
  if (hit.getTrackable() instanceof StreetscapeGeometry) {
    Pose hitPose = hit.getHitPose();
    hit.getTrackable().createAnchor(hitPose);
  }
}

Kotlin

for (hit in frame.hitTest(singleTapEvent)) {
  if (hit.trackable is StreetscapeGeometry) {
    val hitPose = hit.hitPose
    hit.trackable.createAnchor(hitPose)
  }
}

تفعيل "التفاصيل المكانية الجغرافية"

تجمع ميزة العمق الجغرافي المكاني بين هندسة المشهد في الشارع ومعلومات أجهزة الاستشعار المحلية لتحسين بيانات العمق. عند تفعيل ميزة "العمق الجغرافي المكاني"، يتم تعديل عمق الصورة الناتجة وصور العمق الأوّلي لتضمين شكل هندسي ممسوح ضوئيًا للمشهد في الشارع بالإضافة إلى العمق المرصود محليًا. وقد يؤدي ذلك إلى تحسين دقة الوضعيات باستخدام ميزة "العمق".