ルートのレスポンスを確認する

Routes API は、ユーザーが指定した地点と構成パラメータを入力として受け取ります。API は、デフォルト ルートと 1 つ以上の代替ルートを含むレスポンスを返します。

レスポンスには、リクエストするフィールドに基づいて、さまざまな種類のルートやその他のデータを含めることができます。

レスポンスに含めるには こちらのドキュメントをご覧ください
車両のエンジンの種類に応じた、燃料またはエネルギー効率の最もよいルート。 環境に優しいルートを設定する
最大 3 つの代替ルート 代替ルートをリクエストする
ルート全体、ルートの各区間、区間ごとのポリライン。 ルートのポリラインをリクエストする
通行料金の割引や、ドライバーまたは車両で利用できるパスを考慮した通行料金の見積もり。 通行料金を計算する
言語コードと測定単位(ヤードポンド法またはメートル法)別のローカライズされたレスポンス。 ローカライズした値をリクエストする
ナビゲーション手順を HTML テキスト文字列としてフォーマットするには、HTML_FORMATTED_NAVIGATION_INSTRUCTIONSextraComputations に追加します。 追加の計算

入力オプションの一覧については、使用可能なルート オプションリクエスト本文をご覧ください。

レスポンスを使用して、要件に適したルートを選択するために必要な情報を提供できます。

フィールド マスクについて

ルートを計算するメソッドを呼び出すときは、レスポンスで返すフィールドを定義するフィールド マスクを指定する必要があります。返されるフィールドのデフォルト リストはありません。このリストを省略すると、メソッドはエラーを返します。

このドキュメントの例では、フィールド マスクを考慮せずにレスポンス オブジェクト全体を示しています。本番環境では、レスポンスにはフィールド マスクで明示的に指定したフィールドのみが含まれます。

詳しくは、返される情報を選択するをご覧ください。

著作権の表示について

検索結果をユーザーに表示するときは、次の著作権表示を含める必要があります。

Powered by Google, ©YEAR Google

次に例を示します。

Powered by Google, ©2023 Google

ルート、区間、歩数について

Routes API から返されるレスポンスを確認する前に、ルートを構成するコンポーネントを理解しておく必要があります。

ルート、区間、ステップ。

レスポンスには、次の各ルート コンポーネントに関する情報が含まれる場合があります。

  • ルート: 出発地のウェイポイントから中間のウェイポイントを通って、目的地のウェイポイントまでのルート全体。ルートは 1 つ以上の区間で構成されます。

  • 区間: ルート内の 1 つのウェイポイントから、ルート内の次のウェイポイントまでの経路。各区間は 1 つ以上の独立したステップで構成されています。

    ルートには、各ウェイポイントから次のウェイポイントまでの道の区間が 1 つずつ含まれています。たとえば、ルートに出発地の地点と目的地の地点が 1 つある場合、ルートには 1 つの区間が含まれます。出発地と目的地の後にルートに追加するウェイポイント(中間ウェイポイント)ごとに、API によって個別の区間が追加されます。

    API では、パススルー中間ウェイポイントの区間は追加されません。たとえば、出発地の地点、パススルーの中間地点、目的地の地点を含むルートには、地点を通る出発地から目的地までの区間が 1 つだけ含まれます。パススルー ウェイポイントの詳細については、パススルー ウェイポイントを定義するをご覧ください。

  • ステップ: ルートの区間に沿った 1 つの手順。ステップはルートの 最小単位ですたとえば、1 つのステップが「メイン ストリートを左折」と示される場合があります。

回答の内容

API レスポンスを表す JSON オブジェクトには、次のトップレベル プロパティが含まれています。

  • routesRoute 型の要素の配列。routes 配列には、API から返されたルートごとに 1 つの要素が含まれます。この配列には、デフォルト ルート、環境に優しいルート、最大 3 つの代替ルートの 5 つの要素を含めることができます。

  • geocodingResultsGeocodingResults 型の要素の配列。住所文字列または 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 つの要素を含めることができます。または、リクエストで computeAlternativeRoutestrue に設定して、最大 3 つの代替ルートをレスポンスに追加します。

配列内の各ルートは routeLabels 配列プロパティで識別されます。

説明
DEFAULT_ROUTE デフォルト ルートを指定します。
FUEL_EFFICIENT 環境に優しいルートを識別する。
DEFAULT_ROUTE_ALTERNATE 代替ルートを指定します。

legs 配列には、ルートの各区間の定義が格納されます。残りのプロパティ(distanceMetersdurationpolyline, など)には、ルート全体に関する情報が含まれています。

{
  "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_ROUTEFUEL_EFFICIENT の両方のラベルが含まれます。

{
  "routes": [
    {
      "routeLabels": [
        "DEFAULT_ROUTE",
        "FUEL_EFFICIENT"
      ],
     …
    }
  ]
}

legs 配列を理解する

レスポンスの各 route には legs 配列が含まれ、各 legs 配列要素は RouteLeg 型です。配列の各区間は、ある地点から次の地点までの経路を定義します。ルートには必ず 1 つ以上の区間が含まれます。

legs プロパティには、steps 配列内の区間の各ステップの定義が含まれます。残りのプロパティ(distanceMetersdurationpolyline など)には区間に関する情報が含まれます。

{
  "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 つの指示に対応します。区間には必ず 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"
}

ステップの残りのプロパティは、distanceMetersdurationpolyline など、ステップに関する情報を記述します。

{
  "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_addresspremiseairport など)を指定する type フィールドが含まれます。

geocodingResults 配列には次の 3 つのフィールドがあります。

  • origin: 出発地のプレイス ID(住所文字列または Plus Code として指定された場合)。それ以外の場合、このフィールドはレスポンスから除外されます。

  • destination: 目的地のプレイス ID(住所文字列または Plus Code として指定された場合)。それ以外の場合、このフィールドはレスポンスから除外されます。

  • 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 の値は 49,889.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 単位になります。