از ساختمان ها و زمین های اطراف خود در iOS استفاده کنید

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

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

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

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

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

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

Geospatial API زمانی که GARGeospatialMode روی GARGeospatialModeEnabled و GARStreetscapeGeometryMode روی GARStreetscapeGeometryModeEnabled تنظیم شده باشد، داده های Streetscape Geometry را به دست می آورد.

GARSessionConfiguration *configuration = [[GARSessionConfiguration alloc] init];
configuration.geospatialMode = GARGeospatialModeEnabled;
configuration.streetscapeGeometryMode = GARStreetscapeGeometryModeEnabled;
[garSession setConfiguration:configuration error:&error];

هندسه Streetscape را در جلسه ARCore بدست آورید

از GARFrame.streetscapeGeometries برای به دست آوردن تمام اشیاء GARStreetscapeGeometry استفاده کنید.

GARStreetscapeGeometry را درک کنید

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

LOD ساختمان 1

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

ساختمان LOD 2

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

GARMesh را درک کنید

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

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

از GARSesssion.createAnchorOnStreetscapeGeometry:transform:error: برای ایجاد یک لنگر در یک حالت مشخص در نزدیکی GARStreetscapeGeometry.meshTransform استفاده کنید. این لنگر وضعیت ردیابی خود را از GARStreetscapeGeometry والد به ارث می برد.

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

GARSession.raycastStreetscapeGeometry:direction:error: می تواند برای تست ضربه در برابر Streetscape Geometry استفاده شود. اگر تقاطع‌هایی پیدا شد، GARStreetscapeGeometryRaycastResult حاوی اطلاعات پوزیشن در مورد مکان ضربه و همچنین ارجاعی به GARStreetscapeGeometry است. این Streetscape Geometry را می توان به GARSesssion.createAnchorOnStreetscapeGeometry:transform:error: کرد تا یک لنگر متصل به آن ایجاد کند.

NSArray<GARStreetscapeGeometryRaycastResult *> *results =
    [session raycastStreetscapeGeometry:arRaycastQuery.origin
                              direction:arRaycastQuery.direction
                                  error:&error];
[session createAnchorOnStreetscapeGeometry:results[0].streetscapeGeometry
                                 transform:results[0].worldTransform
                                     error:&error];