為 iOS 應用程式啟用 Geospatial API

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

必備條件

請務必先瞭解基本 AR 概念,以及如何設定 ARCore 工作階段,然後再繼續操作。

如果您要執行示範本來說明功能的範例應用程式,請參閱 iOS 適用的 ARCore 地理空間快速入門導覽課程

如要進一步瞭解地理空間 API,請參閱「地理空間 API 簡介」。

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

啟用 ARCore API

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

建議提供無金鑰授權,不過系統也支援 API 金鑰授權。

在應用程式中新增必要程式庫

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

更新應用程式的 Podfile,加入 ARCore SDK 與支援的 iOS 版本管理。操作說明如下:

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

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

    如果您想支援 iOS 10,也可以指定 platform :ios, '10.0'。但請注意,Geospatial API 只會在 iOS 11 以上的執行階段中運作。

  2. 開啟終端機視窗,然後從 Xcode 專案所在的資料夾執行 pod install

    這樣做會產生用於建構及執行應用程式的 .xcworkspace 檔案。

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

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

檢查裝置相容性

並非所有支援 ARCore 的裝置也支援地理空間 API,如quickstart中所述。

使用 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;
}

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

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

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

由於地理空間 API 會結合 VPS 與 GPS 來判定地理空間轉換情形,因此只要裝置能夠判斷其位置,即可使用這個 API。在 GPS 準確度偏低的地區 (例如室內空間和人口密集的都市環境),API 就會仰賴 VPS 覆蓋範圍來產生高精確度轉換。在一般情況下,VPS 的位置精確度可達到約 5 公尺,旋轉精確度為 5 度。使用 GARSession.checkVPSAvailabilityAtCoordinate:completionHandler: 判斷特定位置是否有 VPS 涵蓋率。

地理空間 API 也可用於沒有 VPS 涵蓋範圍的區域。在幾乎沒有俯瞰障礙的戶外環境中,GPS 或許足以產生精準轉換效果。

後續步驟