iOS 適用的地理空間快速入門導覽課程

本 ARCore Geospatial API 快速入門導覽課程說明如何在 Xcode 中執行範例應用程式,藉此示範地理空間 API。

如需透過地理空間 API 開發應用程式的指南,請參閱 iOS 專用的地理空間開發人員指南

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

如果您是第一次使用 ARCore 進行開發,請參閱入門指南

必要條件

  • Xcode 13.0 以上版本
  • Cocoapods 1.4.0 以上版本 (如果使用 Cocoapods)
  • 搭載 iOS 12.0 以上版本的 ARKit 相容 Apple 裝置 (需要 iOS 12.0 以上版本的部署目標)

設定範例應用程式

iOS 版 ARCore SDK 隨附的 GeospatialExample 專案會說明呼叫地理空間 API 的程式碼。

  1. 複製或下載 GitHub 適用的 ARCore SDK,取得範例應用程式的程式碼。

  2. 開啟終端機或 Finder 視窗,然後前往您複製或下載 SDK 的資料夾。

  3. 前往 arcore-ios-sdk-master/Examples 資料夾。

  4. 開啟「Examples」資料夾,選取「GeospatialExample」資料夾,然後按一下「開啟」

設定 Google Cloud 專案

如要使用視覺定位系統 (VPS),您的應用程式必須與啟用 ARCore API 的 Google Cloud 專案建立關聯。

您必須在 Google Cloud 專案中啟用 ARCore API。如需建立專案,請按照下列步驟操作:

  1. 造訪在 Google Cloud Platform 中建立專案

  2. 輸入適當的「專案名稱」,並選擇位置。

  3. 點選「建立」

  4. 在側欄中,依序選取「API 和服務」和「程式庫」

  5. 搜尋「ARCore API」,選取該 API,然後按一下「啟用」

設定授權

如要對 VPS 進行地理空間 API 呼叫,範例應用程式需要授權,且可使用未受限的 API 金鑰。如果您使用受限制的 API 金鑰,也必須提供軟體包 ID,以便與 API 金鑰建立關聯。

  1. 在 Google Cloud 專案中,按照「建立 API 金鑰」一文的說明取得 API 金鑰。

  2. 複製 API 金鑰,並在後續步驟中貼上。

  3. 在 Xcode 的 GeospatialExample 範例應用程式中,開啟 ViewController.m 檔案,並搜尋 your-api-key

  4. GARSession 中加入 API 金鑰:將上一步中複製的 API 金鑰貼到文字「your-api-key」 (保留引號) 上,如下所示。

    self.garSession = [GARSession sessionWithAPIKey:@"your-api-key"
                                   bundleIdentifier:nil
                                              error:&error];
    

設定 ARCore SDK

GeospatialExample 應用程式隨附 Podfile 預先設定的 Podfile,其中包含您需要的 ARCore SDK 和 iOS 版本。如要安裝這些依附元件,請開啟終端機視窗,然後從 Xcode 專案所在的資料夾執行 pod install

這樣做會產生 .xcworkspace 檔案,稍後您將用來建構及執行應用程式。

建構並執行範例應用程式

  1. 在 Xcode 中,選取「GeospatialExample」GeospatialExample工作區檔案,然後按一下「Signing & Capabilities」GeospatialExample

  2. 勾選「自動管理簽署功能」方塊。

  3. 在「Team」欄位輸入團隊名稱。

    您可以使用預設的「Bundle Identifier」從 Xcode 執行應用程式,但如果您在實際工作環境中使用 GeospatialExample 做為虛設常式,則必須變更此 ID。

  4. 連結裝置以執行範例應用程式。

  5. .xcworkspace 檔案建構並執行 GeospatialExample 應用程式,然後在裝置上啟動。

    為了避免建構錯誤,請確認您是從 .xcworkspace 檔案 (而不是 .xcodeproj 檔案) 建構。

您應該會看到相機檢視畫面,以及說明裝置目前地理空間轉換作業的偵錯資訊。在掃描附近的環境時,請注意,如果您位於 VPS 本地化支援的區域,定位精確度信心值可能會隨著您移動而改變。

如果 ARCore 對您裝置的位置和方向有信心,您可以使用地理空間轉換功能,在目前的位置放置錨點。

如果無法取得 VPS 資訊,定位精確度可能過低。應用程式必須連上網際網路,且位置必須是 VPS 已知的位置。為獲得最佳效果,請在白天的戶外 (而非室內) 執行範例應用程式。

此外,如果您的所在地區不支援 VPS,或 GPS 訊號不足,您可能需要調整應用程式中的可信度門檻,才能放置錨定標記。

如要調整閾值:

  1. 在 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;
    
  2. 請視需要調整這些值。值越大,準確率越低。

    降低精確度可讓應用程式增加錨定標記的緯度。詳情請參閱調整轉換準確率

後續步驟

請參閱 iOS 適用的地理空間開發人員指南,並開始使用地理空間 API 建構內容。