Routes API は現在プレビュー版(一般提供前)です。一般提供前のプロダクトや機能では、サポートが制限されることがあります。また、一般提供前のプロダクトや機能の変更は、他の一般提供前のバージョンと互換性がない可能性があります。一般提供前のサービスには、Google Maps Platform サービス固有の規約が適用されます。詳細については、リリース ステージの説明をご覧ください。

品質とレイテンシを構成する

コレクションでコンテンツを整理 必要に応じて、コンテンツの保存と分類を行います。

リクエストを行う際は、可能な限り正確な結果を返す方がよいか、可能な限り早く結果を返すかを判断する必要があります。Routes API には、レスポンス データの品質とレイテンシのレイテンシを制御するオプションがあります。

トラフィック データのレベルを構成する

Routes API には、RoutingPreference(REST)と RoutingPreference(gRPC)が用意されています。これらのルートを使用して、ルートを計算するためのルーティング設定を指定できます。これらの設定では、ルート計算に交通状況が考慮される範囲が異なります。ルーティングの設定ごとに、ルートの品質、推定 ETA、応答レイテンシに関して異なる結果が生成されます。

トラフィック条件は、トラフィック フローの速度を表します。例:

  • 渋滞が発生していない場合、交通状況は正常とみなされ、トラフィックは妨げられることなく一定の速度で流れます。
  • ラッシュアワーに近づくとトラフィック密度が増加するため、トラフィックが遅くなり、交通状況が中程度から中程度になります。
  • バンパーからバンパーへのトラフィックの場合、流量が急激に停止し、渋滞の原因になります。

トラフィックを認識しない

TRAFFIC_UNAWARE ルーティング設定を設定すると、現在の交通状況を考慮せずにルートが計算されます。このルーティング設定は、レスポンスのレイテンシを最も低くします(レスポンスが迅速に返されます)。

TRAFFIC_UNAWARE がデフォルト設定です。

レスポンス:

  • ETA は、duration レスポンス プロパティに含まれています。

  • durationstaticDuration のレスポンス プロパティには同じ値が含まれます。

ルーティングをほぼ迅速に返し、おおよそのルーティングの詳細で十分である場合は、このルーティング設定を使用します。

トラフィック認識

TRAFFIC_AWARE ルーティング設定を設定すると、現在の交通状況を考慮してルートが計算されます。そのため、ルートとルートの詳細には実際の条件がより正確に反映されています。データ品質の向上によってレスポンス レイテンシが犠牲になるため、レイテンシを大幅に短縮するためにパフォーマンスの最適化が適用されます。

レスポンス:

  • リアルタイムのトラフィックを考慮した到着予定時刻は duration レスポンス プロパティに含まれます。

  • staticDuration レスポンス プロパティには、交通状況を考慮しないルートの移動所要時間が格納されます。

TRAFFIC_UNAWARE よりも正確なルーティング詳細が必要な場合に、このルーティング設定を使用してください。ただし、ある程度のレイテンシの増加でレスポンスが返されても問題はありません。

トラフィック認識最適

TRAFFIC_AWARE_OPTIMAL ルーティング設定を設定すると、ルートは現在の交通状況を考慮したうえで計算されますが、パフォーマンスの最適化は適用されません。このモードでは、サーバーは最適なルートを見つけるために道路網をより詳細に検索します。

TRAFFIC_AWARE_OPTIMAL ルーティングの設定は、maps.google.com と Google マップ モバイルアプリで使用されるモードと同じです。

Compute Route Matrix でこのオプションを使用すると、リクエスト内の要素の数(出発地の数 × 宛先の数)は 100 を超えることはできません。Compute Route Matrix の上限の詳細については、ルート マトリックスの計算をご覧ください。

レスポンス:

  • リアルタイムのトラフィックを考慮した到着予定時刻は duration レスポンス プロパティに含まれます。

  • staticDuration レスポンス プロパティには、交通状況を考慮しないルートの移動所要時間が格納されます。

このルーティング設定は、最大のレイテンシ(つまり、最長の遅延でレスポンスを返す)を提供します。このルーティング設定は、レスポンスにかかる時間にかかわらず、高品質の結果が必要な場合に使用します。

出発時刻設定の影響

必要に応じて departureTime プロパティを使用し、希望する出発時刻を設定できます。departureTime プロパティを設定しない場合、リクエストを行うタイミングがデフォルトになります。

  • TRAFFIC_UNAWARE の場合、ルートと所要時間は道路網と平均的な交通状況(時間的な要素を考慮に入れない)に基づいて選択されるため、departureTime を設定することはできません。

  • 実際の交通状況を考慮する TRAFFIC_AWARETRAFFIC_AWARE_OPTIMAL では、departureTime が現在時刻に近いほど、実際の交通状況が重要になります。出発時刻を未来に設定するほど、過去の交通状況が考慮されるようになります。

ルーティング設定の例

次の JSON コードは、リクエスト メッセージ エンティティ本文でルーティング設定を設定する方法を示しています。

{
  "origin":{
    "location":{
      "latLng":{
        "latitude":37.419734,
        "longitude":-122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude":37.417670,
        "longitude":-122.079595
      }
    }
  },
  "travelMode":"DRIVE",
  "routingPreference":"TRAFFIC_AWARE_OPTIMAL"
}

ポリラインの品質を設定する

Routes API を使用すると、トラフィック認識ポリラインとともに交通状況に関する情報をリクエストできます。詳しくは、ポリラインのリクエストをご覧ください。

ポリラインの品質は、次の用語で表現できます。

  • ポリラインを構成する点の数

    ポイントが多いほど、ポリラインが滑らかになります(特に曲線)。

  • ポイントの浮動小数点精度

    ポイントは緯度と経度の値で指定され、単精度浮動小数点形式で表現されます。小さい値(正確に表現可能)の場合は問題ありませんが、浮動小数点の丸め誤差が原因で、値が増加すると精度が低下します。

computeRoutes メソッド(REST)と ComputeRoutes メソッド(gRPC)は、ポリラインの品質を管理する polylineQuality リクエスト オプションをサポートしています。

ポリラインの品質設定の例

polylineQuality は、ポリラインの品質を HIGH_QUALITY または OVERVIEW(デフォルト)で指定します。OVERVIEW では、ポリラインは少数のポイントを使用して構成され、HIGH_QUALITY よりもリクエストのレイテンシが低くなります。

たとえば、リクエスト本文は次のようになります。

{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.419734,
        "longitude": -122.0827784
      }
    }
  },
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.417670,
        "longitude": -122.079595
      }
    }
  },
  "travelMode": "DRIVE",
  "routingPreference": "TRAFFIC_AWARE",
  "polylineQuality": "HIGH_QUALITY",
  "polylineEncoding": "ENCODED_POLYLINE", 
  "departureTime": "2023-10-15T15:01:23.045123456Z",
  ...
}