カスタム ナビゲーション エクスペリエンス

Navigation SDK には、ナビゲーション エクスペリエンスをアプリに統合するさまざまな方法が用意されています。このページでは、カスタム ナビゲーション エクスペリエンスの概要と、Navigation SDK で利用可能な他のナビゲーション エクスペリエンスとの違いについて説明します。

カスタム ナビゲーション エクスペリエンスとは

Navigation SDK を実装する主な方法は、Google ナビゲーション エクスペリエンスを使用することです。これにより、Google 提供の UI 要素とビジュアルを使用して、Google マップ アプリ内のナビゲーション エクスペリエンスと同様に、ターンバイターン方式ナビゲーション エクスペリエンスを埋め込むことができます。Google ナビゲーションよりも柔軟なナビゲーション エクスペリエンスが必要な場合は、カスタム ナビゲーション エクスペリエンスを実装できます。カスタム ナビゲーション エクスペリエンスとは、ナビゲーションをバックグラウンド プロセスとしてのみ実行し、曲がり角のガイダンスを完全に排除することから、ナビゲーションを実行するデバイスとは別の画面に高度にカスタマイズされたガイダンス エクスペリエンスを投影することまで、あらゆることを指します。カスタム ナビゲーション エクスペリエンスでは、アプリが Navigation SDK を呼び出してルート案内フィードをリクエストし、ナビゲーション エクスペリエンスでユーザーに表示される UI 要素とビジュアルを提供して管理します。一般的に、Google ナビゲーションを使用する方が実装は簡単ですが、独自のカスタム ナビゲーションを構築すると、よりカスタマイズできます。

カスタム ナビゲーション エクスペリエンスを作成すると、アプリは Navigation SDK を呼び出して、次のフローを使用してナビゲーションを開始、実行、停止します。

  1. ナビを開始します。Google ナビゲーションと同様に、カスタム ナビゲーションでも、ナビゲーション インスタンスの作成とデスティネーションの設定が必要です。ただし、カスタマイズされたナビゲーション エクスペリエンスでは、まず GMSNavigationService.createNavigationSession を使用してナビゲーション セッションを確立します。これは、ビュー コントローラありまたはなしで動作できる状態保持の非 UI オブジェクトです。

    詳細については、ターンバイターン データフィードを有効にするをご覧ください。

    デモを表示する: Navigation SDK のダウンロードには、デモが含まれています。このデモを実行すると、標準ナビゲーションのターンバイターン ガイダンスと、道路ポリラインに沿って移動するデバイスの位置情報のみを表示するナビゲーションの例を確認できます。

  2. アクティブなナビゲーション。Google 提供のナビゲーションとカスタム ナビゲーションのもう 1 つの重要な違いは次のとおりです。ナビゲーション SDK の組み込みイベント マネージャーにガイダンスを渡す代わりに、ターンバイターン フィードを有効にしてイベント ハンドラを実装します。これにより、ナビゲーション イベントをリッスンするで説明されているイベントに応答できるようになります。

  3. ナビゲーションを終了します。Google ナビゲーションと同様に、カスタム ナビゲーションでも、アプリのエクスペリエンスに最適な方法でナビゲーションを終了する必要があります。

カスタム ナビゲーションを使用する場合

次の表に、カスタム ナビゲーションのシナリオを示します。

シナリオの例

手順の概要

2 輪車などの小型デバイスには、テキストのみのドライバー ガイダンスを提供する必要があります。

ナビゲータを作成し、小型画面デバイスへのデータフィードとしてルート案内を設定します。ナビゲータは、ドライバーの視界から外れた場所にあるドライバーのスマートフォンで実行されます。

Android Auto を使用するドライバー向けに、アプリをカー サービスとして利用できるようにしたい。

  1. 自動車サービスを設定します。
  2. Navigation SDK プロジェクトを設定する。
  3. ナビゲータをまだ設定していない場合は、設定します。
  4. ターンバイターン ナビゲーション フィードを有効にします。
  5. 自動車アプリのサーフェスに地図を描画し、設定したデータフィードからフィールドにデータを入力します。

詳細については、Android Auto でナビゲーションを有効にするをご覧ください。

アプリを使用するドライバーは、ほとんどのルートの概要地図を希望し、市街地の道路については最小限のターンバイターン ナビゲーションを希望しています。

アプリでは、ナビゲーションの目的地とルートモードの設定を切り替えることなく、運転手が Google ナビゲーション エクスペリエンスを必要に応じて利用できるようにする必要があります。