ルート マトリックスを計算する

Routes Preferred API の ComputeRouteMatrix メソッドを使用すると、複数の出発地と目的地間のルートの距離と所要時間を計算できます。ComputeRouteMatrix は、ストリーミング gRPC 呼び出しと REST HTTP 呼び出しの両方をサポートしています。

ComputeRouteMatrix は、出発地と目的地のペアのリストを受け取り、各出発地から各目的地に至るルートの距離と所要時間を計算します。ストリームの各要素は、単一のルートの情報に対応しています。

ComputeRouteMatrix メソッドには、Distance Matrix サービスよりもいくつかのメリットがあります。

  • ストリーミングにより、行列全体の計算が完了する前に要素を返すことができるため、レイテンシが短縮されます。
  • ComputeRouteMatrix には、交通状況の計算に関する詳細なオプションがあり、品質とレイテンシのトレードオフを決定できます。
  • リクエストは Google のインフラストラクチャ内で高い優先度で実行されるため、可用性が向上します。
  • 経由地の進行方向と道路の通行側の情報を指定できます。
  • ルートの距離と到着予定時刻とともに、通行料金の情報を返すようにリクエストできます。

ComputeRouteMatrix メソッドを有効にする

コードで ComputeRouteMatrix メソッドを使用するには、有効にする必要があります。Routes Preferred API メソッドの有効化の詳細については、スタートガイドをご覧ください。

ComputeRouteMatrix メソッドを使用する

ComputeRouteMatrix メソッドは、Routes Preferred v1 エンドポイントから使用できます。

詳細については、次のドキュメントをご覧ください。

gRPC: https://developers.google.com/maps/documentation/routes_preferred/reference/rpc/google.maps.routes.v1

REST: https://developers.google.com/maps/documentation/routes_preferred/reference/rest/v1/TopLevel/computeRouteMatrix

次の一般的な手順では、gRPC を使用して ComputeRouteMatrix メソッドを呼び出す方法について説明します。

  1. googleapis リポジトリから必要なプロトコル バッファをチェックアウトします。

    https://github.com/googleapis/googleapis/tree/master/google/maps/routes

    Go などの一部のビルドシステムでは、この処理が自動的に行われる場合があります。

  2. 使用する言語とビルドツールのセットを使用して、関連するプロトコル バッファ コードを生成します。

  3. リクエストを生成します。リクエストとともに、次の 2 つの必須メタデータを送信する必要があります。

    • X-Goog-Api-Key は API キーに設定する必要があります。
    • X-Goog-Fieldmask は、レスポンスから必要なフィールドのカンマ区切りのリストに設定する必要があります。たとえば、 X-Goog-FieldMask: originIndex,destinationIndex,duration,distanceMeters,status です。 ワイルドカード文字(*)を使用してすべてのフィールドを示すこともできますが、おすすめしません。ワイルドカード文字を使用して API レスポンスをテストして理解しますが、本番環境コードのフィールド マスクで必要なフィールドを明示的にリストします。

      フィールド マスク文字列の作成方法の詳細については、 https://github.com/protocolbuffers/protobuf/blob/master/src/google/protobuf/field_mask.protoをご覧ください。 不要なフィールドを無効にすると、それらのフィールドで追加の計算が必要になる可能性があるため、レイテンシを短縮できます。必要なフィールドを指定し、後で追加の計算が必要な新しいフィールドを追加すると、レイテンシは安定します。

  4. リクエストを routespreferred.googleapis.com:443 に送信します。TLS プロトコルを使用する必要があります。

ComputeRouteMatrix メソッドの使用例については、 ルート マトリックスの計算(ベータ版)の例をご覧ください。

ComputeRouteMatrix メソッドの特徴の 1 つは、ストリーム全体または個々の要素に対してエラーコードを返すことができる点です。たとえば、リクエストの形式が正しくない場合(出発地がゼロの場合など)は、ストリーム接続からエラーが返されます。ただし、エラーがストリームの少数の要素にのみ適用される場合(出発地に無効なプレイス ID を設定するなど)は、エラーの影響を受ける要素にのみエラーコードが含まれます。

ストリームから返される要素は、特定の順序で返されるとは限りません。そのため、各要素には origin_indexdestination_index が含まれています。リクエストで指定された出発地と目的地の場合、ルートの出発地は特定の要素の origins[origin_index] と同等であり、ルートの目的地は destinations[destination_index] と同等です。これらの配列はゼロ インデックスです。出発地と目的地のリストの順序を保存することが重要です。

通行料金の計算

通行料金の計算については、 通行料金を計算するをご覧ください。

通行料金の計算例については、 ルート マトリックスの計算例をご覧ください。