よくある質問

プロダクトの詳細

ネットワーク

データ

UI のカスタマイズ

ルーティング

シミュレータ

Workflows

プロダクトの詳細

アプリに、各ユーザーが同意する必要がある Navigation SDK 利用規約を表示するダイアログを実装する必要があります。このダイアログで、ユーザーは利用規約に同意できます。利用規約のテキスト ファイルは Navigation SDK に含まれています。用語を含むダイアログを表示するには、NavigationApi.showTermsAndConditionsDialog メソッドを使用します。
Google Maps Mobile でサポートされているすべての言語が、Navigation SDK で自動的に利用可能になります。デバイスにはデフォルトのシステム言語があり、アプリでその設定を変更することはできませんが、アプリは 70 を超える言語にアクセスできます。

はい。LocationListener は、起動すると引き続きバックグラウンドで実行されます。アプリは道路スナップを継続し、方位を維持します。

はい。ルートを作成または変更すると、RouteChangeListener によってポリラインが提供されます。

いいえ。Navigation SDK を使用する場合、モバイル Google マップをデバイスにインストールする必要はありません。
いいえ。現時点では、Navigation SDK にこの機能はありません。
はい。トラフィックの方向はデフォルトで使用可能になり、表示されます。
Navigation SDK はどのバージョンの JDK をサポートしていますか?
Navigation SDK は、Oracle で現在サポートされている LTS バージョンの Java SE をサポートしています。これらのバージョンは、Oracle Java SE サポート ロードマップPremier サポートありとして掲載されています。

ネットワーク

Navigation SDK は接続の不安定さにどのように対処しますか?
Navigation SDK は、各ジャーニーのルートを事前キャッシュに保存します。事前キャッシュに保存される情報には、15 ~ 20 分間のルーティング情報と、ユーザーがルートから逸脱した場合の代替ルートが含まれます。Navigation SDK は、デバイスの GPS とセンサーを使用して位置を推定します。
オフライン モードは利用できますか?
いいえ。現時点では、Navigation SDK にはオフライン モードがありません。ただし、SDK はジャーニーのための事前キャッシュ情報を提供します。

データ

ルートの出発前に、行程内の停車地や目的地をすべて取得できますか?

はい。経路の経路を取得するには、Navigator.getRouteSegments() を呼び出します。

ルートの始点にターンバイターンのルート案内を利用できますか?
はい。Navigation SDK には、ルート セグメントのリストが用意されています。また、ユーザーはヘッダーの経路カードをスワイプして、各操作を表示できます。
到着予定時刻はアプリのユーザーにどのようにして通知されますか?

到着予定時刻をアプリユーザーに提示する手順は次のとおりです。

  1. Navigator.getTimeAndDistanceList() を使用して、すべての地点の時間と距離を取得します。
  2. ドライバの ETA の場合と同様に、この情報をクライアント アプリケーションに転送します。
ナビゲーションがフォアグラウンドにない場合、RoadSnappedLocationProvider を使用してユーザーの現在のスナップ位置情報を取得できますか?

はい。デフォルトでは、RoadSnappedLocationProvider はバックグラウンドで実行されます。

Navigation SDK はジオフェンスをサポートしていますか?

いいえ。ナビゲーションのコンテキストでは、remainingTimeOrdistanceChangeListener はジオフェンスより有利です。ジオフェンスは道路のジオメトリを考慮しておらず、ユーザーが移動している正確な地点の中央に配置されていない可能性があります。

この特徴は、remainingTimeOrdistanceChangeListener を使用して概算できます。

  1. しきい値を設定して、コールバックの頻度を決定します。
  2. 目的地までの残りの距離を確認します。

たとえば、しきい値を 100 m に設定した場合、目的地までの距離が 100 m 変化したときにコールバックを受信します。距離が短くなると、このしきい値を小さな値に更新して、コールバックを頻繁に受け取ることができます。次に、残りの距離を調べて、乗車場所/降車場所まで十分に近くにあるかどうかを確認します。

