Navigation SDK には、ナビゲーション エクスペリエンスをアプリに統合するさまざまな方法が用意されています。このページでは、カスタム ナビゲーションの概要と、Navigation SDK で利用可能な他のナビゲーション エクスペリエンスとの違いについて説明します。
カスタム ナビゲーションとは
Navigation SDK を実装する主な方法は、Google ナビゲーション エクスペリエンスを使用することです。これにより、Google が提供する UI 要素とビジュアルを使用したターンバイターン方式のナビゲーション エクスペリエンスを埋め込むことができます。これは、Google マップアプリ内のナビゲーション エクスペリエンスと似ています。Google のナビゲーション エクスペリエンスよりも柔軟性が必要な場合は、カスタム ナビゲーション エクスペリエンスを実装できます。カスタム ナビゲーション エクスペリエンスとは、曲がり角案内を完全になくしてバックグラウンド プロセスとしてのみナビゲーションを実行することから、高度にカスタマイズされたガイダンス エクスペリエンスを、ナビゲーションを実行するデバイスとは別の画面に投影することまで、あらゆることを指します。カスタム ナビゲーション エクスペリエンスでは、アプリが Navigation SDK を呼び出してターンバイターン ナビゲーション フィードをリクエストしてから、ナビゲーション エクスペリエンスでユーザーに表示される UI 要素とビジュアルを提供、管理します。一般に、Google のナビゲーション エクスペリエンスを使用したほうが実装は簡単ですが、独自のカスタム ナビゲーション エクスペリエンスを構築することで、さらにカスタマイズが可能です。
カスタム ナビゲーション エクスペリエンスを作成すると、アプリは Navigation SDK を呼び出して、ナビゲーションを開始、実行、停止するフローを次のフローに沿って作成します。
ナビを開始します。Google のナビゲーション エクスペリエンスと同様に、カスタム ナビゲーション エクスペリエンスでも、ナビゲーション インスタンスの作成とデスティネーションの設定が必要となります。ただし、カスタマイズされたナビゲーション エクスペリエンスでは、最初にそれを使用してナビゲーション セッションを確立します。これは、ビュー コントローラの有無にかかわらず動作できる状態を保持している非 UI オブジェクトです。
詳しくは、ターンバイターン データフィードを有効にするをご覧ください。
デモを見る: ダウンロードした Navigation SDK には、ターンバイターン方式の標準ナビゲーションによる案内から、道路のポリラインに沿って移動するデバイスの位置のみを表示するナビゲーションに切り替えるナビゲーション機能の例を確認できるデモが含まれています。
アクティブ ナビゲーション。Google が提供するナビゲーション エクスペリエンスとカスタム ナビゲーション エクスペリエンスのもう 1 つの主な違いは次のとおりです。Navigation SDK の組み込みイベント マネージャーにガイダンスを渡す代わりに、ターンバイターン フィードを有効にしてイベント ハンドラを実装します。これにより、ナビゲーション イベントをリッスンするで説明されているイベントに応答できるようになります。
ナビゲーションを終了します。Google ナビゲーション エクスペリエンスと同様に、カスタム ナビゲーションでも、アプリのエクスペリエンスに最適な方法でナビゲーションを終了する必要があります。
カスタム ナビゲーション エクスペリエンスを使用するのはどのような場合ですか。
次の表に、カスタム ナビゲーションのシナリオをいくつか示します。
実施例 |
手順の概要 |
---|---|
二輪車などの小型デバイスには、テキストのみのドライバー ガイダンスを提供する必要があります。 |
ナビゲータを作成し、ターンバイターン方式のガイダンスを小画面のデバイスへのデータフィードとして設定します。ナビゲータは、ドライバーのスマートフォン上でナビゲータを直近のビュー外で動作させます。 |
Android Auto を使用するドライバーがカーサービスとしてアプリを利用できるようにしたい |
詳しくは、Android Auto のナビゲーションを有効にするをご覧ください。 |
アプリを使用するドライバーは、市街地のターンバイターン方式の案内が最小限で、移動の大部分についての概要地図を求めています。 |
アプリでは、ドライバーが目的地とルートモードに関するナビゲータの設定を変更することなく、必要に応じて Google のナビゲーション エクスペリエンスを開始、終了できるようにする必要があります。 |