Android Automotive のインテント用 Google マップ

このプロダクト/機能は変更される予定であり、サービスレベル契約(SLA)や非推奨ポリシーの対象ではありません。実装は今後のリリースで変更される可能性があります。

このドキュメントに付属のサンプル ソフトウェア、データファイル、ソースコードについて: このプロダクトは「現状有姿」で提供され、いかなる保証も提供されません。Google は、商品性、特定目的への適合性、およびこのプロダクトに関連する権利の侵害がないことに関する保証を含めて(ただしこれらに限定されない)、明示的、黙示的、法定、その他のいかなる保証も明示的に放棄します。


Android Automotive インテントを使用して、Google マップでナビを起動できます。

詳しくは、Android 向け Google マップ インテントをご覧ください。

Android Auto または Android Automotive OS を搭載した自動車向けにアプリを作成する場合の詳細については、自動車向け Android をご覧ください。

概要

このページでは、Android Automotive 向け Google マップで使用できるインテントを説明します。Android デベロッパー向けの詳細なドキュメントについては、以下をご覧ください。

インテント リクエスト

インテントを使用して Android Automotive 版 Google マップを起動するには、まず Intent オブジェクトを作成し、そのアクション、URI、パッケージを指定する必要があります。

  • アクション。すべての Google マップのインテントは、ビュー アクション ACTION_VIEW として呼び出されます。

  • URI。Google マップのインテントでは、目的のアクションを指定する URI エンコード文字列と、そのアクションを実行するためのデータが使用されます。

  • パッケージ。setPackage("com.google.android.apps.maps") を呼び出すと、Android 版 Google マップ アプリが Intent を処理します。パッケージが設定されていない場合、システムはインテントを処理できるアプリを決定します。複数のアプリが使用可能な場合は、使用するアプリを尋ねられることがあります。

インテントを作成したら、さまざまな方法で関連アプリを起動するようシステムにリクエストできます。一般的な方法は、Intent を startActivity() メソッドに渡すことです。システムは必要なアプリ(この場合は Google マップ)を起動し、対応するアクティビティを開始します。

// Create a Uri from an intent string. Use the result to create an Intent.
Uri mapIntentUri =
Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
// Create an Intent from mapIntentUri. Set the action to ACTION_VIEW
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
// Make the Intent explicit by setting the Google Maps package
mapIntent.setPackage("com.google.android.apps.maps");
// Attempt to start an activity that can handle the Intent
startActivity(mapIntent);

インテントに応答できるアプリをシステムが特定できない場合、アプリがクラッシュする可能性があります。そのため、これらのインテントのいずれかをユーザーに提示する前に、受信側のアプリがインストールされていることを確認してください。

インテントを受け取るアプリが利用可能かどうかを確認するには、Intent オブジェクトで resolveActivity() を呼び出します。結果が null でない場合、インテントを処理できるアプリが少なくとも 1 つあり、startActivity() を安全に呼び出すことができます。結果が null の場合は、インテントを使用せず、可能であればインテントを呼び出す機能を無効にしてください。

if (mapIntent.resolveActivity(getPackageManager()) != null) {
...
}

たとえば、シドニーの Taronga Zoo へのルート案内を開始するには、次のコードを使用します。

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}

URI エンコードされたクエリ文字列

Google マップ インテントに渡す文字列はすべて URI エンコードする必要があります。たとえば、文字列「1st & Pike, Seattle」は 1st%20%26%20Pike%2C%20Seattle にする必要があります。文字列内のスペースは、%20 でエンコードするか、プラス記号(+)に置き換えることができます。

android.net.Uri parse() メソッドを使用して文字列をエンコードできます。次に例を示します。

Uri mapIntentUri = Uri.parse("google.navigation:q=" + Uri.encode("1st & Pike, Seattle"));

ターンバイターン方式のナビを起動する

このインテントを使用すると、指定された 1 つ以上の住所または座標へのターンバイターン方式のルート案内を表示する Google マップ ナビを起動できます。ルート案内は常にユーザーの現在地から行われます。

google.navigation:q=a+street+address
google.navigation:q=latitude,longitude
google.navigation:place=placename

パラメータ

