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

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

前提条件

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

ここで説明する機能を示すサンプルアプリを実行する場合は、iOS 向け ARCore Geospatial のクイックスタートをご覧ください。

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

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

ARCore API を有効にする

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

キーレス認証が推奨されますが、API キー認証もサポートされています。

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

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

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

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

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

    iOS 10 をサポートする場合は platform :ios, '10.0' を指定することもできますが、Geospatial API は iOS 11 以上のランタイムでのみ機能します。

  2. ターミナル ウィンドウを開き、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;
}

実行時にユーザーに位置情報の利用許可をリクエストする

アプリは、セッションを構成する前に、実行時に次の位置情報の権限をリクエストする必要があります。

デバイスの現在地での地理空間の利用状況を確認する

Geospatial API は VPS と GPS を組み合わせてジオ空間変換を決定するため、デバイスが位置を特定できる限り、この API を使用できます。屋内や高密度の都市環境など、GPS の精度が低い地域では、API は VPS のカバレッジに基づいて高精度のトランスフォームを生成します。一般的な条件下では、VPS は位置精度が約 5 メートル、回転精度が 5 度と見込まれます。GARSession.checkVPSAvailabilityAtCoordinate:completionHandler: を使用して、特定の場所が VPS の対象かどうかを判断します。

Geospatial API は、VPS がカバーされていない地域でも使用できます。屋外で障害物がほとんどない環境では、GPS だけで高精度のトランスフォームを生成できる場合があります。

次のステップ