Routes API がルートを計算するときに、指定したウェイポイントと構成パラメータを入力として使用します。API は、デフォルト ルートと 1 つ以上の代替ルートを含むレスポンスを返します。
レスポンスには、リクエストのフィールドに応じて、さまざまな種類のルートやその他のデータを含めることができます。
レスポンスに含めるには | このドキュメントをご覧ください |
---|---|
車のエンジンの種類に応じた、燃料やエネルギーの効率が最も高いルート。 | 環境にやさしいルートを構成する |
最大 3 つの代替ルート | 代替ルートをリクエストする |
ルート全体、ルートの各区間、区間ごとのポリライン。 | ルート ポリラインをリクエストする |
通行料金の割引や、ドライバーまたは車両で利用できるパスを考慮した通行料金の見積もり。 | 通行料金を計算する |
言語コードと測定単位(ヤードポンド法またはメートル法)でローカライズされたレスポンス。 | ローカライズされた値をリクエストする |
ナビゲーション手順を HTML テキスト文字列としてフォーマットするには、HTML_FORMATTED_NAVIGATION_INSTRUCTIONS を extraComputations に追加します。 |
追加の計算 |
入力オプションの一覧については、使用可能なルート オプションとリクエスト本文をご覧ください。
レスポンスを使用して、要件に適したルートを選択するために必要な情報を提供できます。
フィールド マスクについて
ルートを計算するメソッドを呼び出すときは、レスポンスで返すフィールドを定義するフィールド マスクを指定する必要があります。返されるフィールドのデフォルト リストはありません。このリストを省略すると、メソッドはエラーを返します。
このドキュメントの例では、フィールドマスクを考慮せずにレスポンス オブジェクト全体を示しています。本番環境では、項目マスクで明示的に指定したフィールドのみがレスポンスに含まれます。
詳しくは、返される情報を選択するをご覧ください。
著作権の表示について
結果をユーザーに表示する際には、次の著作権に関する声明を含める必要があります。
Powered by Google, ©YEAR Google
例:
Powered by Google, ©2023 Google
ルート、区間、ステップについて
Routes API から返されたレスポンスを調べる前に、ルートを構成するコンポーネントについて理解しておく必要があります。
レスポンスには、次の各ルート コンポーネントに関する情報が含まれる場合があります。
ルート: 出発地のウェイポイントから中間のウェイポイントを通って、目的地のウェイポイントまでのルート全体。ルートは 1 つ以上の区間で構成されます。
区間: ルートの 1 つのウェイポイントから次のウェイポイントまでの経路。各区間は 1 つ以上の独立したステップで構成されています。
ルートには、各ウェイポイントから次のウェイポイントまでの道の区間が 1 つ含まれます。たとえば、ルートに出発地のウェイポイントが 1 つと目的地のウェイポイントが 1 つ含まれている場合、そのルートには 1 つの区間が含まれます。出発地と目的地の後にルートに追加するウェイポイント(中間ウェイポイント)ごとに、API によって個別の区間が追加されます。
API は、中間ウェイポイントのパススルーに経路を追加しません。たとえば、出発地の地点、パススルーの中間地点、目的地の地点を含むルートには、地点を通る出発地から目的地までの区間が 1 つだけ含まれます。パススルー ウェイポイントの詳細については、パススルー ウェイポイントを定義するをご覧ください。
ステップ: ルートの区間に沿った 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
配列が含まれます。各配列要素の型は 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 つ以上の区間が含まれます。
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
配列が含まれ、各 steps
配列要素は RouteLegStep 型です。ステップは、1 つの区間に沿った 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 はハンガリー語では道路の類義語です。
geocodingResults 配列について
API は、住所文字列または Plus Code として指定されたリクエスト内の場所(出発地、目的地、中間地点)ごとに、対応するプレイス ID を持つ最も関連性の高い場所を見つけようとします。geocodingResults
配列の各要素には、位置情報をプレイス ID として含む placeID
フィールドと、地域タイプ(street_address
、premise
、airport
など)を指定する type
フィールドが含まれます。
geocodingResults
配列には、次の 3 つのフィールドが含まれています。
origin
: 住所の文字列またはプラスコードとして指定された場合、出発地のプレイス ID。それ以外の場合、このフィールドはレスポンスから除外されます。destination
: 住所文字列またはプラスコードとして指定された場合、目的地のプレイス ID。それ以外の場合、このフィールドはレスポンスから除外されます。intermediates
: 住所文字列または Plus Code として指定された中間地点のプレイス ID を含む配列。プレイス ID または緯度と経度の座標を使用して中間地点を指定した場合、レスポンスでは省略されます。レスポンスのintermediateWaypointRequestIndex
プロパティを使用して、リクエスト内の中間ウェイポイントがレスポンスのプレイス 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 単位になります。