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 提供のナビゲーション エクスペリエンスとカスタム ナビゲーション エクスペリエンスのもう 1 つの大きな違いは次のとおりです。Navigation SDK の組み込みイベント マネージャーにガイダンスを渡す代わりに、ターンバイターン フィードを有効にして、イベント ハンドラを実装します。これにより、エクスペリエンスはナビゲーション イベントをリッスンするで説明されているイベントに応答できます。
ナビゲーションを終了します。Google ナビゲーション エクスペリエンスと同様に、カスタム ナビゲーションでも、アプリのエクスペリエンスに最適な方法でナビゲーションを終了する必要があります。
カスタム ナビゲーション エクスペリエンスを使用する場面
次の表に、カスタム ナビゲーションのシナリオを示します。
シナリオの例 |
手順の概要 |
|---|---|
二輪車などの小型デバイス向けに、テキストのみの運転ガイダンスを提供する必要があります。 |
ナビゲーターを作成し、ナビゲーターが運転者のモバイル デバイスで実行されている間、ターンバイターン方式のガイダンスを小画面デバイスへのデータフィードとして設定します。 |
Android Auto を使用するドライバー向けに、アプリをカーサービスとして提供したい。 |
詳しくは、Android Auto のナビゲーションを有効にするをご覧ください。 |
アプリを使用するドライバーは、ほとんどの移動で概観マップを必要としており、市街地の道路では最小限のターンバイターン方式の案内のみを必要としています。 |
アプリでは、目的地と移動モードのナビゲーターの設定を切り替えることなく、ドライバーが Google ナビゲーション エクスペリエンスを必要に応じて開始したり終了したりできるようにする必要があります。 |