Routes Preferred API の ComputeRouteMatrix
メソッドを使用して、複数の出発地と目的地のルートの距離と所要時間を計算できます。ComputeRouteMatrix
は、ストリーミング gRPC 呼び出しと REST HTTP 呼び出しの両方をサポートしています。
ComputeRouteMatrix
では、出発地と目的地のペアのリストが与えられると、各出発地から各目的地までのルートの距離と所要時間が計算されます。ストリームの各要素は 1 つの経路の情報に対応しています。
ComputeRouteMatrix
メソッドには、距離行列サービスと比べて次のような利点があります。
- ストリーミングでは、行列全体が計算される前に要素を返すことができるため、レイテンシを短縮できます。
ComputeRouteMatrix
にはトラフィック計算のためのきめ細かいオプションがあり、品質とレイテンシのトレードオフを決定できます。- リクエストは Google のインフラストラクチャ内で高い優先度で実行されるため、可用性が高くなります。
- ウェイポイントの向き(進行方向)と道路脇の情報を指定できます。
- 通行料金情報を、ルートの距離や到着予定時刻とともに返すようにリクエストできます。
ComputeRouteMatrix メソッドを有効にする
コードで ComputeRouteMatrix
メソッドを使用するには、このメソッドを有効にする必要があります。Routes Preferred API メソッドを有効にする方法については、スタートガイドをご覧ください。
ComputeRouteMatrix メソッドの使用
ComputeRouteMatrix
メソッドは、Routes Preferred v1 エンドポイントで使用できます。
詳細については、以下のドキュメントをご覧ください。
次の一般的な手順は、gRPC を使用して ComputeRouteMatrix
メソッドを呼び出す方法を示しています。
googleapis リポジトリから必要な protobuffers を確認します。
https://github.com/googleapis/googleapis/tree/master/google/maps/routes
ただし、Go などの一部のビルドシステムでは、この処理が自動的に行われます。
任意の言語とビルドツールを使用して、関連するプロトコルバッファ コードを生成します。
リクエストを生成します。リクエストで次の 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 をご覧ください。不要なフィールドを無効にすると、さらなる計算が必要になる可能性があるため、レイテンシを短縮できます。必要なフィールドを指定し、さらに計算を必要とする新しいフィールドが後で追加された場合、レイテンシは安定します。
リクエストを
routespreferred.googleapis.com:443
に送信します。TLS プロトコルを使用する必要があります。
ComputeRouteMatrix
メソッドの使用例については、ルート行列(ベータ版)の計算例をご覧ください。
ComputeRouteMatrix
メソッドの大きな特徴として、エラーコードはストリーム全体または個々の要素に対して返すことができます。たとえば、リクエストの形式が正しくない場合(送信元が 0 など)、ストリーム接続はエラーを返します。ただし、エラーがストリームの一部の要素にのみ適用される場合(たとえば、オリジンに対して無効なプレイス ID を設定した場合)、そのエラーの影響を受ける要素にのみエラーコードが含まれます。
ストリームによって返される要素が任意の順序で返されるとは限りません。このため、各要素には origin_index
と destination_index
が含まれています。リクエストで指定された出発地と目的地については、ルートの出発地は特定の要素の origins[origin_index]
と等価であり、ルートの目的地は destinations[destination_index]
と同等です。これらの配列にはゼロのインデックスが付きます。出発地と目的地のリストの注文を保存することが重要です。
通行料金の計算
通行料金の計算については、通行料金を計算するをご覧ください。
通行料金の計算例については、ルート行列の例の計算をご覧ください。