ローカライズされた値をリクエストする

ローカライズされたレスポンス値は、返されたパラメータ値のローカライズされたテキストを提供する追加のレスポンス フィールドです。ローカライズされたテキストでは、所要時間、距離、単位系(メートル法またはヤードポンド法)が提供されます。ローカライズされた値をリクエストするには、フィールドマスクを使用します。言語と単位系を指定することも、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」、単位がメートル法です。

ローカライズされた値をリクエストする

ローカライズされた値をレスポンスに含めるには、次の操作を行う必要があります。

  1. フィールド マスクでローカライズした値をリクエストします。例:

    REST

    -H X-Goog-FieldMask: routes.localized_values

    RPC

    const (fieldMask = "routes.localized_values")
  2. 特定の言語または単位系でローカライズされた値を取得するには、言語コードと単位系を指定します。

    "languageCode": "language_code",
    "units": "METRIC | IMPERIAL",

    詳細については、言語サポートをご覧ください。

    たとえば、次のコード スニペットでは、言語をドイツ語(de)に、単位をメートル法に指定しています。

    "languageCode": "de",
    "units": "METRIC",

リクエスト例

curl -X POST -d '{
  "origin": { "location": {
    "latLng": { "latitude": 37.7873146, "longitude": -122.4159327 } }
  },
  "destination": { "location": {
    "latLng": { "latitude": 37.7621008, "longitude": -122.4382503 } }
  },
  "travelMode": "DRIVE",
  "computeAlternativeRoutes": true,
  "languageCode": "de",
  "units": "METRIC"
}' \
-H 'Content-Type: application/json' \
-H 'X-Goog-Api-Key: YOUR_API_KEY' \
-H 'X-Goog-FieldMask: routes.localized_values' \
'https://routes.googleapis.com/directions/v2:computeRoutes'

レスポンスの例

レスポンスでは、distancedurationstaticDuration の各フィールドのローカライズされた値が返されます。

{
    "localizedValues": {
        "distance": {
            "text": "15,5 km"
         },
        "duration": {
            "text": "16 Minuten"
        },
        "staticDuration": {
            "text": "16 Minuten"
        }
    }
}