Method: computeRouteMatrix

出発地と目的地のリストを受け取ると、出発地と目的地の組み合わせごとにルート情報が含まれるストリームを返します。

注: このメソッドでは、入力にレスポンス フィールド マスクを指定する必要があります。レスポンス フィールド マスクは、URL パラメータ $fields または fields を使用するか、HTTP/gRPC ヘッダー X-Goog-FieldMask を使用して指定できます(使用可能な URL パラメータとヘッダーをご覧ください)。値は、フィールドパスのカンマ区切りのリストです。フィールドパスの作成方法に関する詳細なドキュメントをご覧ください。

たとえば、このメソッドでは次のようにします。

  • 使用可能なすべてのフィールドのフィールド マスク(手動検査用): X-Goog-FieldMask: *
  • ルートの所要時間、距離、要素のステータス、状態、要素のインデックスのフィールド マスク(本番環境の設定例): X-Goog-FieldMask: originIndex,destinationIndex,status,condition,distanceMeters,duration

フィールドマスクに status を含めることが重要です。含めないと、すべてのメッセージが OK と表示されます。ワイルドカード(*)レスポンス フィールド マスクの使用は推奨されません。その理由は次のとおりです。

  • 必要なフィールドのみを選択すると、サーバーの計算サイクルを節約できるため、レイテンシを短縮して結果を返すことができます。
  • 本番環境ジョブで必要なフィールドのみを選択すると、レイテンシのパフォーマンスが安定します。今後、レスポンス フィールドが追加される可能性があります。追加されたフィールドによって計算時間が長くなる可能性があります。すべてのフィールドを選択した場合、または最上位レベルですべてのフィールドを選択した場合、追加された新しいフィールドがレスポンスに自動的に含まれるため、パフォーマンスが低下する可能性があります。
  • 必要なフィールドのみを選択すると、レスポンス サイズが小さくなり、ネットワーク スループットが向上します。

HTTP リクエスト

POST https://routes.googleapis.com/distanceMatrix/v2:computeRouteMatrix

この URL は gRPC Transcoding 構文を使用します。

リクエストの本文

リクエストの本文には、次の構造のデータが含まれます。

JSON 表現
{
  "origins": [
    {
      object (RouteMatrixOrigin)
    }
  ],
  "destinations": [
    {
      object (RouteMatrixDestination)
    }
  ],
  "travelMode": enum (RouteTravelMode),
  "routingPreference": enum (RoutingPreference),
  "departureTime": string,
  "arrivalTime": string,
  "languageCode": string,
  "regionCode": string,
  "units": enum (Units),
  "extraComputations": [
    enum (ExtraComputation)
  ],
  "trafficModel": enum (TrafficModel),
  "transitPreferences": {
    object (TransitPreferences)
  }
}
フィールド
origins[]

object (RouteMatrixOrigin)

必須。送信元の配列。レスポンス マトリックスの行を決定します。送信元と送信先の基数には、いくつかのサイズ制限が適用されます。

  • placeId または address として指定する出発地の数と目的地の数の合計は 50 以下にする必要があります。
  • いずれの場合も、出発地の数 × 目的地の数の積は 625 以下にする必要があります。
  • routingPreference が TRAFFIC_AWARE_OPTIMAL に設定されている場合、出発地の数と目的地の数の積は 100 以下にする必要があります。
  • travelMode が TRANSIT に設定されている場合、出発地の数と目的地の数の積は 100 以下にする必要があります。
destinations[]

object (RouteMatrixDestination)

必須。デスティネーションの配列。レスポンス マトリックスの列を決定します。

travelMode

enum (RouteTravelMode)

省略可。移動手段を指定します。

routingPreference

enum (RoutingPreference)

省略可。ルートの計算方法を指定します。サーバーは、選択したルーティング設定を使用してルートを計算しようとします。ルーティング設定でエラーが発生した場合やレイテンシが長すぎる場合は、エラーが返されます。このオプションを指定できるのは、travelModeDRIVE または TWO_WHEELER の場合のみです。それ以外の場合は、リクエストが失敗します。

departureTime

string (Timestamp format)

省略可。出発時刻。この値を設定しない場合は、デフォルトでリクエストを行った時刻になります。注: 過去の departureTime を指定できるのは、RouteTravelModeTRANSIT に設定されている場合のみです。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

arrivalTime

string (Timestamp format)

省略可。到着時刻。注: RouteTravelModeTRANSIT に設定されている場合にのみ設定できます。departureTime または arrivalTime のどちらか一方だけ指定できます。

RFC3339 UTC「Zulu」形式のタイムスタンプ。精度はナノ秒まで、小数点以下は最大 9 桁。例: "2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

languageCode

string

省略可。「en-US」や「sr-Latn」などの BCP-47 言語コード。詳しくは、Unicode ロケール識別子をご覧ください。サポートされている言語の一覧については、言語サポートをご覧ください。この値を指定しない場合、表示言語は最初の送信元の場所から推測されます。

regionCode

string

省略可。ccTLD(「トップレベル ドメイン」)の 2 文字の値として指定される地域コード。詳細については、国コード トップレベル ドメインをご覧ください。

units

enum (Units)

省略可。表示フィールドの測定単位を指定します。

extraComputations[]

