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

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

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

يوضح تطبيق GeospatialExample كيفية الحصول على هندسة صور الشارع وعرضها.

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

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

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

تحصل واجهة برمجة التطبيقات الجغرافية المكانية على بيانات "هندسة التجوّل الافتراضي" عند ضبط GARGeospatialMode على GARGeospatialModeEnabled وضبط GARStreetscapeGeometryMode على GARStreetscapeGeometryModeEnabled.

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

احصل على هندسة Streetscape Geometry في جلسة ARCore

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

فهم GARStreetscapeGeometry

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

مبنى LOD 1

تتألف GARStreetscapeGeometryQualityBuildingLOD_1 من آثار أقدام المباني المنبثقة إلى أعلى مسطّحة. قد تكون الارتفاعات غير دقيقة في المباني.

مبنى LOD 2

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

فهم GARMesh

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

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

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

إجراء اختبار نتيجة مقارنةً بـ GARStreetscapeGeometry

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