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

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

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

אפשר לקבוע את הזמינות של VPS במיקום אופקי נתון לפני שסשן ה-AR מתחיל, ולהשתמש בו כדי ליצור חוויות ספציפיות יותר. לדוגמה, כדי להציג 'Enter 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 באמצעות התקשרות חזרה. משתמשים ב-GARSession#checkVPSAvailabilityAtCoordinate:completionHandler: ומציינים completionHandler. תתבצע קריאה ל-completionHandler הזה ב-thread הראשי זמן קצר אחרי שמצב Future ישתנה ל-GARFutureStateDone.

ביטול של Future

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

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

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

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