מגדירים את ההגדרות של האפליקציה כך שתהיה לה אפשרות להשתמש ב-Geospatial API.
דרישות מוקדמות
לפני שממשיכים, חשוב להבין את המושגים הבסיסיים של AR ואת האופן שבו מגדירים סשן ARCore.
כדי להריץ אפליקציית דוגמה שממחישה את הפונקציונליות שמתוארת כאן, אפשר לעיין במאמר תחילת העבודה עם ARCore Geospatial ל-iOS.
למידע נוסף על Geospatial API, ראו מבוא ל-Geospatial API.
אם אתם מתחילים לפתח עם ARCore, כדאי לעיין במאמר תחילת העבודה כדי לקבל מידע על דרישות התוכנה והחומרה, על דרישות מוקדמות ועל מידע נוסף ספציפי לפלטפורמות שבהן אתם משתמשים.
הפעלת ה-API של ARCore
לפני שמשתמשים במערכת למיקום חזותי (VPS) באפליקציה, צריך להפעיל את ARCore API בפרויקט חדש או קיים ב-Google Cloud. השירות הזה אחראי לאירוח, לאחסון ולפתרון של עוגנים גיאו-מרחביים.
מומלץ להשתמש בהרשאה ללא מפתח, אבל יש תמיכה גם בהרשאה באמצעות מפתח API.
הוספת הספריות הנדרשות לאפליקציה
אחרי שמאשרים לאפליקציה לבצע קריאה ל-ARCore API, צריך להוסיף ספריות כדי להפעיל תכונות גיאו-מרחביות באפליקציה.
מעדכנים אתPodfile
של האפליקציה כך שיכלול את ARCore SDK ואת הגרסאות הנתמכות של iOS. לשם כך:
מוסיפים את
platform
ו-pod
הבאים ל-Podfile
של הפרויקט:platform :ios, '11.0' pod 'ARCore/Geospatial', '~> 1.48.0'
אפשר גם לציין את הערך
platform :ios, '10.0'
אם רוצים לתמוך ב-iOS 10, אבל חשוב לזכור ש-Geospatial API יפעל בסביבת זמן הריצה רק ב-iOS מגרסה 11 ואילך.פותחים חלון Terminal ומפעילים את
pod install
מהתיקייה שבה נמצא פרויקט Xcode.הפעולה הזו יוצרת קובץ
.xcworkspace
שמשמש ליצירת האפליקציה ולהרצתה.
חשוב לוודא שסביבת הפיתוח עומדת בדרישות של ARCore SDK, כפי שמתואר במאמר תחילת העבודה.
הפעלת יכולות גיאו-מרחביות בהגדרת הסשן
בדיקת התאימות של המכשיר
לא כל המכשירים שתומכים ב-ARCore תומכים גם ב-Geospatial API, כפי שמתואר במדריך למתחילים.
משתמשים ב-GARSession.isGeospatialModeSupported:
כדי לבדוק את המכשיר, כמו בדוגמה הבאה:
if (![self.garSession isGeospatialModeSupported:GARGeospatialModeEnabled]) {
[self setErrorStatus:@"GARGeospatialModeEnabled is not supported on this device."];
return;
}
GARSessionConfiguration *configuration = [[GARSessionConfiguration alloc] init];
configuration.geospatialMode = GARGeospatialModeEnabled;
[self.garSession setConfiguration:configuration error:&error];
if (error) {
[self setErrorStatus:[NSString stringWithFormat:@"Failed to configure GARSession: %d",
(int)error.code]];
return;
}
בקשת הרשאות מיקום מהמשתמש בזמן הריצה
האפליקציה צריכה לבקש את הרשאות המיקום הבאות בזמן הריצה, לפני הגדרת הסשן:
kCLAuthorizationStatusAuthorizedWhenInUse
CLAccuracyAuthorizationFullAccuracy
(רלוונטי לגרסאות iOS מגרסה 14 ואילך)
בדיקת הזמינות של נתונים גיאו-מרחביים במיקום הנוכחי של המכשיר
מכיוון ש-Geospatial API משתמש בשילוב של VPS ו-GPS כדי לקבוע טרנספורמציה גיאוספטית, אפשר להשתמש ב-API כל עוד המכשיר יכול לקבוע את המיקום שלו. באזורים שבהם רמת הדיוק של ה-GPS נמוכה, כמו מקומות סגורים וסביבות עירוניות צפופות, ה-API יתבסס על כיסוי VPS כדי ליצור טרנספורמציות ברמת דיוק גבוהה. בתנאים רגילים, מערכת VPS יכולה לספק דיוק מיקום של כ-5 מטרים ודיוק סיבוב של 5 מעלות. אפשר להשתמש ב-GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
כדי לבדוק אם יש כיסוי של VPS במיקום נתון.
אפשר להשתמש ב-Geospatial API גם באזורים ללא כיסוי של VPS. בסביבות חוץ עם מעט או בלי חסימות מעל הראש, יכול להיות ש-GPS יספיק כדי ליצור טרנספורמציה עם דיוק גבוה.
המאמרים הבאים
- לקבל את הטרנספורמציה הגיאוגרפית של מצלמת המכשיר כדי לקבוע את המיקום המדויק של המכשיר של המשתמש בעולם האמיתי.
- בדיקת הזמינות של VPS במיקום נתון של מכשיר.