Geospatial API использует комбинацию данных VPS и GPS для создания высокоточных геопространственных преобразований. API можно использовать в любом месте, где устройство может определить свое местоположение:
- В районах с низкой точностью GPS, таких как закрытые помещения и плотная городская среда, API будет полагаться на покрытие VPS для генерации высокоточных преобразований.
- В условиях открытого пространства с небольшим количеством препятствий наверху или без них Geospatial API может использовать доступные данные о местоположении GPS для создания геопространственных преобразований с высокой точностью.
Вы можете определить доступность VPS в заданном горизонтальном положении до начала сеанса AR и использовать его для создания более конкретных возможностей — например, для отображения кнопки «Войти в AR» только тогда, когда VPS доступен.
Включите API ARCore
Ваше приложение должно включить API ARCore для проверки доступности VPS.
Проверьте доступность VPS в вашем приложении
Geospatial API можно использовать в любом месте, где устройство может определить свое местоположение. Если ваш опыт AR зависит от покрытия VPS, вы можете использовать GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
для получения GARVPSAvailabilityFuture
, асинхронной задачи, которая проверяет доступность VPS в заданной горизонтальной позиции. Получив GARVPSAvailabilityFuture
, вы можете получить его результат путем опроса или обратного вызова.
Опрос результатов
Используйте GARFuture.state
чтобы получить состояние Future
. Есть три разных состояния:
-
GARFutureStatePending
: операция еще не завершена, поэтому результат неизвестен. -
GARFutureStateCancelled
: операция была отмененаGARFuture#cancel
. Любой зарегистрированный обратный вызов никогда не будет вызван. -
GARFutureStateDone
: операция завершена. ИспользуйтеGARVPSAvailabilityFuture.result
для получения результата.
Вы можете продолжать проверку GARFuture.state
до завершения задачи.
Получить результат через обратный вызов
Вы также можете получить результат Future
через обратный вызов. Используйте GARSession#checkVPSAvailabilityAtCoordinate:completionHandler:
и укажите completionHandler
. Этот completionHandler
будет вызван в основном потоке вскоре после того, как Future
получит состояние GARFutureStateDone
.
Отменить Future
Используйте GARFuture#cancel
чтобы попытаться отменить Future
. Из-за параллелизма потоков ваша попытка отмены может оказаться неудачной. GARFuture#cancel
возвращает YES
, если попытка была успешной, и NO
в противном случае.
Используйте Geospatial API без покрытия VPS
Geospatial API также можно использовать в регионах, где нет покрытия VPS. На открытом воздухе с небольшим количеством препятствий или без них GPS может быть достаточно для определения позы с высокой точностью.
Что дальше
- Получите геопространственную позу камеры устройства, чтобы определить точное местоположение устройства пользователя в реальном мире.