שימוש במבנים ובפני השטח בסביבתך ב-iOS

ממשקי ה-API לגיאומטריה של Streetscape מספקים את הגיאומטריה של פני השטח, בניינים או מבנים אחרים בסצנה. ניתן להשתמש בגאומטריה להסתרה, לעיבוד או למיקום של תוכן AR באמצעות ממשקי API לבדיקת תקינות. נתונים גיאומטריים של Streetscape מתקבלים מתמונות Google Street View.

רוצה לנסות את הדוגמה?

האפליקציה GeospatialExample מדגימה איך להשיג ולעבד אובייקטים גיאומטריים ב-Streetscape.

הגדרת ה-API הגיאו-מרחבי

כדי להשתמש בגיאומטריה של Streetscape, עליכם להגדיר את ה-Geospatial API בפרויקט שלכם. מבצעים את ההוראות להפעלת ה-API הגאו-מרחבי כדי להגדיר את ה-Geospatial API.

הפעלת גיאומטריית Streetscape

ה-API הגיאו-מרחבי מקבל נתונים גיאומטריים של Streetscape כאשר הערך של GARGeospatialMode הוא GARGeospatialModeEnabled ו-GARStreetscapeGeometryMode מוגדר ל-GARStreetscapeGeometryModeEnabled.

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. אם יימצאו צמתים, GARStreetscapeGeometryRaycastResult מכיל את פרטי התנוחה לגבי מיקום ההתאמה וגם הפניה ל-GARStreetscapeGeometry שהתקבל. ניתן להעביר גיאומטריית Streetscape זו אל 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];