از ساختمان‌ها و زمین‌های اطراف خود در Android SDK (Kotlin/Java) استفاده کنید

API های Streetscape Geometry هندسه زمین، ساختمان ها یا سایر سازه ها را در یک صحنه ارائه می دهند. هندسه را می توان برای انسداد، رندر یا قرار دادن محتوای واقعیت افزوده از طریق APIهای تست ضربه استفاده کرد. داده‌های Streetscape Geometry از طریق تصاویر نمای خیابان Google به دست می‌آیند.

نمونه را امتحان کنید

برنامه نمونه geospatial_java نحوه بدست آوردن و رندر کردن Streetscape Geometries را نشان می دهد.

Geospatial API را تنظیم کنید

برای استفاده از Streetscape Geometry، باید Geospatial API را در پروژه خود راه اندازی کنید. دستورالعمل‌های فعال کردن Geospatial API برای راه‌اندازی Geospatial API را دنبال کنید.

هندسه Streetscape را فعال کنید

Geospatial API زمانی که GeospatialMode روی GeospatialMode.ENABLED و StreetscapeGeometryMode روی StreetscapeGeometryMode.ENABLED تنظیم شده است، داده های Streetscape Geometry را به دست می آورد.

جاوا

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);

کاتلین

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 را در جلسه ARCore بدست آورید

از Session.getAllTrackables() و از StreetscapeGeometry.class برای فیلتر کردن نتایج استفاده کنید.

جاوا

session.getAllTrackables(StreetscapeGeometry.class);

کاتلین

session.getAllTrackables(StreetscapeGeometry::class.java)

StreetscapeGeometry درک کنید

StreetscapeGeometry حاوی اطلاعاتی در مورد یک ساختمان است:

LOD ساختمان 1

StreetscapeGeometry.Quality.BUILDING_LOD_1 شامل ردپاهای ساختمانی است که به سمت بالا به سمت بالا صاف می شوند. ارتفاع ساختمان ممکن است نادرست باشد.

ساختمان LOD 2

StreetscapeGeometry.Quality.BUILDING_LOD_2 هندسه وفاداری بالاتری خواهد داشت. دیوارها و سقف های مشبک بیشتر با شکل ساختمان مطابقت دارند. ویژگی‌های کوچک‌تر مانند دودکش‌ها یا دریچه‌های سقف ممکن است همچنان در خارج از مش قرار بگیرند.

Mesh درک کنید

Mesh یک شبکه چند ضلعی است که نمایانگر بازسازی سطحی از هندسه Streetscape است. هر Mesh شامل یک بافر رأس و بافر شاخص است:

محتوای AR را به StreetscapeGeometry وصل کنید

دو راه برای پیوست کردن محتوای AR به Streetscape Geometry وجود دارد:

یک تست آماری در برابر StreetscapeGeometry انجام دهید

Frame.hitTest() می توان برای تست ضربه در برابر Streetscape Geometry استفاده کرد. اگر تقاطع‌هایی پیدا شد، HitResult حاوی اطلاعات پوزیشن درباره مکان ضربه و همچنین ارجاعی به StreetscapeGeometry است. این Streetscape Geometry را می توان به Trackable.createAnchor() منتقل کرد تا یک لنگر متصل به آن ایجاد کند.

جاوا

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

کاتلین

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

عمق مکانی را فعال کنید

Geospatial Depth هندسه Streetscape را با ورودی حسگر محلی ترکیب می‌کند تا داده‌های عمق را افزایش دهد. وقتی Geospatial Depth فعال است، عمق خروجی و تصاویر عمق خام اصلاح می‌شوند تا علاوه بر عمق مشاهده‌شده به‌صورت محلی، هندسه نمای خیابان شطرنجی‌شده را نیز شامل شود. این ممکن است دقت ژست‌ها را با استفاده از Depth بهبود بخشد.