ナビゲーションを起動するには、place または qwaypoints を指定します(省略可)。必要に応じて、ウェイポイントを充電スタンドとしてマークするには、電気自動車のルートプランを Google マップに送信するをご覧ください。

  • q は、ナビゲーション検索の終点を設定するものです。これは、緯度/経度またはクエリ形式の住所です。複数の結果を返すクエリ文字列の場合は、最初の結果が選択されます。

  • place は、エンドポイントを自宅または職場に設定します。ユーザーの自宅にナビを設定するには「home」、職場にナビを設定するには「work」を指定します。

  • avoid は、ルートが避けるべき特徴を設定します。avoid は省略可能で、次のいずれかに設定できます。

    • t: 有料道路
    • h: 高速道路
    • フェリーの場合は f
  • waypoints は、q で指定された最終目的地にルートを設定する中間地点を 1 つ以上指定します。複数のウェイポイントを指定する場合は、パイプ文字(|)を使用して場所を区切ります(例: Berlin,Germany|Paris,France)。必要な数だけウェイポイントを使用できます。ウェイポイントは、URL に表示されている順序でルートに追加されます。各ウェイポイントは、住所またはカンマ区切りの緯度と経度の座標のいずれかです。同じインテント内に住所と緯度 / 経度の座標を含めることができます。文字列はURL エスケープする必要があります。そのため、「ベルリン、ドイツ|パリ、フランス」などのウェイポイントは Berlin%2CGermany%7CParis%2CFrance に変換する必要があります。

このインテントは、オーストラリアのシドニーにあるタロンガ動物園へのターンバイターン ナビゲーションをリクエストします。

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

通行料を支払ったりフェリーに乗ったりしたくない場合は、通行料やフェリーを回避するルートをリクエストできます。

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&avoid=tf");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

自宅にナビを設定する場合は、次のようにします。

Uri mapIntentUri = Uri.parse("google.navigation:place=home");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

次の 3 つの住所を順番に案内するルート案内を開始するには、最終目的地 q として Taronga Zoo を指定します。また、Google Sydney と Sydney Opera House を経由地点として指定します。

  1. Google シドニー

  2. シドニー オペラハウス

  3. タロンガ動物園(シドニー、オーストラリア)

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7CSydney+Opera+House");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

q と同様に、任意のルートポイントを、住所ではなくカンマ区切りの緯度と経度で表すことができます。たとえば、住所ではなくシドニー オペラハウスの緯度経度を渡しながら、同じナビを起動するには、次のようにします。

Uri mapIntentUri = Uri.parse("google.navigation:q=Taronga+Zoo,+Sydney+Australia&waypoints=Google+Sydney%7C-33.856159,151.215256");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

電気自動車のルート計画を Google マップに送信する

この複数の目的地ナビゲーション インテントを使用して、一部の目的地を電気自動車(EV)の充電スタンドとして指定します。このインテントは マルチウェイポイント インテントを拡張したもので、EV のルート検索アプリと Google マップ間で充電スタンド情報を同期することで、ドライバーが目的地に到着するまでに十分な電気自動車のバッテリー残量を維持できるようにします。

充電スタンドの場合、ルートの目的は次のとおりです。

  • 名前と緯度と経度を含める必要があります
  • 充電時間の計算に使用される出力電力を任意で含めることができます

Google は、充電スタンドの名前と緯度経度を使用して、一致する充電スタンドを見つけ、コネクタの種類、合計、速度、リアルタイムの空き状況、サポートされているお支払い方法、ホストのスポット(POI)などの豊富なデータを表示します。たとえば、ナビゲーションの最後の部分の屋外駐車場内のルート案内、営業時間、評価などです。充電スタンドが Google データと確実に一致するようにするには、<brand name> を使用します(例: ChargePoint)。

パラメータ

最終目的地

充電スタンドを最終目的地として設定するには、次を使用します。

  • q: 充電スタンドの緯度と経度の値を含める必要があります。
  • q_type: 1 は、最終目的地が充電スタンドであることを指定します。
  • q_name: 最終的な宛先の名前。q_type1 の場合は必須です。
  • q_power_output_kw: 充電スタンドの出力電力をキロワットで表した倍精度浮動小数点数。省略可。

ウェイポイント

ウェイポイントの場合、すべてのパラメータは、ウェイポイントと同じ順序で値の配列を |- で区切って並列に指定します(最終目的地は含めません)。並列配列内の要素数が一致しない場合は、形式が正しくないインテントとして扱われます。

