プラットフォームを選択: Android iOS

リアルタイムの交通情報を構成する

リアルタイムの交通情報とは、ルート上の交通情報をユーザーに通知する機能の集まりです。ユーザーは、遭遇した交通情報を報告したり、確認したりできます。 交通情報には、自動車事故、交通渋滞、警察や自動速度取締機の設置、工事、車線規制、特定の気象条件などが含まれます。このページでは、リアルタイムの交通情報機能とその構成オプションについて説明します。カスタム ナビゲーション UI を使用するアプリに関する考慮事項も含まれます。

リアルタイムの交通情報機能

Navigation SDK には、コア ナビゲーション エクスペリエンスの一部として、次のリアルタイムの交通情報機能が含まれています。

これらの機能は構成可能で、デフォルトで有効になっています。以降のセクションでは、機能と利用可能な構成オプションについて詳しく説明します。

ルート上のインタラクティブな交通情報吹き出し

アプリがルートをルートの概要またはナビゲーション使用時に表示すると、現在の交通情報がルート沿いに吹き出しとして表示されます。吹き出しには、交通情報の種類を示すアイコンが含まれます。

ルート沿いの吹き出し

setTrafficPromptsEnabled を使用して、ルート沿いの交通情報吹き出しの表示を制御できます。また、ユーザーが交通情報に近づいたときに自動アラートの表示を制御することもできます

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

ユーザーが吹き出しをタップしたときに交通情報の詳細を表示する

ユーザーは吹き出しをタップして、交通情報の種類、最後に報告された時刻、場合によっては交通情報がまだ存在するかどうかを投票するオプションなど、交通情報の詳細を含む情報カードを表示できます。表示される情報カードには 2 種類あり 、ユーザーがナビゲーションを使用しているかどうかによって異なります。構成 オプションは種類ごとに異なります。

ナビゲーションを開始する前のルートの概要の吹き出し情報カード

ユーザーがナビゲーションを開始する前にルートの概要の吹き出しをタップすると、交通情報の詳細を含む情報カードが表示されます。

概要情報カード

ユーザーがルートの概要の交通情報吹き出しをタップして詳細情報を表示できるかどうかは、setTrafficIncidentCardsEnabled を使用して制御できます。

// Using the SupportNavigationFragment
mNavFragment.setTrafficIncidentCardsEnabled(true);

// Using the NavigationView
navigationView.setTrafficIncidentCardsEnabled(true);

ナビゲーション使用時の吹き出し情報カード

ナビゲーション使用時にルート沿いに交通情報吹き出しが表示されたら、ユーザーは吹き出しをタップして、交通情報の種類や最後に報告された時刻など、交通情報の詳細を含む情報カードを表示できます。また、交通情報がまだ存在するかどうかを投票するボタンも表示されます。ユーザーが送信した投票は Google によって処理され、他の Google マップ ユーザーと Navigation SDK ユーザーの地図上に表示されることがあります。また、交通情報の表示を継続するかどうかの判断にも使用されます。

アクティブなナビゲーション情報カード

ナビゲーション使用時の交通情報吹き出しの表示とタップの可否は、 setTrafficPromptsEnabled を使用して制御できます。また、 ルート沿いの吹き出しの表示や、 ユーザーが交通情報に近づいたときに自動アラートの表示を制御することもできます。

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

ナビゲーション使用時の投票機能付きの自動交通情報アラート

ナビゲーション使用時に、ユーザーがルート沿いの交通情報に近づくと、 交通情報に関する情報と、交通情報がまだ存在するかどうかを投票するボタンを含むプロンプトが表示されます。ユーザーが送信した投票は Google によって処理され、他の Google マップ ユーザーと Navigation SDK ユーザーの地図上に表示されることがあります。また、交通情報の表示を継続するかどうかの判断にも使用されます。

アクティブなナビゲーション情報カード

ナビゲーション使用時のアラート プロンプトの表示は、 setTrafficPromptsEnabled を使用して構成できます。また、 ルート沿いの吹き出しの表示を制御することもできます。

