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

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

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

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

הפעלת ARCore API

כדי לבדוק את הזמינות של VPS צריך להפעיל את ARCore API באפליקציה.

בדיקת הזמינות של VPS באפליקציה

ניתן להשתמש ב-Geospatial API בכל מקום שבו המכשיר יכול לקבוע את המיקום שלו. אם חוויית ה-AR שלכם תלויה בכיסוי של VPS, אתם יכולים להשתמש ב-GARSession#checkVPSAvailabilityAtCoordinate:completionHandler: כדי לקבל GARVPSAvailabilityFuture, משימה אסינכרונית שבודקת את הזמינות של שרתי ה-VPS במיקום אופקי נתון. אחרי שמקבלים את GARVPSAvailabilityFuture, אפשר לקבל את התוצאה באמצעות תשאול או באמצעות התקשרות חזרה.

סקרו את התוצאה

יש להשתמש ב-GARFuture.state כדי למצוא את המצב של Future. יש שלושה מצבים שונים:

  • GARFutureStatePending: הפעולה עדיין לא הסתיימה ולכן לא ידועה שום תוצאה.
  • GARFutureStateCancelled: הפעולה בוטלה על ידי GARFuture#cancel. אף פעם לא תתבצע קריאה חוזרת (callback) שרשומה.
  • GARFutureStateDone: הפעולה הושלמה. משתמשים ב-GARVPSAvailabilityFuture.result כדי לקבל את התוצאה.

כדאי להמשיך לבדוק את GARFuture.state עד שהמשימה תושלם.

קבלת התוצאה באמצעות קריאה חוזרת (callback)

אפשר גם לקבל את התוצאה של Future באמצעות קריאה חוזרת (callback). משתמשים בפונקציה GARSession#checkVPSAvailabilityAtCoordinate:completionHandler: ומציינים completionHandler. תתבצע קריאה לcompletionHandler הזה ב-thread הראשי זמן קצר אחרי שהמצב GARFutureStateDone יהיה בFuture.

ביטול Future

אפשר להשתמש ב-GARFuture#cancel כדי לנסות לבטל את Future. בגלל מקבילה בשרשור, יכול להיות שניסיון הביטול לא יצליח בפועל. הפונקציה GARFuture#cancel מחזירה YES אם הניסיון נכשל. אחרת, מוחזרת NO.

שימוש ב-Geospatial API ללא כיסוי VPS

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

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