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

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

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

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

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

    REST

    -H X-Goog-FieldMask: routes.localized_values

    リモート プロシージャ コール(RPC)

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

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

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

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

    "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"
        }
    }
}