充電スタンドのウェイポイントを 1 つ以上追加するには、次のパラメータを使用します。これらはすべて省略可能です。目的地の 1 つが充電スタンドとしてマークされている場合、その目的地ではウェイポイント名の入力が必須になります。

  • waypoints: ターンバイターン ナビゲーション インテントについて説明したウェイポイントのリスト。充電スタンドのウェイポイントの場合は緯度経度値にする必要があります。

  • waypoint_types: ウェイポイントあたりのタイプを数値で指定します。0 は任意の停留所(デフォルト値)で、1 は充電スタンドです。

  • waypoint_names: ウェイポイント名。このフィールドは充電スタンドに必須です。

  • waypoint_power_outputs_kw: 充電スタンドの電力(キロワット)の浮動小数点数。充電スタンドの場合は、必要に応じてウェイポイントの電力出力値を指定できます。これは、一致する充電スタンドが見つからない場合のフォールバックとして使用されます。空のスロットは、値が指定されていないことを意味します。

ユーザー エクスペリエンス(UX)の動作

複数の目的地を含むルート インテントの場合、ルートの概要画面は表示されますが、ナビゲーションは自動的に開始されません。

正しくフォーマットされたインテントの場合に、Google マップにはルートの概要画面が表示されます。ルートの概要画面には、インテントから取得したすべてのウェイポイントと最終目的地が表示され、該当する場合は充電の推奨事項も表示されます。

充電スタンドとしてマークされた経由地や最終目的地については、Google マップが Google のデータベースで一致する場所を検索します。

一致が見つかった場合、Google マップは Google のデータを使用して、充電スタンドをユーザー インターフェース(UI)に表示し、充電スタンドの充電に関する推奨事項を提供します。一致が見つからない場合、充電スタンドのインテントで指定されたデータ(緯度と経度、名前、出力電力)を使用して、この充電スタンドが UI に表示され、この充電スタンドでの充電に関する推奨事項が提供されます。

複数の充電スタンドを経由して最終目的地にナビする

次のインテントでは、2 つの充電スタンド(ChargePoint と Evie)を経由して最終目的地の Port Macquarie NSW までナビします。

リンク先の順序:

  1. ChargePoint 充電スタンド(場所: -32.9599188,151.6240806、電力出力: 6.6 kw)

  2. Evie 充電スタンド(場所: -31.9432539,152.4699808、出力: 350 kw)

  3. ポート マクワリー(ニュー サウス ウェールズ州)

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=Port+Macquarie+NSW"
            + "&waypoints=-32.9599188%2C151.6240806%7C-31.9432539%2C152.4699808"
            + "&waypoint_types=1%7C1"
            + "&waypoint_names=ChargePoint+Charging+Station%7CEvie+Charging+Station"
            + "&waypoint_power_outputs_kw=6.6%7C350");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

不明な電力出力

出力電力の値が不明な場合は、waypoint_power_outputs_kw の該当するスロットを空白のままにします。すべてのスロットが空の場合は、waypoint_power_outputs_kw パラメータを指定する必要はありません。

リンク先の順序:

  1. ChargePoint 充電スタンド(場所: -32.9599188,151.6240806、電力出力: 不明)

  2. ポート マクワリー(ニュー サウス ウェールズ州)

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=Port+Macquarie+NSW"
            + "&waypoints=-32.9599188%2C151.6240806"
            + "&waypoint_types=1"
            + "&waypoint_names=ChargePoint+Charging+Station");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

最終目的地を充電スタンドとしてマークする

最終目的地を充電スタンドとしてマークするには、q_typeq_nameq_power_output_kw パラメータを指定します。

リンク先の順序:

  1. タロンガ動物園(シドニー、オーストラリア)

  2. ChargePoint 充電スタンド(場所: -32.9599188,151.6240806、電力出力: 不明)

  3. Evie 充電スタンド(場所: -31.9432539,152.4699808、出力: 350 kw)

Uri mapIntentUri =
    Uri.parse(
        "google.navigation:q=-31.9432539,152.4699808&q_type=1&q_name=Evie+Charging+Station&q_power_output_kw=350"
            + "&waypoints=Taronga+Zoo%2C+Sydney+Australia%7C-32.9599188%2C151.6240806"
            + "&waypoint_types=0%7C1"
            + "&waypoint_names=%7CChargePoint+Charging+Station"
            + "&waypoint_power_outputs_kw=%7C");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapIntentUri);
