ב-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 יספיק כדי ליצור תנוחה ברמת דיוק גבוהה.
המאמרים הבאים
- נתוני התנוחה הגיאו-מרחבית של מצלמת המכשיר מאפשרת לקבוע את המיקום המדויק של המכשיר בעולם האמיתי.