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

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

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

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

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