استخدام المباني والتضاريس من حولك على نظام التشغيل iOS

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

تجربة العيّنة

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

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

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

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

تحصل واجهة برمجة التطبيقات Geospatial API على بيانات هندسة المشهد في الشارع عند ضبط GARGeospatialMode على GARGeospatialModeEnabled وGARStreetscapeGeometryMode على GARStreetscapeGeometryModeEnabled.

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

الحصول على هندسة المشهد في الشوارع في جلسة ARCore

استخدِم GARFrame.streetscapeGeometries للحصول على جميع عناصر GARStreetscapeGeometry.

فهم GARStreetscapeGeometry

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

مستوى التفاصيل 1 للمبنى

يتكوّن GARStreetscapeGeometryQualityBuildingLOD_1 من مساحات المباني التي تمّت إزالتها من السطح المستوي. قد تكون ارتفاعات المباني غير دقيقة.

مستوى التفاصيل 2 للمبنى

سيكون لدى GARStreetscapeGeometryQualityBuildingLOD_2 شكل هندسي بدقة أعلى. ستتطابق الجدران والأسقف الشبكية بشكلٍ أكبر مع شكل المبنى. قد تبقى بعض العناصر الأصغر حجمًا، مثل المداخن أو فتحات التهوية على السطح، خارج الشبكة.

فهم GARMesh

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

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

استخدِم GARSesssion.createAnchorOnStreetscapeGeometry:transform:error: لإنشاء نقطة تثبيت في وضع معيّن بالقرب من GARStreetscapeGeometry.meshTransform. ستكتسب هذه العلامة الفارقة حالة التتبّع من العنصر الرئيسي GARStreetscapeGeometry.

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

يمكن استخدام GARSession.raycastStreetscapeGeometry:direction:error: لإجراء اختبار التصادم مع هندسة المشهد في الشارع. في حال العثور على تقاطعات، يحتوي GARStreetscapeGeometryRaycastResult على معلومات عن وضع الجسم في موقع الاصطدام بالإضافة إلى إشارة إلى GARStreetscapeGeometry الذي تم اصطدامه. يمكن تمرير هندسة المشهد في الشارع إلى 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];