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