為 iOS 應用程式啟用 Geospatial API

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

必要條件

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

如要執行範例應用程式,以便展示本文所述的功能,請參閱 iOS 適用的 ARCore Geospatial 快速入門指南

如要進一步瞭解 Geospatial API,請參閱「Geospatial API 簡介」。

如果您是 ARCore 開發新手,請參閱「開發入門」一文,瞭解軟體和硬體需求、前置條件,以及其他特定平台的相關資訊。

啟用 ARCore API

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

建議使用無金鑰授權,但也支援 API 金鑰授權。

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

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

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

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

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

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

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

    這會產生 .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 供應情形

由於 Geospatial API 會結合 VPS 和 GPS 來判斷地理空間轉換,因此只要裝置能夠判斷自身位置,即可使用該 API。在 GPS 精確度較低的區域 (例如室內空間和擁擠的都會環境),API 會依靠 VPS 涵蓋範圍產生高精確度的轉換。在一般情況下,VPS 的位置精確度約為 5 公尺,旋轉精確度約為 5 度。使用 GARSession.checkVPSAvailabilityAtCoordinate:completionHandler: 判斷特定位置是否有 VPS 涵蓋範圍。

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

後續步驟