mapIntent.setPackage("com.google.android.apps.maps");
startActivity(mapIntent);

アクション インテント

インターフェースを使用する次のアクション インテントを使用できます。

アクション 説明
geo.action:?act=mute すべてのナビの音声案内をミュートします。
geo.action:?act=unmute ナビの音声案内のミュートを解除します。
geo.action:?act=show_traffic 地図上に交通状況の線を表示します。
geo.action:?act=hide_traffic 地図上の交通状況の線を非表示にします。
geo.action:?act=show_satellite 地図上に衛星画像を表示します。
geo.action:?act=hide_satellite 地図上の衛星画像を非表示にします。
geo.action:?act=query_next_turn Google マップが次の曲がり角を読み上げます(ナビゲーション中のみ機能します)。
geo.action:?act=distance_to_next_turn Google マップが次の曲がり角までの距離を読み上げます(ナビゲーション中のみ機能します)。
geo.action:?act=time_to_next_turn Google マップが次の曲がり角までの所要時間を読み上げます(ナビゲーション中のみ機能します)。
geo.action:?act=distance_to_destination Google マップが目的地までの距離を読み上げます(ナビゲーション中のみ機能します)。
geo.action:?act=go_back Google マップが UI の前の画面に移動します。
geo.action:?act=query_current_road Google マップが現在の道路を読み上げます。
geo.action:?act=query_destination Google マップが目的地を読み上げます。
geo.action:?act=apply_electric_vehicle_connector_filter 電気自動車充電スタンドの検索結果にコネクタ タイプのフィルタを適用します。
geo.action:?act=remove_electric_vehicle_connector_filter 電気自動車充電スタンドの検索結果からコネクタ タイプのフィルタを削除しました。
geo.action:?act=apply_electric_vehicle_payment_filter 電気自動車充電スタンドの検索結果に支払いフィルタを適用します。
geo.action:?act=remove_electric_vehicle_payment_filter 電気自動車充電スタンドの検索結果のお支払い方法のフィルタを削除しました。
geo.action:?act=apply_electric_vehicle_fast_charging_filter 電気自動車充電スタンドの検索結果に急速充電フィルタを適用します。
geo.action:?act=remove_electric_vehicle_fast_charging_filter 電気自動車充電スタンドの検索結果から急速充電フィルタを削除しました。
geo.action:?act=avoid_tolls ユーザーがナビを使用している場合は、通行料が必要なルートを避けるよう Google マップに指示します。 現在のルートに通行料が含まれている場合、ルートの変更が必要になることがあります。
geo.action:?act=allow_tolls ユーザーがナビを使用している場合は、通行料が必要なルートを許可するよう Google マップに指示します。 通行料を許可するとより良いルートを利用できる場合は、ルートの変更が行われることがあります。
geo.action:?act=avoid_ferries ユーザーがナビを使用している場合は、フェリーがあるルートを回避するよう Google マップに指示します。現在のアクティブなルートにフェリーがある場合、ルートの変更が行われることがあります。
geo.action:?act=allow_ferries ユーザーがナビを使用している場合は、フェリーを含む経路を許可するよう Google マップに指示します。フェリーを許可するとより良いルートを利用できる場合は、ルートの変更が行われることがあります。
geo.action:?act=avoid_highways ユーザーがナビを使用している場合は、高速道路を含むルートを回避するよう Google マップに指示します。現在のアクティブなルートに高速道路が含まれている場合、ルート変更が発生することがあります。
geo.action:?act=allow_highways ユーザーがナビを使用している場合は、高速道路を含むルートを許可するよう Google マップに指示します。高速道路を許可するとより良いルートを利用できる場合は、ルートの変更が行われることがあります。
geo.action:?act=eta ユーザーがナビゲーションを使用している場合、Google マップは目的地の到着予定時刻(午前 9 時 15 分など)を読み上げます。
geo.action:?act=time_to_destination ユーザーがナビを使用している場合、Google マップは目的地までの所要時間(15 分など)を読み上げます。
geo.action:?act=exit_navigation ナビを終了します。
geo.action:?act=select_search_result&id=0 検索結果が現在画面に表示されている場合(下記を参照)、指定された ID パラメータに基づいて n 番目の検索結果へのナビゲーションを開始します。インデックスは 0 ベースです(つまり、上記のインテントではリスト内の最初の結果が選択されます)。

画面に表示される検索結果