本 ARCore Geospatial API 快速入門說明如何在 Xcode 中執行範例應用程式,以示範 Geospatial API。
如需使用 Geospatial API 開發應用程式的指南,請參閱 iOS 適用的 Geospatial 開發人員指南。
如要進一步瞭解 Geospatial API,請參閱「ARCore Geospatial API 簡介」。
如果您是 ARCore 開發新手,請參閱「開發入門」一文。
必要條件
- Xcode 13.0 以上版本
- 如果使用 Cocoapods,請使用 1.4.0 以上版本
- 搭載 iOS 12.0 以上版本的 ARKit 相容 Apple 裝置 (必須指定 iOS 12.0 以上版本為部署目標)
設定範例應用程式
ARCore SDK for iOS 隨附的 GeospatialExample 專案會說明呼叫 Geospatial API 的程式碼。
從 GitHub 複製或下載 ARCore SDK for iOS,取得應用程式範例程式碼。
開啟 Terminal 或 Finder 視窗,然後前往複製或下載 SDK 的資料夾。
前往 arcore-ios-sdk-master/Examples 資料夾。
開啟「Examples」資料夾,選取「GeospatialExample」資料夾,然後按一下「Open」。
設定 Google Cloud 專案
在應用程式中使用視覺定位系統 (VPS) 前,您必須先在新的或現有 Google Cloud 專案中啟用 ARCore API。雖然 Geospatial API 支援無金鑰和 API 金鑰授權,但本快速入門指南會使用 API 金鑰方法。
設定授權
如要對 VPS 發出 Geospatial API 呼叫,範例應用程式需要授權,並且可能會使用未設限的 API 金鑰。如果您使用受限制的 API 金鑰,則必須提供軟體包 ID 與 API 金鑰建立關聯。
在 XCode 的 GeospatialExample 範例應用程式中,開啟 ViewController.m 檔案,然後搜尋 your-api-key。
將 API 金鑰新增至
GARSession
:將您在上一個步驟中複製的 API 金鑰貼到「your-api-key」文字上 (請保留引號),如下所示:self.garSession = [GARSession sessionWithAPIKey:@"your-api-key" bundleIdentifier:nil error:&error];
設定 ARCore SDK
GeospatialExample 應用程式隨附預先設定的 Podfile
,其中包含 ARCore SDK 和所需的 iOS 版本。如要安裝這些依附元件,請開啟終端機視窗,然後從 Xcode 專案所在的資料夾執行 pod install
。
這會產生 .xcworkspace
檔案,您稍後可用於建構及執行應用程式。
建構並執行範例應用程式
在 Xcode 中選取 GeospatialExample 工作區檔案,然後按一下「Signing & Capabilities」。
勾選「自動管理簽署」方塊。
在「團隊」欄位中輸入團隊名稱。
您可以使用預設的軟體包 ID,透過 Xcode 執行應用程式,但如果您要在實際環境中使用 GeospatialExample 做為自家應用程式的虛設檔,就必須變更該 ID。
連結裝置以執行範例應用程式。
從
.xcworkspace
檔案建構並執行 GeospatialExample 應用程式,即可在裝置上啟動應用程式。為避免發生建構錯誤,請務必從
.xcworkspace
檔案建構,而非.xcodeproj
檔案。
您應該會看到相機檢視畫面,以及描述裝置目前地理空間轉換的偵錯資訊。在掃描周遭環境時,如果您位於 VPS 定位功能支援的地區,請注意,位置資訊準確度信賴度值可能會隨著移動而變更。
當 ARCore 確認裝置的位置和方位時,您就可以使用地理空間轉換功能,在目前位置放置錨點。
如果無法取得 VPS 資訊,定位精確度可能會過低。應用程式必須連上網際網路,且 VPS 必須知道位置。為獲得最佳結果,請在白天時在戶外 (而非室內) 執行範例應用程式。
此外,如果您位於不支援 VPS 的地區,或是 GPS 訊號不足,可能就需要調整應用程式中的信心門檻,才能放置錨點。
如要調整閾值,請按照下列步驟操作:
在 Xcode 中開啟 ViewController.m 檔案,然後瀏覽至以下部分:
// Thresholds for 'good enough' accuracy. These can be tuned for the // application. We use both 'low' // and 'high' values here to avoid flickering state changes. static const CLLocationAccuracy kHorizontalAccuracyLowThreshold = 10; static const CLLocationAccuracy kHorizontalAccuracyHighThreshold = 20; static const CLLocationDirectionAccuracy kHeadingAccuracyLowThreshold = 15; static const CLLocationDirectionAccuracy kHeadingAccuracyHighThreshold = 25;
視需要調整這些值。值越高,準確度就會降低。
降低精確度可讓應用程式在放置錨點時有更大的彈性。詳情請參閱「調整轉換精確度」一文。
後續步驟
請參閱 iOS 適用的地理空間開發人員指南,並開始使用 Geospatial API 進行建構。