// Using the SupportNavigationFragment
mNavFragment.setTrafficPromptsEnabled(true);

// Using the NavigationView
navigationView.setTrafficPromptsEnabled(true);

ナビゲーション使用時の交通情報報告

ナビゲーション モードの使用中は、ナビゲーション UI にボタンが表示され、ユーザーはルート沿いの新しい交通情報を報告できます。ユーザーがボタンをタップすると、報告可能な交通情報の種類を含むメニューが表示されます。ユーザーが送信した報告は Google によって処理され、他の Google マップ ユーザーと Navigation SDK ユーザーの地図上に表示されることがあります。

報告ボタン レポート メニュー

標準の報告ボタンの表示と非表示を切り替える

ナビゲーション使用時の標準の報告ボタンの表示設定は、 setReportIncidentButtonEnabled . を使用して構成できます。

// Enables the incident reporting button to show in situations where incident
// reporting is possible.

// Using the SupportNavigationFragment
mNavFragment.setReportIncidentButtonEnabled(true);

// Using the NavigationView
navigationView.setReportIncidentButtonEnabled(true);

カスタムの報告ボタンを追加する

標準の交通情報報告ボタンの代わりに、カスタムの報告ボタンをナビゲーション UI に追加できます。ユーザーがカスタムボタンをクリックすると、報告 メニューの表示をshowReportIncidentsPanel メソッドを呼び出してトリガーできます。カスタムの報告 ボタンを追加する前に、アプリがナビゲーションを使用していることと、ユーザーが報告 が有効になっている国にいることを確認するために isIncidentReportingAvailable を呼び出してください。どちらかが当てはまらない場合、 報告メニューは表示されません。

  Button customReportIncidentButton = findViewById(R.id.custom_reporting_button);
  
  // Check if reporting is available before displaying your button
  customReportIncidentButton.setVisibility(
      navigationView.isReportingAvailable ? View.VISIBLE : View.GONE);
  
  // Trigger the reporting flow if the button is clicked
  customReportIncidentButton.setOnClickListener(v ->
      navigationView.showReportIncidentsPanel());
  

カスタム ナビゲーション UI を操作する

Navigation SDK の実装にカスタム UI 要素が含まれている場合は、競合を避けるためにリアルタイムの交通情報要素を考慮する必要があります。

報告ボタンの位置

デフォルトでは、交通情報報告ボタンは地図の下端/末尾の隅に配置されます。左から右に読む言語の場合は右側、右から左に読む言語の場合は左側です。カスタム UI 要素のスペースを確保するために報告ボタンを移動する必要がある場合は、 BOTTOM_END_BELOW または FOOTER カスタム コントロールを追加します。これにより、ボタンの 位置が画面上で上に移動します。カスタム コントロール内に独自のカスタム UI を配置すると、Navigation SDK によって表示されるプロンプトが、表示中にカスタム UI 要素の上に適切に重ねて表示されます。カスタム コントロールを使用できない場合は、 プロンプト表示 API を使用して UI の競合を管理します。

プロンプト表示 API(試験運用版)

プロンプト表示 API を使用すると、Navigation SDK によって生成された UI 要素と独自のカスタム UI 要素の競合を回避できます。Navigation SDK UI 要素が表示される直前と、要素が削除された直後にコールバックを受信するリスナーを追加します。情報カード、プロンプト、交通情報報告メニューなど、リアルタイムの交通情報要素のコールバックを受信できます。また、Navigation SDK によって生成された他の通知のコールバックも受信できます。
// Sample listener
val listener: PromptVisibilityChangedListener = { isVisible ->
	if (isVisible) {
		customFab.visibility = false
		customFooter.visibility = false
		moveSomeOtherThingsAround()
	} else {
		customFab.visibility = true
		customFooter.visibility = true
		moveSomeThingsBackToWhereTheyWereBefore()
	}
}

// Inside onCreate()
navigationView.addPromptVisibilityChangedListener(listener)

// Inside onDestroy()
navigationView.removePromptVisibilityChangedListener(listener)