檢查裝置的 VPS 可用性';目前位置

地理空間 API 結合 VPS 和 GPS 資料,產生高精確度的地理空間轉換。您可在裝置能夠判斷其位置的任何位置使用此 API:

  • 在 GPS 準確度較低的地區 (例如室內空間和人口密集的都市環境),API 就會仰賴 VPS 覆蓋範圍來產生高精確度轉換。
  • 在幾乎沒有高架障礙的戶外環境中,地理空間 API 或許能透過可用的 GPS 位置資料,以精確的方式產生地理空間轉換作業。

你可以在 AR 工作階段開始前以特定水平位置判斷 VPS 適用情形,並使用這項功能打造更精準的體驗,舉例來說,只有在 VPS 可用時才會顯示「進入 AR」按鈕。

啟用 ARCore API

您的應用程式必須啟用 ARCore API,才能檢查 VPS 可用性。

檢查應用程式中的 VPS 可用性

地理空間 API 可用於裝置判斷其位置的任何位置。如果您的 AR 體驗取決於 VPS 涵蓋率,可以使用 GARSession#checkVPSAvailabilityAtCoordinate:completionHandler: 取得 GARVPSAvailabilityFuture,這項非同步工作會在特定水平位置檢查 VPS 可用性。 取得 GARVPSAvailabilityFuture 後,您可以透過輪詢或回呼取得相關結果。

意見調查結果

使用 GARFuture.state 取得 Future 的狀態。狀態分為三種:

  • GARFutureStatePending:作業尚未完成,因此沒有結果。
  • GARFutureStateCancelledGARFuture#cancel 已取消作業。系統一律不會呼叫任何已註冊的回呼。
  • GARFutureStateDone:作業已完成。使用 GARVPSAvailabilityFuture.result 取得結果。

您可以繼續查看 GARFuture.state,直到工作完成為止。

透過回呼取得結果

您也可以透過回呼取得 Future 的結果。使用 GARSession#checkVPSAvailabilityAtCoordinate:completionHandler: 並提供 completionHandlerFuture 有狀態 GARFutureStateDone 後,很快就會在主執行緒上呼叫這個 completionHandler

取消Future

使用 GARFuture#cancel 嘗試取消 Future。由於執行緒平行處理,您的取消嘗試實際上可能不會成功。如果嘗試成功,GARFuture#cancel 會傳回 YES,否則會傳回 NO

使用地理空間 API,且未涵蓋 VPS 涵蓋範圍

地理空間 API 也可用於沒有 VPS 涵蓋範圍的區域。在幾乎沒有俯瞰障礙的戶外環境中,GPS 可能足以產生具有高準確度的姿勢。

後續步驟