設定應用程式,讓應用程式能夠使用 Geospatial API。
必要條件
請務必先瞭解基本 AR 概念,並瞭解如何設定 ARCore 工作階段,再繼續操作。
如要執行範例應用程式,以便展示本文所述的功能,請參閱 iOS 適用的 ARCore Geospatial 快速入門指南。
如要進一步瞭解 Geospatial API,請參閱「Geospatial API 簡介」。
如果您是 ARCore 開發新手,請參閱「開發入門」一文,瞭解軟體和硬體需求、前置條件,以及其他特定平台的相關資訊。
啟用 ARCore API
在應用程式中使用視覺定位系統 (VPS) 前,您必須先在新的或現有 Google Cloud 專案中啟用 ARCore API。這項服務負責代管、儲存及解析地理空間錨點。
建議使用無金鑰授權,但也支援 API 金鑰授權。
將必要的程式庫新增至應用程式
授權應用程式呼叫 ARCore API 後,您必須新增程式庫,才能在應用程式中啟用地理空間功能。
更新應用程式的Podfile
,納入 ARCore SDK 和支援的 iOS 版本。步驟如下:
將下列
platform
和pod
新增至專案的Podfile
:platform :ios, '11.0' pod 'ARCore/Geospatial', '~> 1.48.0'
如果您想支援 iOS 10,也可以指定
platform :ios, '10.0'
,但請注意,Geospatial API 僅會在 iOS 11 以上版本的執行階段運作。開啟終端機視窗,然後從 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;
}
在執行階段要求使用者提供位置存取權
應用程式必須在執行階段要求下列位置資訊權限,才能設定工作階段:
kCLAuthorizationStatusAuthorizedWhenInUse
CLAccuracyAuthorizationFullAccuracy
(適用於 iOS 14 以上版本)
查看裝置目前位置的 Geospatial 供應情形
由於 Geospatial API 會結合 VPS 和 GPS 來判斷地理空間轉換,因此只要裝置能夠判斷自身位置,即可使用此 API。在 GPS 精確度較低的區域 (例如室內空間和擁擠的都會環境),API 會依靠 VPS 涵蓋範圍產生高精確度的轉換。在一般情況下,VPS 可提供約 5 公尺的位置精確度,以及 5 度的旋轉精確度。使用 GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
判斷特定位置是否有 VPS 涵蓋範圍。
地理空間 API 也適用於未涵蓋 VPS 的區域。在沒有或幾乎沒有上方遮蔽物的戶外環境中,GPS 可能就足以產生高精確度的轉換。
後續步驟
- 取得裝置相機的地理空間轉換資訊,以便判斷使用者裝置在真實世界中的確切位置。
- 查看裝置所在位置是否有 VPS。