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

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

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

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

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

前提条件

  • Xcode バージョン 13.0 以降
  • Cocoapods 1.4.0 以降(Cocoapods を使用する場合)
  • 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 フォルダを選択して、[開く] をクリックします。

Google Cloud プロジェクトの設定

Visual Positioning System(VPS)を使用するには、ARCore API が有効になっている Google Cloud プロジェクトとアプリを関連付ける必要があります。

Google Cloud プロジェクトで ARCore API を有効にする必要があります。プロジェクトを作成する必要がある場合は、次の操作を行います。

  1. Google Cloud Platform でプロジェクトを作成するをご覧ください。

  2. 適切なプロジェクト名を入力し、ロケーションを選択します。

  3. [作成] をクリックします。

  4. サイドバーで、[API とサービス]、[ライブラリ] の順に選択します。

  5. ARCore API を検索して選択し、[有効にする] をクリックします。

認可を設定する

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

  1. Google Cloud プロジェクトで、API キーの作成の説明に沿って API キーを取得します。

  2. API キーをコピーし、後の手順で貼り付けます。

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

  4. 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. [Team] フィールドにチーム名を入力します。

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

  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 API を使った構築を始めましょう。