Navigation SDK には、ナビゲーション エクスペリエンスをアプリに統合するさまざまな方法が用意されています。このページでは、カスタム ナビゲーション エクスペリエンスとは何か、Navigation SDK で利用できる他のナビゲーション エクスペリエンスとどのように異なるのかについて説明します。
カスタム ナビゲーション エクスペリエンスとは
Navigation SDK を実装する主な方法は、Google ナビゲーション エクスペリエンスを使用することです。これにより、Google マップ アプリ内のナビゲーション エクスペリエンスと同様の、Google 提供の UI 要素とビジュアルを使用するターンバイターン方式ナビを埋め込むことができます。Google ナビゲーション エクスペリエンスよりも柔軟なカスタマイズが必要な場合は、カスタム ナビゲーション エクスペリエンスを実装できます。カスタム ナビゲーション エクスペリエンスとは、ターンバイターン方式のルート案内を完全に排除してナビゲーションをバックグラウンド プロセスとしてのみ実行することから、ナビゲーションを実行するデバイスとは別の画面に高度にカスタマイズされたルート案内エクスペリエンスを投影することまで、あらゆることを指します。カスタム ナビゲーション エクスペリエンスでは、アプリが Navigation SDK を呼び出してターンバイターン方式のナビゲーション フィードをリクエストし、ユーザーがナビゲーション エクスペリエンスで目にする UI 要素とビジュアルを提供して管理します。一般的に、Google ナビゲーション エクスペリエンスを使用する方が実装は簡単ですが、独自のカスタム ナビゲーション エクスペリエンスを構築すると、より多くのカスタマイズが可能になります。
カスタム ナビゲーション エクスペリエンスを作成すると、アプリは Navigation SDK を呼び出して、次のフローを使用してナビゲーションを開始、実行、停止します。
ナビゲーションを開始します。カスタマイズされたナビゲーション エクスペリエンスを開始するには、ナビゲーション インスタンスを作成して目的地を設定します。
NavigationApi.getNavigatorを使用して Navigator インスタンスを取得し、navigator.registerServiceForNavUpdatesを使用して更新の受信に登録します。詳細については、ターンバイターン データフィードを有効にするをご覧ください。
デモを見る: Navigation SDK のダウンロードには、標準のナビゲーションによるターンバイターン方式のルート案内と、道路のポリラインに沿って移動するデバイスの位置のみを表示するナビゲーション エクスペリエンスを切り替えるナビゲーション エクスペリエンスの例を確認できるデモが含まれています。
アクティブ ナビゲーション。Google が提供するナビゲーション エクスペリエンスとカスタム ナビゲーション エクスペリエンスのもう一つの大きな違いは、Navigation SDK の組み込みイベント マネージャーにガイダンスを渡す代わりに、ターンバイターン フィードを有効にしてイベント ハンドラを実装します。これにより、ナビゲーション イベントをリッスンするで説明されているイベントにエクスペリエンスが応答できるようになります。
ナビゲーションを終了します。Google ナビゲーション エクスペリエンスと同様に、カスタム ナビゲーションでも、アプリのエクスペリエンスに最適な方法でナビゲーションを終了する必要があります。
カスタム ナビゲーション エクスペリエンスはどのような場合に使用しますか?
次の表に、カスタム ナビゲーションのシナリオをいくつか示します。
シナリオの例 |
手順の概要 |
|---|---|
2 輪車などの小型デバイス向けに、テキストのみのドライバー ガイダンスを提供する必要があります。 |
ナビゲーターを作成し、ターンバイターン方式のルート案内をデータフィードとして小型画面デバイスに設定します。ナビゲーターは、ドライバーの視界の外にあるモバイル デバイスで実行されます。 |
Android Auto を使用するドライバー向けの車載サービスとしてアプリを利用できるようにしたい。 |
詳細については、Android Auto のナビゲーションを有効にするをご覧ください。 |
アプリを使用するドライバーは、移動のほとんどで概観マップを必要とし、市街地の道路でのみ最小限のターンバイターン方式のルート案内を必要としています。 |
アプリでは、ドライバーが目的地や移動モードのナビゲーション設定を変更することなく、必要に応じて Google ナビゲーション エクスペリエンスを開始、終了できるようにする必要があります。 |