מגדירים את ההגדרות של האפליקציה כך שתהיה לה אפשרות להשתמש ב-Geospatial API.
דרישות מוקדמות
לפני שממשיכים, חשוב להבין את המושגים הבסיסיים של AR ואת האופן שבו מגדירים סשן ARCore.
כדי להריץ אפליקציה לדוגמה שמדגימה את הפונקציונליות שמתוארת כאן, תוכלו לעיין במדריך למתחילים של ARCore גיאוגרפית מרחבית ל-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.46.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 מעלות. כדי לבדוק אם למיקום מסוים יש כיסוי VPS, משתמשים ב-GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
.
אפשר להשתמש ב-Geospatial API גם באזורים שאין להם כיסוי של VPS. בסביבות חיצוניות שבהן יש מעט הפרעות בתקורה, או ללא הפרעות מלמעלה, ייתכן שה-GPS מספיק כדי ליצור טרנספורמציה ברמת דיוק גבוהה.
המאמרים הבאים
- להשיג את הטרנספורמציה הגאו-מרחבית של מצלמת המכשיר כדי לקבוע את המיקום המדויק של המכשיר של המשתמש בעולם האמיתי.
- בדיקת הזמינות של VPS במיקום נתון של מכשיר.