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

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

דרישות מוקדמות

לפני שממשיכים, חשוב לוודא שאתם מבינים את המושגים הבסיסיים של AR ואת האופן שבו מגדירים סשן של ARCore.

אם אתם רוצים להריץ אפליקציה לדוגמה שמדגימה את הפונקציונליות שמתוארת כאן, עיינו במדריך למתחילים של ARCore Geospatial ל-iOS.

לקבלת מידע נוסף על ה-API Geospatial, עיינו במאמר מבוא ל-Geospatial API.

אם רק התחלתם לפתח עם ARCore, קראו את המאמר תחילת העבודה כדי לקבל מידע על דרישות התוכנה והחומרה, דרישות מוקדמות ומידע אחר שספציפי לפלטפורמות שבהן אתם משתמשים.

הפעלת ARCore API

לפני השימוש במערכת המיקום החזותי (VPS) באפליקציה, צריך להפעיל את ARCore API בפרויקט חדש או קיים ב-Google Cloud. השירות הזה אחראי לאירוח, לאחסון ולזיהוי של עוגנים גיאו-מרחביים.

עדיף להשתמש בהרשאה ללא מפתח, אבל יש גם תמיכה בהרשאה של מפתח API.

צריך להוסיף את הספריות הנדרשות לאפליקציה

אחרי שנתתם לאפליקציה הרשאה לקרוא ל-ARCore API, עליכם להוסיף ספריות כדי להפעיל תכונות גיאו-מרחביות באפליקציה.

צריך לעדכן את Podfile של האפליקציה כך שיכלול את ARCore SDK וגרסאות נתמכות של iOS. לשם כך:

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

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

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

  2. פותחים חלון Terminal ומריצים את pod install מהתיקייה שבה קיים פרויקט ה-Xcode.

    הפעולה הזו יוצרת קובץ .xcworkspace שמשמש ליצירה ולהפעלה של האפליקציה.

ודאו שסביבת הפיתוח עומדת בדרישות של ARCore SDK, כפי שמתואר במדריך למתחילים.

הפעלת יכולות גיאו-מרחביות בהגדרת הסשן

בדיקת תאימות המכשיר

לא כל המכשירים שתומכים ב-ARCore תומכים גם ב-Geospatial API, כפי שמתואר quickstart.

משתמשים ב-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;
}

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

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

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

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

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

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