iOS 向け地理空間のクイックスタート

この ARCore Geospatial API のクイックスタートでは、Geospatial API を示すサンプルアプリを Xcode で実行する方法について説明します。

Geospatial API を使用して独自のアプリを開発するガイドについては、iOS 向け Geospatial デベロッパー ガイドをご覧ください。

Geospatial API の詳細については、ARCore Geospatial API の概要をご覧ください。

ARCore を使った開発が初めての場合は、スタートガイドをご覧ください。

前提条件

  • Xcode バージョン 13.0 以降
  • Cocoapods を使用している場合: Cocoapods 1.4.0 以降
  • iOS 12.0 以降を搭載した ARKit 対応の Apple デバイス(デプロイ ターゲットが iOS 12.0 以降である必要があります)

サンプルアプリを設定する

ARCore SDK for iOS に含まれている GeospatialExample プロジェクトでは、Geospatial API を呼び出すコードについて説明しています。

  1. GitHub から ARCore SDK for iOS のクローンを作成するかダウンロードして、サンプルアプリコードを取得します。

  2. ターミナル ウィンドウまたは Finder ウィンドウを開き、SDK をクローン化またはダウンロードしたフォルダに移動します。

  3. arcore-ios-sdk-master/Examples フォルダに移動します。

  4. [Examples] フォルダを開き、[GeospatialExample] フォルダを選択して、[Open] をクリックします。

Google Cloud プロジェクトの設定

アプリで Visual Positioning System(VPS)を使用する前に、新しい Google Cloud プロジェクトまたは既存の Google Cloud プロジェクトで ARCore API を有効にする必要があります。Geospatial API は、キーレス認証と API キー認証の両方で動作しますが、このクイックスタート ガイドでは API キー方式を使用します。

認可を設定する

VPS に対して Geospatial API 呼び出しを行うには、サンプルアプリに認可が必要です。制限のない API キーを使用できます。制限付きの API キーを使用する場合は、API キーに関連付けるバンドル ID も指定する必要があります。

  1. XCode の GeospatialExample サンプルアプリで ViewController.m ファイルを開き、your-api-key を検索します。

  2. API キーを GARSession に追加します。前の手順でコピーした API キーを、your-api-key というテキストの上に貼り付けます(引用符はそのままにします)。

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

ARCore SDK を設定する

GeospatialExample アプリには、必要な ARCore SDK と iOS バージョンがあらかじめ構成された Podfile が付属しています。これらの依存関係をインストールするには、ターミナル ウィンドウを開き、Xcode プロジェクトがあるフォルダから pod install を実行します。

これにより、後でアプリのビルドと実行に使用する .xcworkspace ファイルが生成されます。

サンプルアプリをビルドして実行する

  1. Xcode で GeospatialExample ワークスペース ファイルを選択し、[Signing & Capabilities] をクリックします。

  2. [署名を自動的に管理する] チェックボックスをオンにします。

  3. [チーム] フィールドにチーム名を入力します。

    デフォルトのバンドル ID を使用して Xcode からアプリを実行できますが、本番環境で独自のアプリのスタブとして GeospatialExample を使用する場合は、変更する必要があります。

  4. デバイスを接続してサンプルアプリを実行します。

  5. .xcworkspace ファイルから GeospatialExample アプリをビルドして実行し、デバイスで起動します。

    ビルドエラーを回避するには、.xcodeproj ファイルではなく .xcworkspace ファイルからビルドしていることを確認してください。

カメラビューと、デバイスの現在の地理空間変換を説明するデバッグ情報が表示されます。周囲の環境をスキャンする際、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 向け Geospatial デベロッパー ガイドを確認し、Geospatial API を使った開発を始めましょう。