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 может быть достаточно для определения позы с высокой точностью.
Что дальше
- Получите геопространственную позу камеры устройства , чтобы определить точное местоположение устройства пользователя в реальном мире.