iOS アプリで Geospatial API を有効にする

アプリの設定を構成して、Geospatial API を使用できるようにします。

前提条件

続行する前に、AR の基本的なコンセプトARCore セッションを構成する方法を理解しておいてください。

ここで説明する機能のデモを行うサンプルアプリを実行するには、iOS 用の ARCore Geospatial クイックスタートをご覧ください。

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

ARCore を使った開発を初めて行う場合は、スタートガイドで、ソフトウェアとハードウェアの要件、前提条件、その他使用しているプラットフォームに固有の情報をご確認ください。

ARCore API を有効にする

アプリで Visual Positioning System(VPS)を使用する前に、新規または既存の Google Cloud プロジェクトで ARCore API を有効にする必要があります。このサービスは、地理空間アンカーのホスティング、保存、解決を行います。

キーなしの承認が推奨されますが、API キー認証もサポートされています。

必要なライブラリをアプリに追加する

ARCore API の呼び出しをアプリに許可したら、アプリで地理空間機能を有効にするためのライブラリを追加する必要があります。

アプリの Podfile を更新して、ARCore SDK とサポートされている iOS のバージョニングを含めます。手順は次のとおりです。

  1. プロジェクトの Podfile に次の platformpod を追加します。

    platform :ios, '11.0'
    pod 'ARCore/Geospatial', '~> 1.41.0'
    

    iOS 10 をサポートする場合は platform :ios, '10.0' を指定することもできますが、Geospatial API は iOS 11 以降で実行時にしか機能しません。

  2. ターミナル ウィンドウを開き、Xcode プロジェクトが存在するフォルダから pod install を実行します。

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

クイックスタートで説明されているように、開発環境が ARCore SDK の要件を満たしていることを確認します。

セッション構成で地理空間機能を有効にする

デバイスの互換性を確認する

quickstartで説明しているように、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;
}

実行時に位置情報の利用許可をユーザーに求める

セッションを設定する前に、アプリは実行時に以下の位置情報の利用許可をリクエストする必要があります。

デバイスの現在地で利用可能な地理空間を確認する

Geospatial API は VPS と GPS の組み合わせを使用して地理空間変換を判断するため、デバイスが自身の位置を特定できる限り、この API を使用できます。屋内空間や密集した都市環境など、GPS の精度が低い地域では、API は VPS カバレッジを利用して高精度の変換を生成します。一般的な条件下では、VPS の位置精度は約 5 メートル、回転精度は 5 度であると期待できます。GARSession.checkVPSAvailabilityAtCoordinate:completionHandler: を使用して、指定された場所が VPS に対応しているかどうかを確認します。

Geospatial API は、VPS がカバーされていない地域でも使用可能です。頭上の障害物がほとんどないか、まったくない屋外環境では、高精度の変換を生成するには GPS で十分です。

次のステップ