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

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

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

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

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

לצפייה מבוא ל-Geospatial API, מידע נוסף מידע על ה-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.45.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;
}

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

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

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

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

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

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