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

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

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

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

إعداد واجهة برمجة التطبيقات الجغرافية المكانية

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

تفعيل هندسة صورة الشارع

تحصل واجهة برمجة التطبيقات الجغرافية المكانية على بيانات "هندسة التجوّل الافتراضي" عند ضبط 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
  }
)

احصل على هندسة Streetscape Geometry في جلسة 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() لإجراء الاختبار في ضوء Streetscape Geometry. في حال العثور على تقاطعات، تحتوي السمة 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)
  }
}

تفعيل العمق الجغرافي المكاني

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