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