為 iOS 應用程式啟用 Geospatial API

調整應用程式的設定,讓應用程式使用 Geospatial API

必要條件

請務必瞭解基本 AR 概念 以及如何在繼續操作前設定 ARCore 工作階段

如要執行示範上述功能的範例應用程式 請參閱 iOS 適用的 ARCore 地理空間資料快速入門導覽課程

詳情請參閱 詳情請參閱「Geospatial API 簡介」一文 Geospatial API 的相關資訊。

如果您是第一次使用 ARCore 進行開發,請參閱入門指南 瞭解軟體和硬體需求、先決條件及 您使用的平台專屬其他資訊

啟用 ARCore API

在應用程式中使用視覺定位系統 (VPS) 之前,您必須先 啟用 ARCore API 建立新的叢集或開啟現有 Google Cloud 專案這項服務負責 託管、儲存及解決地理空間錨點。

偏好無金鑰授權,但也支援 API 金鑰授權。

將必要的程式庫新增至應用程式

授權應用程式呼叫 ARCore API 後,您必須將程式庫新增至 在應用程式中啟用地理空間功能。

更新應用程式的 Podfile,納入 ARCore SDK 和支援的 iOS 以及版本管理步驟如下:

  1. 將下列 platformpod 新增至您的 專案的 Podfile

    platform :ios, '11.0'
    pod 'ARCore/Geospatial', '~> 1.45.0'
    

    如要支援 iOS 10,也可以指定 platform :ios, '10.0'。 但請注意,Geospatial API 只能在 iOS 11 以上版本的執行階段運作。

  2. 開啟「終端機」視窗,然後從下列資料夾執行 pod install: 你的 Xcode 專案已存在。

    這項操作會產生 .xcworkspace 檔案,可用於建構及 最終的可執行映像檔 而另一個容器只接收執行應用程式所需的資料

請確認您的開發環境符合 ARCore SDK 需求。 如快速入門導覽課程中所述。

在工作階段設定中啟用地理空間功能

檢查裝置相容性

並非所有支援 ARCore 的裝置都支援 Geospatial API, 如快速入門導覽課程中所述。

使用 GARSession.isGeospatialModeSupported:敬上 按照下列步驟檢查裝置:

if (![self.garSession isGeospatialModeSupported:GARGeospatialModeEnabled]) {
  [self setErrorStatus:@"GARGeospatialModeEnabled is not supported on this device."];
  return;
}

GARSessionConfiguration *configuration = [[GARSessionConfiguration alloc] init];
configuration.geospatialMode = GARGeospatialModeEnabled;
[self.garSession setConfiguration:configuration error:&error];
if (error) {
  [self setErrorStatus:[NSString stringWithFormat:@"Failed to configure GARSession: %d",
                                                  (int)error.code]];
  return;
}

在執行階段要求使用者授予位置存取權

您的應用程式必須在執行階段要求下列位置存取權, 如何設定工作階段:

查看裝置目前位置的地理空間可用性

由於 Geospatial API 結合 VPS 和 GPS 的組合來判斷地理空間轉換,只要裝置能夠確定其位置,即可使用此 API。在 GPS 準確度較低的地區 (例如室內空間和人口稠密的都市環境),API 將透過 VPS 覆蓋範圍產生高精確度的變形。在一般情況下,VPS 可提供的位置準確度約為 5 公尺,旋轉準確率為 5 度。使用 GARSession.checkVPSAvailabilityAtCoordinate:completionHandler: 判斷特定位置是否涵蓋 VPS 涵蓋範圍。

Geospatial API 也可用於沒有 VPS 涵蓋範圍的區域中。在幾乎沒有或完全沒有障礙物的戶外環境中,GPS 可能足以產生高精確度的變形。

後續步驟