Geospatial API 會結合 VPS 和 GPS 資料,產生高精確度的地理空間姿勢。您可以在裝置能夠判斷其位置的任何位置使用此 API:
- 在 GPS 精確度較低的區域 (例如室內空間和擁擠的都會環境),API 會依靠 VPS 涵蓋範圍產生高精確度姿勢。
- 在沒有或幾乎沒有上方遮蔽物的戶外環境中,Geospatial API 可能可以使用可用的 GPS 位置資料,產生高精確度的地理空間姿勢。
您可以在 AR 工作階段開始前,在特定水平位置決定 VPS 可用性,然後利用這個位置打造更具體的體驗。舉例來說,只有在可使用 VPS 時才顯示「進入 AR」按鈕。
啟用 ARCore API
應用程式必須啟用 ARCore API,才能檢查 VPS 是否可用。
檢查應用程式中的 VPS 供應情形
只要裝置能夠判斷自身位置,Geospatial API 就能在任何地方使用。如果 AR 體驗以 VPS 涵蓋率為依據,可以使用 AREarthManager.CheckVpsAvailabilityAsync()
取得 VpsAvailabilityPromise
,這項非同步工作會在特定水平位置檢查 VPS 可用性。
取得 VpsAvailabilityPromise
後,就可以透過輪詢的方式取得結果。
對結果進行意見調查
使用 VpsAvailabilityPromise.State
取得 InterruptiblePromise
的狀態。狀態共有三種:
Pending
:作業尚未完成,因此無法得知結果。Cancelled
:VpsAvailabilityPromise.Cancel()
已取消該作業。系統一律不會呼叫任何已註冊的回呼。Done
:作業已完成。使用VpsAvailabilityPromise.Result
取得結果。
您可以繼續檢查 VpsAvailabilityPromise.State
,直到工作完成為止。
取消InterruptiblePromise
使用 VpsAvailabilityPromise.Cancel()
嘗試取消 InterruptiblePromise
。由於執行緒並行,取消嘗試可能實際上並未成功。
在沒有 VPS 涵蓋範圍的情況下使用 Geospatial API
地理空間 API 也適用於未涵蓋 VPS 的區域。在幾乎沒有或完全沒有障礙物的戶外環境中,GPS 可能足以產生高精確度的姿勢。
後續步驟
- 取得裝置相機的地理空間姿勢,判斷使用者裝置在真實世界中的確切位置。