توفر واجهات برمجة التطبيقات Geometry API هندسة التضاريس أو المباني أو غيرها من الهياكل في أحد المشاهد. يمكن استخدام الشكل الهندسي لإغراق محتوى الواقع المعزّز أو عرضه أو وضعه عبر واجهات برمجة تطبيقات اختبار النتائج. يتم الحصول على بيانات "هندسة التجوّل الافتراضي" من خلال صور "التجوّل الافتراضي من Google".
تجربة النموذج
يوضّح نموذج تطبيق geospatial_java كيفية الحصول على أشكال المناظر الحضرية وعرضها.
عملية إعداد واجهة برمجة التطبيقات Geospatial API
لاستخدام Streetscape Geometry، سيلزمك إعداد Geospatial API في مشروعك. اتّبِع التعليمات حول تفعيل واجهة برمجة التطبيقات Geospatial API لإعداد Geospatial API.
تفعيل هندسة التجوّل الافتراضي
تحصل واجهة برمجة التطبيقات Geospatial API على بيانات Streetscape Geometry عند ضبط 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 } )
احصل على هندسة التجوّل الافتراضي في جلسة ARCore
استخدِمSession.getAllTrackables()
واستخدِم StreetscapeGeometry.class
لفلترة النتائج.
Java
session.getAllTrackables(StreetscapeGeometry.class);
Kotlin
session.getAllTrackables(StreetscapeGeometry::class.java)
فهم StreetscapeGeometry
يحتوي StreetscapeGeometry
على معلومات حول مبنى:
-
StreetscapeGeometry.getType()
يحدد StreetscapeGeometry كتضاريس أو مبنى. -
StreetscapeGeometry.getMesh()
احصل على مضلّعMesh
يقابل هذه التضاريس أو المبنى. -
StreetscapeGeometry.getMeshPose()
يصف أصل الهندسة. يجب تحويل جميع النقاط فيMesh
من خلالStreetscapeGeometry.getMeshPose()
. -
StreetscapeGeometry.getQuality()
يوفّر جودة بيانات الشبكة المتداخلة. يمكن الاطّلاع على مستويات التفاصيل في معيار CityGML 2.0.
مبنى LOD 1
يتألّف StreetscapeGeometry.Quality.BUILDING_LOD_1
من آثار أقدام مبانٍ تنبثق باتجاه قمة مستوية. وقد تكون ارتفاعات المباني غير دقيقة.
مبنى LOD 2
سيكون لـ StreetscapeGeometry.Quality.BUILDING_LOD_2
أشكال هندسية بدقة أعلى. وتتطابق الجدران والأسطح المتداخلة مع شكل المبنى بشكل أكبر. وقد تستمر الميزات الأصغر حجمًا، مثل المداخن أو فتحات الأسطح، خارج الشبكة.
فهم Mesh
Mesh
عبارة عن شبكة مضلّعة تمثّل إعادة إنشاء سطح هندسة "التجوّل الافتراضي".
يحتوي كل Mesh
على مخزن رأسي ومخزن مؤقت للفهرس:
Mesh.getVertexListSize()
لاسترداد عدد رؤوس هذه الشبكة المتداخلة.Mesh.getVertexList()
الحصول على المواضع المتسلسلة للرؤوس المتداخلة، في الإحداثيات بالنسبة إلىStreetscapeGeometry.getMeshPose()
Mesh.getIndexListSize()
لاسترداد عدد الفهارس في هذه الشبكة المتداخلة.Mesh.getIndexList()
احصل على فهارس الرؤوس التي تشكّل وجهًا.
إرفاق محتوى الواقع المعزّز بـ StreetscapeGeometry
هناك طريقتان لإرفاق محتوى الواقع المعزّز بميزة Streetscape Geometry:
- فعِّل العمق الجغرافي المكاني واستخدِم اختبار العمق. هذه هي الطريقة الموصى بها والأسهل.
- استخدِم
Trackable.createAnchor()
لإنشاء ارتساء في وضعية معيّنة مرفقة بـStreetscapeGeometry
. سيكتسب هذا الارتساء حالة التتبّع من العنصر الرئيسيStreetscapeGeometry
.
إجراء اختبار مطابقة مع StreetscapeGeometry
يمكن استخدام Frame.hitTest()
لإجراء اختبار نتيجة وفقًا لهندسة "التجوّل الافتراضي". في حالة العثور على تقاطعات، يحتوي 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) } }
تفعيل "التفاصيل المكانية الجغرافية"
تجمع ميزة العمق الجغرافي المكاني بين هندسة المشهد في الشارع ومعلومات أجهزة الاستشعار المحلية لتحسين بيانات العمق. عند تفعيل ميزة "العمق الجغرافي المكاني"، يتم تعديل عمق الصورة الناتجة وصور العمق الأوّلي لتضمين شكل هندسي ممسوح ضوئيًا للمشهد في الشارع بالإضافة إلى العمق المرصود محليًا. وقد يؤدي ذلك إلى تحسين دقة الوضعيات باستخدام ميزة "العمق".