Routes API は、ルートを計算する際に、入力として指定された経由地と構成パラメータを使用します。API は、デフォルト ルートと 1 つ以上の代替ルートを含むレスポンスを返します。
リクエストするフィールドに応じて、レスポンスにはさまざまな種類のルートやその他のデータを含めることができます。
レスポンスに含めるには | こちらのドキュメントをご覧ください |
---|---|
車両のエンジンの種類に応じた、燃料やエネルギー効率の最も良いルート。 | 環境に優しいルートを設定する |
最大 3 つの別の経路 | 別のルートをリクエストする |
ルート全体、ルートの各区間、区間の各ステップのポリライン。 | ルートのポリラインをリクエストする |
ドライバーまたは車両が利用できる通行料金の割引や通行証を考慮した推定通行料金。 | 通行料金を計算する |
言語コードと測定単位(ヤードポンド法またはメートル法)でローカライズされたレスポンス。 | ローカライズされた値をリクエストする |
ナビゲーション手順を HTML テキスト文字列として書式設定するには、extraComputations に HTML_FORMATTED_NAVIGATION_INSTRUCTIONS を追加します。 |
追加の計算 |
入力オプションの完全なリストについては、利用可能なルート オプションとリクエスト本文をご覧ください。
このレスポンスを使用して、お客様の要件に合った適切なルートを選択するために必要な情報を提供できます。
フィールド マスクについて
ルートを計算するメソッドを呼び出すときは、レスポンスで返されるフィールドを定義するフィールド マスクを指定する必要があります。返されるフィールドのデフォルト リストはありません。このリストを省略すると、メソッドはエラーを返します。
このドキュメントの例では、フィールド マスクを考慮せずにレスポンス オブジェクト全体を示しています。本番環境では、レスポンスにはフィールド マスクで明示的に指定したフィールドのみが含まれます。
詳細については、返す情報を選択するをご覧ください。
著作権の表示について
ユーザーに結果を表示する際は、次の著作権表示を含める必要があります。
Powered by Google, ©YEAR Google
次に例を示します。
Powered by Google, ©2023 Google
ルート、レッグ、ステップについて
Routes API から返されるレスポンスを確認する前に、ルートを構成するコンポーネントについて理解しておく必要があります。
レスポンスには、次の各ルート コンポーネントに関する情報が含まれる場合があります。
ルート: 出発地の経由地から、中間経由地を経由して、目的地の経由地までの全行程。ルートは 1 つ以上の区間で構成されます。
区間: ルート内の 1 つの経由地からルート内の次の経由地までの経路。各レッグは、1 つ以上の個別のステップで構成されます。
ルートには、各地点から次の地点までの経路の区間が個別に含まれています。たとえば、ルートに 1 つの出発地経由地と 1 つの目的地経由地が含まれている場合、ルートには 1 つの乗車区間が含まれます。出発地と目的地の後にルートに追加する経由地(中間経由地)ごとに、API は個別の区間を追加します。
API は、パススルーの中間地点のレッグを追加しません。たとえば、出発地点の経由地、通過型の中間経由地、目的地の経由地を含むルートには、経由地を通過しながら出発地点から目的地までの 1 つの区間のみが含まれます。通過地点の詳細については、通過地点を定義するをご覧ください。
ステップ: ルートの区間における 1 つの指示。ステップはルートの最小単位です。たとえば、「中央通りを左折します」と表示されます。
レスポンスの内容
API レスポンスを表す JSON オブジェクトには、次のトップレベル プロパティが含まれています。
routes
: Route 型の要素の配列。routes
配列には、API から返されたルートごとに 1 つの要素が含まれます。配列には、デフォルト ルート、環境に優しいルート、最大 3 つの代替ルートの最大 5 つの要素を含めることができます。geocodingResults
。GeocodingResults 型の要素の配列。リクエスト内のすべての場所(出発地、目的地、中間経由地)について、住所文字列または Plus Code として指定した場合、API はプレイス ID のルックアップを実行します。この配列の各要素には、場所に対応するプレイス ID が含まれています。リクエストでプレイス ID または緯度と経度の座標として指定された場所は含まれません。プレイス ID または緯度と経度の座標を使用してすべての場所を指定した場合、この配列は提供されません。fallbackInfo
。型は FallbackInfo です。API がすべての入力プロパティからルートを計算できない場合、別の計算方法にフォールバックすることがあります。フォールバック モードが使用されている場合、このフィールドにはフォールバック レスポンスに関する詳細情報が含まれます。それ以外の場合、このフィールドは設定されません。
レスポンスの形式は次のとおりです。
{ // The routes array. "routes": [ { object (Route) } ], // The place ID lookup results. "geocodingResults": [ { object (GeocodedWaypoint) } ], // The fallback property. "fallbackInfo": { object (FallbackInfo) } }
routes 配列を解読する
レスポンスには routes
配列が含まれます。各配列要素は Route 型です。配列の各要素は、出発地から目的地までのルート全体を表します。API は常にデフォルト ルートと呼ばれるルートを少なくとも 1 つ返します。
追加のルートをリクエストできます。環境に優しいルートをリクエストした場合、配列にはデフォルトのルートと環境に優しいルートの 2 つの要素を含めることができます。または、リクエストで computeAlternativeRoutes
を true
に設定して、レスポンスに最大 3 つの代替経路を追加します。
配列内の各ルートは、routeLabels
配列プロパティで識別されます。
値 | 説明 |
---|---|
DEFAULT_ROUTE |
デフォルト ルートを識別します。 |
FUEL_EFFICIENT |
環境に優しいルートを識別します。 |
DEFAULT_ROUTE_ALTERNATE |
I は代替ルートを示します。 |
legs
配列には、ルートの各区間の定義が含まれています。残りのプロパティ(distanceMeters
、duration
、polyline,
など)には、ルート全体に関する情報が含まれています。
{ "routeLabels": [ enum (RouteLabel) ], "legs": [ { object (RouteLeg) } ], "distanceMeters": integer, "duration": string, "routeLabels": [string], "staticDuration": string, "polyline": { object (Polyline) }, "description": string, "warnings": [ string ], "viewport": { object (Viewport) }, "travelAdvisory": { object (RouteTravelAdvisory) } "routeToken": string }
現在の運転状況などの要因により、デフォルトのルートと環境に優しいルートが同じになることがあります。この場合、routeLabels
配列には DEFAULT_ROUTE
と FUEL_EFFICIENT
の両方のラベルが含まれます。
{ "routes": [ { "routeLabels": [ "DEFAULT_ROUTE", "FUEL_EFFICIENT" ], … } ] }
legs 配列について
レスポンス内の各 route
には legs
配列が含まれます。各 legs
配列要素は RouteLeg 型です。配列内の各区間は、ルートに沿って 1 つの経由地から次の経由地までのパスを定義します。ルートには常に少なくとも 1 つのレッグが含まれます。
legs
プロパティには、steps
配列内の区間の各ステップの定義が含まれています。distanceMeters
、duration
、polyline
などの残りのプロパティには、区間に関する情報が含まれています。
{ "distanceMeters": integer, "duration": string, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "steps": [ { object (RouteLegStep) } ], "travelAdvisory": { object (RouteLegTravelAdvisory) } }
ステップ配列について
レスポンスの各レッグには steps
配列が含まれます。各 steps
配列要素は RouteLegStep 型です。ステップは、レッグに沿った 1 つの指示に対応します。レッグには常に少なくとも 1 つのステップが含まれます。
steps
配列の各要素には、ステップの指示を含む NavigationInstruction 型の navigationInstruction
プロパティが含まれます。次に例を示します。
"navigationInstruction": { "maneuver": "TURN_LEFT", "instructions": "Turn left toward Frontage Rd" }
instructions
には、ステップに関する追加情報が含まれている場合があります。次に例を示します。
"navigationInstruction": { "maneuver": "TURN_SLIGHT_LEFT", "instructions": "Slight left (signs for I-90 W/Worcester)nParts of this road may be closed at certain times or days" }
ステップの残りのプロパティは、distanceMeters
、duration
、polyline
など、ステップに関する情報を記述します。
{ "distanceMeters": integer, "staticDuration": string, "polyline": { object (Polyline) }, "startLocation": { object (Location) }, "endLocation": { object (Location) }, "navigationInstruction": { object (NavigationInstruction) } }
手順の説明の言語を指定する
API は、優先言語を考慮しながら、必要に応じてユーザーが読める文字に音訳して、ローカル言語でルート情報を返します。住所コンポーネントはすべて同じ言語で返されます。
リクエストの
languageCode
パラメータを使用して、サポートされている言語のリストからルートの言語を明示的に設定します。サポート対象の言語は頻繁に更新されるため、このリストで網羅されていない場合があります。指定された言語で名前が使用できない場合、API は最も近い一致を使用します。
指定された言語は、API が返す結果のセットと、それらが返される順序に影響する可能性があります。ジオコーダーは、言語によって略語の解釈が異なります。たとえば、通りの種類の略語や、ある言語では有効でも別の言語では有効でない同義語などです。たとえば、ハンガリー語では utca と tér は street の同義語です。
geocodingResults 配列について
リクエスト内のすべての場所(出発地、目的地、中間経由地)が住所文字列またはプラスコードとして指定されている場合、API は対応するプレイス ID を持つ最も関連性の高い場所を見つけようとします。geocodingResults
配列の各要素には、場所をプレイス ID として含む placeID
フィールドと、場所のタイプ(street_address
、premise
、airport
など)を指定する type
フィールドが含まれます。
geocodingResults
配列には次の 3 つのフィールドが含まれます。
origin
: アドレス文字列またはプラスコードとして指定された場合、出発地のプレイス ID。それ以外の場合、このフィールドはレスポンスから除外されます。destination
: 宛先が住所文字列またはプラスコードとして指定された場合、宛先のプレイス ID。それ以外の場合、このフィールドはレスポンスから省略されます。intermediates
: アドレス文字列または Plus Code として指定された中間経由地のプレイス ID を含む配列。プレイス ID または緯度と経度の座標を使用して中間地点を指定した場合、その中間地点はレスポンスから除外されます。レスポンスのintermediateWaypointRequestIndex
プロパティを使用して、リクエストの中間経由地がレスポンスの Place ID に対応しているかどうかを判断します。
"geocodingResults": { "origin": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "destination": { "geocoderStatus": {}, "type": [ enum (Type) ], "placeId": string }, "intermediates": [ { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string }, { "geocoderStatus": {}, "intermediateWaypointRequestIndex": integer, "type": [ enum (Type) ], "placeId": string } ] }
ローカライズされたレスポンス値を理解する
ローカライズされたレスポンス値は、返されたパラメータ値のローカライズされたテキストを提供する追加のレスポンス フィールドです。旅行の時間、距離、単位系(メートル法またはヤードポンド法)について、ローカライズされたテキストが提供されます。フィールド マスクを使用してローカライズされた値をリクエストします。言語と単位系を指定するか、API によって推測された値を使用できます。詳しくは、LocalizedValues をご覧ください。
たとえば、ドイツ語(de)の言語コードとヤードポンド法を指定すると、distanceMeters
の値として 49889.7 が返されるだけでなく、ドイツ語とヤードポンド法で距離を測定した「31 Meile」というローカライズされたテキストも返されます。
ローカライズされた値の例を次に示します。
{ "localized_values": { "distance": { "text": "31,0 Meile/n" }, "duration": { "text": 38 Minuten}. "static_duration": { "text": 36 Minuten}. } }
言語または単位系を指定しない場合、API は次のように言語と単位を推測します。
ComputeRoutes
メソッドは、出発地の経由地から位置と距離の単位を推測します。そのため、米国でのルーティング リクエストの場合、API はen-US
言語とIMPERIAL
単位を推測します。ComputeRouteMatrix
メソッドのデフォルトの言語は「en-US」、単位は METRIC です。