הפעלת ה-API הגיאו-מרחבי באפליקציה ל-iOS

מגדירים את ההגדרות של האפליקציה כך שתהיה לה אפשרות להשתמש ב-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. לשם כך:

  1. מוסיפים את platform ו-pod הבאים ל-Podfile של הפרויקט:

    platform :ios, '11.0'
    pod 'ARCore/Geospatial', '~> 1.46.0'
    

    אפשר גם לציין platform :ios, '10.0', אם רוצים לתמוך ב-iOS 10, אבל חשוב לשים לב ש-Geospatial API יפעל רק בזמן ריצה ב-iOS מגרסה 11 ומעלה.

  2. פותחים חלון 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;
}

בקשת הרשאות מיקום מהמשתמש בזמן ריצה

האפליקציה צריכה לבקש את הרשאות המיקום הבאות בזמן הריצה, לפני הגדרת הסשן:

בדיקת הזמינות של נתונים גיאו-מרחביים במיקום הנוכחי של המכשיר

מכיוון ש-Geospatial API משתמש בשילוב של VPS ו-GPS כדי לקבוע טרנספורמציה גיאוספטית, אפשר להשתמש ב-API כל עוד המכשיר יכול לקבוע את המיקום שלו. באזורים עם רמת דיוק נמוכה של GPS, כמו מקומות סגורים וסביבות עירוניות צפופות, ה-API יתבסס על כיסוי VPS כדי ליצור טרנספורמציות ברמת דיוק גבוהה. בתנאים רגילים, מערכת VPS יכולה לספק דיוק מיקום של כ-5 מטרים ודיוק סיבוב של 5 מעלות. כדי לבדוק אם למיקום מסוים יש כיסוי VPS, משתמשים ב-GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:.

אפשר להשתמש ב-Geospatial API גם באזורים שאין להם כיסוי של VPS. בסביבות חיצוניות שבהן יש מעט הפרעות בתקורה, או ללא הפרעות מלמעלה, ייתכן שה-GPS מספיק כדי ליצור טרנספורמציה ברמת דיוק גבוהה.

המאמרים הבאים