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