Проверьте доступность VPS в текущем местоположении устройства

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

Что дальше