מדריך למתחילים בנושא גיאו-מרחבי ב-iOS

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

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

מידע נוסף על ה-Geospatial API זמין במאמר מבוא ל-ARCore Geospatial API.

אם זו הפעם הראשונה שאתם משתמשים ב-ARCore, כדאי לכם לעיין במאמר תחילת העבודה.

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

  • Xcode מגרסה 13.0 ואילך
  • Cocoapods 1.4.0 ואילך אם משתמשים ב-Cocoapods
  • מכשיר Apple תואם ל-ARKit עם iOS מגרסה 12.0 ואילך (נדרש יעד פריסה של iOS 12.0 ואילך)

הגדרת האפליקציה לדוגמה

בפרויקט GeospatialExample שנכלל ב-ARCore SDK ל-iOS, מתואר קוד שקורא ל-Geospatial API.

  1. אפשר לשכפל או להוריד מ-GitHub את ARCore SDK ל-iOS כדי לקבל את קוד האפליקציה לדוגמה.

  2. פותחים חלון Terminal או Finder ומנווטים לתיקייה שבה שכפלתם או הורדתם את ה-SDK.

  3. מנווטים אל התיקייה arcore-ios-sdk-master/Examples.

  4. פותחים את התיקייה דוגמאות, בוחרים את התיקייה GeospatialExample ולוחצים על Open.

הגדרת פרויקט ב-Google Cloud

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

עליכם להפעיל את ARCore API בפרויקט Google Cloud. אם אתם צריכים ליצור את הפרויקט, מבצעים את הפעולות הבאות:

  1. יש להיכנס לדף יצירת פרויקט ב-Google Cloud Platform.

  2. מזינים שם פרויקט מתאים ובוחרים לו מיקום.

  3. לוחצים על יצירה.

  4. בסרגל הצד, בוחרים באפשרות APIs & Services ואז באפשרות Library.

  5. מחפשים את ARCore API, בוחרים אותו ולוחצים על הפעלה.

הגדרת ההרשאה

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

  1. בפרויקט Google Cloud, משיגים מפתח API כפי שמתואר במאמר יצירת מפתח API.

  2. מעתיקים את מפתח ה-API כפי שתדביקו אותו בשלב מאוחר יותר.

  3. ב-Xcode, באפליקציה לדוגמה GeospatialExample, פותחים את הקובץ ViewController.m ומחפשים את your-api-key.

  4. מוסיפים את מפתח ה-API ל-GARSession: מדביקים את מפתח ה-API שהעתקתם משלב קודם מעל הטקסט your-api-key (משאירים את המירכאות), כפי שמתואר בהמשך.

    self.garSession = [GARSession sessionWithAPIKey:@"your-api-key"
                                   bundleIdentifier:nil
                                              error:&error];
    

הגדרת ה-SDK של ARCore

האפליקציה GeospatialExample כוללת את ה-Podfile שהוגדר מראש עם ה-SDK של ARCore וגרסאות iOS הנדרשות. כדי להתקין את יחסי התלות האלה, פותחים חלון Terminal ומריצים את pod install מהתיקייה שבה קיים פרויקט Xcode.

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

יצירה והפעלה של האפליקציה לדוגמה

  1. ב-Xcode, בוחרים את קובץ סביבת העבודה GeospatialExample ולוחצים על Signing & Capabilities (חתימה ויכולות).

  2. מסמנים את התיבה ניהול אוטומטי של חתימה.

  3. מזינים את שם הצוות בשדה צוות.

    אפשר להשתמש ב-Bundle Identifier (מזהה החבילה) שמוגדר כברירת מחדל כדי להריץ את האפליקציה מ-Xcode, אבל צריך לשנות אותו אם משתמשים ב-GeospatialExample כ-Stub של האפליקציה בסביבת הייצור.

  4. כדי להפעיל את האפליקציה לדוגמה צריך לחבר את המכשיר.

  5. יוצרים ומפעילים את האפליקציה GeospatialExample מהקובץ .xcworkspace כדי להפעיל אותה במכשיר.

    כדי להימנע משגיאות build, צריך לוודא שהיצירה מתבצעת מקובץ .xcworkspace ולא מקובץ .xcodeproj.

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

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

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

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

כך מתאימים את ערכי הסף:

  1. ב-Xcode, פותחים את הקובץ ViewController.m ועוברים לקטע הבא:

    // Thresholds for 'good enough' accuracy. These can be tuned for the
    // application. We use both 'low'
    // and 'high' values here to avoid flickering state changes.
    static const CLLocationAccuracy kHorizontalAccuracyLowThreshold = 10;
    static const CLLocationAccuracy kHorizontalAccuracyHighThreshold = 20;
    static const CLLocationDirectionAccuracy kHeadingAccuracyLowThreshold = 15;
    static const CLLocationDirectionAccuracy kHeadingAccuracyHighThreshold = 25;
    
  2. אפשר לשנות את הערכים האלה לפי הצורך. ככל שהערך גבוה יותר, כך רמת הדיוק נמוכה יותר.

    הקטנת הדיוק מאפשרת לאפליקציה קו רוחב גדול יותר במיקום של עוגן. מידע נוסף זמין במאמר התאמה לדיוק הטרנספורמציות.

השלבים הבאים

מומלץ לקרוא את המדריך למפתחים בנושא גיאו-מרחבי ל-iOS ולהתחיל לפתח את ה-API של Geospatial.