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

Geospatial API использует комбинацию данных VPS и GPS для создания высокоточных геопространственных поз. API можно использовать в любом месте, где устройство может определить свое местоположение:

  • В районах с низкой точностью GPS, таких как закрытые помещения и плотная городская среда, API будет полагаться на покрытие VPS для создания высокоточных поз.
  • На открытом воздухе с небольшим количеством препятствий или без них Geospatial API может использовать доступные данные о местоположении GPS для создания геопространственных поз с высокой точностью.

Вы можете определить доступность VPS в заданной горизонтальной позиции до начала сеанса AR и использовать ее для создания более конкретных возможностей — например, для отображения кнопки «Войти в AR» только тогда, когда VPS доступен.

Включите API ARCore

Ваше приложение должно включить API ARCore для проверки доступности VPS.

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

Geospatial API можно использовать в любом месте, где устройство может определить свое местоположение. Если ваш опыт дополненной реальности зависит от покрытия VPS, вы можете использовать AREarthManager.CheckVpsAvailabilityAsync() для получения VpsAvailabilityPromise — асинхронной задачи, которая проверяет доступность VPS в заданной горизонтальной позиции. Получив VpsAvailabilityPromise , вы можете получить его результат путем опроса.

Опрос результатов

Используйте VpsAvailabilityPromise.State , чтобы получить состояние InterruptiblePromise . Есть три разных состояния:

  • Pending : операция еще не завершена, поэтому результат неизвестен.
  • Cancelled : операция была отменена с помощью VpsAvailabilityPromise.Cancel() . Любой зарегистрированный обратный вызов никогда не будет вызван.
  • Done : операция завершена. Используйте VpsAvailabilityPromise.Result для получения результата.

Вы можете продолжать проверку VpsAvailabilityPromise.State , пока задача не будет завершена.

Отменить InterruptiblePromise

Используйте VpsAvailabilityPromise.Cancel() , чтобы попытаться отменить InterruptiblePromise . Из-за параллелизма потоков ваша попытка отмены может оказаться неудачной.

Используйте Geospatial API без покрытия VPS

Geospatial API также можно использовать в регионах, где нет покрытия VPS. На открытом воздухе с небольшим количеством препятствий или без них GPS может быть достаточно для определения позы с высокой точностью.

Что дальше