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

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

ComputeRouteMatrix は、出発地と目的地のペアのリストを基に、各出発地から各目的地までのルートの距離と所要時間を計算します。ストリームの各要素は 1 つの経路の情報に対応しています。

ComputeRouteMatrix メソッドには、距離行列サービスに比べて次のような利点があります。

  • ストリーミングでは、行列全体が計算される前に要素を返すことができるため、レイテンシを短縮できます。
  • 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 リポジトリから必要な protobuffers をチェックアウトします。

    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 メソッドの際立った機能の一つは、ストリーム全体または個々の要素に対してエラーコードを返すことができることです。たとえば、リクエストの形式が正しくない場合(送信元がゼロなど)は、ストリーム接続でエラーが返されます。ただし、エラーがストリームの一部の要素にのみ適用される場合(たとえば、オリジンに無効なプレイス ID が設定されている場合)、エラーの影響を受ける要素にのみエラーコードが含まれます。

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

通行料の計算

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

通行料金の計算例については、経路行列の例の計算をご覧ください。