enum (ExtraComputation)

省略可。リクエストの完了に使用できる追加の計算のリスト。注: これらの追加計算により、レスポンスに追加のフィールドが返される場合があります。これらの追加フィールドは、レスポンスで返されるようにフィールドマスクで指定する必要があります。

trafficModel

enum (TrafficModel)

省略可。所要時間を計算する上での仮定条件を指定します。この設定に応じて、RouteMatrixElement の duration フィールドに返される値が変わります。この値は、過去の平均データに基づく予測所要時間となります。RoutingPreferenceTRAFFIC_AWARE_OPTIMAL に、RouteTravelModeDRIVE にマッピング。トラフィックがリクエストされ、TrafficModel が指定されていない場合のデフォルトは BEST_GUESS です。

transitPreferences

object (TransitPreferences)

省略可。TRANSIT ルートで返されるルートに影響する設定を指定します。注: transitPreferences は、RouteTravelModeTRANSIT に設定されている場合にのみ指定できます。

レスポンスの本文

v2.computeRouteMatrix API で出発地と目的地のペアに対して計算されたルート情報が含まれます。このプロトコルはクライアントにストリーミングできます。

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

JSON 表現
{
  "status": {
    object (Status)
  },
  "condition": enum (RouteMatrixElementCondition),
  "distanceMeters": integer,
  "duration": string,
  "staticDuration": string,
  "travelAdvisory": {
    object (RouteTravelAdvisory)
  },
  "fallbackInfo": {
    object (FallbackInfo)
  },
  "localizedValues": {
    object (LocalizedValues)
  },
  "originIndex": integer,
  "destinationIndex": integer
}
フィールド
status

object (Status)

この要素のエラー ステータス コード。

condition

enum (RouteMatrixElementCondition)

ルートが見つかったかどうかを示します。ステータスに関係なく。

distanceMeters

integer

ルートの移動距離(メートル単位)。

duration

string (Duration format)

ルートを移動するのに必要な時間。routingPreferenceTRAFFIC_UNAWARE に設定すると、この値は staticDuration と同じになります。routingPreferenceTRAFFIC_AWARE または TRAFFIC_AWARE_OPTIMAL に設定すると、この値は交通状況を考慮して計算されます。

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

staticDuration

string (Duration format)

交通状況を考慮しないルートの所要時間。

s で終わる小数 9 桁までの秒単位の期間。例: "3.5s"

travelAdvisory

object (RouteTravelAdvisory)

ルートに関する追加情報。例: 制限情報、通行料情報

fallbackInfo

object (FallbackInfo)

サーバーがこの特定の出発地/目的地のペアについて指定された設定でルートを計算できない場合、別の計算モードを使用することがあります。フォールバック モードが使用されている場合、このフィールドにはフォールバック レスポンスに関する詳細情報が含まれます。それ以外の場合、このフィールドは設定されません。

localizedValues

object (LocalizedValues)

RouteMatrixElement のプロパティのテキスト表現。

originIndex

integer

リクエストの送信元のゼロベースのインデックス。

destinationIndex

integer

リクエスト内の宛先のゼロベースのインデックス。

RouteMatrixOrigin

ComputeRouteMatrixRequest の単一オリジン

JSON 表現
{
  "waypoint": {
    object (Waypoint)
  },
  "routeModifiers": {
    object (RouteModifiers)
  }
}
フィールド
waypoint

object (Waypoint)

必須。出発地のウェイポイント

routeModifiers

object (RouteModifiers)

省略可。これを出発地とするすべてのルートの修飾子

RouteMatrixDestination

ComputeRouteMatrixRequest の単一の宛先

JSON 表現
{
  "waypoint": {
    object (Waypoint)
  }
}
フィールド
waypoint

object (Waypoint)

必須。目的地のウェイポイント

ExtraComputation

リクエストの完了時に実行する追加の計算。

列挙型
EXTRA_COMPUTATION_UNSPECIFIED 使用されません。この値を含むリクエストは失敗します。
TOLLS マトリックス要素の通行料に関する情報。

RouteMatrixElementCondition

返されるルートの状態。

列挙型
ROUTE_MATRIX_ELEMENT_CONDITION_UNSPECIFIED 要素の status が OK でない場合にのみ使用されます。
ROUTE_EXISTS ルートが見つかると、要素に該当する情報が入力されます。
ROUTE_NOT_FOUND 経路が見つかりませんでした。ルート情報を含むフィールド(distanceMetersduration など)は、この要素に入力されません。

LocalizedValues

特定のプロパティのテキスト表現。

JSON 表現
{
  "distance": {
    object (LocalizedText)
  },
  "duration": {
    object (LocalizedText)
  },
  "staticDuration": {
    object (LocalizedText)
  },
  "transitFare": {
    object (LocalizedText)
  }
}
フィールド
distance

object (LocalizedText)

移動距離をテキスト形式で表します。

duration

object (LocalizedText)

交通状況を考慮した所要時間をテキスト形式で表示します。注: 交通情報がリクエストされていない場合、この値は staticDuration と同じ値になります。

staticDuration

object (LocalizedText)

交通状況を考慮せず、テキスト形式で表した所要時間。

transitFare

object (LocalizedText)

交通機関の運賃をテキスト形式で表します。