ナビゲーション アプリがバックグラウンドのときに通知を無効にすることはできますか?

はい。Navigator.setHeadsUpNotificationEnabled を使用して通知を制御します。このメソッドにはブール値の引数があります。FALSE は通知を無効にします。TRUE は通知を有効にします。

トランザクション レコーダーは、一意の ID で乗車と降車を追跡します。この ID は Google が商品の分析のためにログに記録します。モビリティ サービスをご利用の場合は、NavigationTransactionRecorder を実装してトランザクションの記録を記録することをおすすめします。

UI のカスタマイズ

最適なルートのオプションを色分けすることはできますか?
いいえ。現時点では、特定の経路オプションを色分けすることはできません。
Navigation SDK で最終目的地の到着予定時刻を表示できますか?

はい。以下の方法を使用します。

  1. Navigator.getTimeAndDistanceList() を使用して、すべての地点の時間と距離を取得します。
  2. NavigationFragment.setEtaCardEnabled(false) を使用して、現在の地点の到着予定時刻を非表示にします。
  3. 最終目的地の到着予定時刻をレンダリングする。
到着予定時刻の更新情報を非表示にするにはどうすればよいですか?

到着予定時刻カードを無効にするには navigationView.setEtaCardEnabled(false) を呼び出します。

ヘッダーカードとフッターカードでは、どのような UI をカスタマイズできますか?

背景色のスタイルを設定するには、StylingOptions を使用します。ヘッダーとフッターの表示 / 非表示を切り替えるには、NavigationFragmentsetHeaderEnabled メンバー関数と setFooterEnabled メンバー関数を使用します。

ルーティング

特定のルートをユーザーに提供したり、代替ルートを削除したりすることはできますか?
いいえ。デフォルトでは、複数のルートが提供され、最速ルートが優先されます。 「高速道路と有料道路を使わない」などの設定をリクエストに追加することで、デフォルト ルートを変更できます。地点を追加するとルートにも影響します。
アプリのユーザーに、デフォルトのデスティネーション ロケーションとは異なるデスティネーション ラベルを表示できますか?

はい。目的地のカスタム タイトルと緯度と経度を指定して Marker を作成します。Navigation SDK により、カスタム タイトルと座標が NavigationMap に表示されます。

Navigation SDK を使用して、定義されたパスからの逸脱を追跡できますか?

はい。ルートが変更された場合や新しいルートが推奨されたときに通知を受け取るには、Navigator.setRouteChangedListener を使用します。

  1. Navigator.setRouteChangedListener メソッドを使用して、ルート上のデバイスの位置を確認するリスナーを登録します。
  2. コールバック イベント ハンドラ onRouteChanged にコードを追加します。
    • 更新された到着予定時刻と距離情報を含むメッセージをアプリのユーザーに送信します。
    • デバイスの位置情報を追跡します。
    • (省略可)ユーザーが所定のルートから外れた場合に処理できるように、アプリが必要とするその他の機能を追加します。
ユーザーはルートを完了せずにナビを終了できますか?

はい。Navigator.stopGuidance() メソッドを呼び出して、ナビゲーションを停止します。

シミュレータ

シミュレータはルートの変更をサポートしていますか?

はい。simulateLocationsAlongNewRoute を呼び出して、ルートの変更を伴う移動をシミュレートします。simulateLocationsAlongExistingRoute メソッドは、既存のルートへの変更を無視します。

Workflows

ナビゲーション フラグメントを含むアクティビティを閉じた後、通知を閉じるにはどうすればよいですか?

ナビゲーション通知は、アクティビティが閉じられても、ナビゲーション中は引き続き表示されます。車両が目的地に到着すると、ナビゲーションが停止し、通知は表示されなくなります。

通知のクリックを処理するには、Navigator.startGuidance(intent resumeIntent) を使用します。resume intent は、アプリユーザーが通知をクリックすると起動されます。通常、Navigator.startguidance(getIntent()) はメイン アクティビティから呼び出されます。メイン アクティビティは、アプリユーザーが通知をクリックするとアクティビティを呼び出します。