Weather API の単位系

すべての Weather API エンドポイントで METRIC または IMPERIAL を選択できます。

単位系をリクエストするには、units_systemMETRIC または IMPERIAL に設定します。units_system が指定されていない場合、デフォルトは METRIC になります。

https://weather.googleapis.com/v1/currentConditions:lookup?key=YOUR_API_KEY&location.latitude=LATITUDE&location.longitude=LONGITUDE&units_system=IMPERIAL

Weather API の値が METRIC 単位から IMPERIAL 単位に変更されました

次の表に、単位系間で変換できる Weather API レスポンス値を示します。

単位変換(メートル法からヤード・ポンド法) Weather API の値
摂氏(°C)から華氏(°F) 気温、体感温度、露点、暑さ指数、風冷え、湿球温度
ミリメートル(mm)からインチ(in) 降水量、QPF、氷の厚さ
キロメートル/時(km/h)からマイル/時(mph) 風速、突風
キロメートル(km)からマイル(mi) 公開設定

currentConditions レスポンスの例

次の表に、currentConditions リクエストのレスポンス本文に含まれる値を示します。青色の太字の値は、単位が METRIC から IMPERIAL に変更されています。

天気予報 API 機能 METRIC(デフォルト) IMPERIAL
現在の時刻 2025-03-06T11:08:49.126979608Z 3/6/2025, 6:08:49 AM
タイムゾーン アメリカ / ニューヨーク アメリカ / ニューヨーク
日中である FALSE FALSE
天気の説明
温度 11.5 °C 11.5 °C
体感温度 9.9 °C 9.8 °C
露点 8.7 °C 8.7 °C
暑さ指数 11.5 °C 11.5 °C
風冷指数 9.9 °C 9.8 °C
相対湿度 83 % 83 %
UV 指数 0 0
降水確率 9 % 9 %
降水量 0 mm 0 in
雷雨の確率 0 0
気圧 991.47 mb 991.47 mb
風向き 275 ° 275 °
風向き(方位) 西 西
風速 14 km/h 9 マイル/時
風速(瞬間) 27 km/h 17 mph
公開設定 10 km 6 マイル
Cloud Cover 65 % 65 %
温度の変化 1.4 °C 2.6 °F
最高気温 13.2 °C 13.2 °C
最低気温 10.1 °C 10.1 °C
QPF 27.5564 mm 1.0849 in

全世界のユニット システム

国別の単位系

米国以外のほとんどの国では METRIC システムが使用されていますが、米国では IMPERIAL システムが使用されています。英国やカナダなど、両方のシステムを組み合わせたシステムを使用している国もあります。メートル法を使用している国の地図と一覧については、メートル法化をご覧ください。

ワールド単位系

Weather API レスポンスの単位を変換する

単位を手動で変換する

次のスクリプトを使用して、単位を手動で変換できます。

function convert(conversionType, value) {
  if (value === null || value === undefined || typeof value !== 'number') {
    return "Invalid input"; // Handle null, undefined, or non-numeric input
  }

  switch (conversionType) {
    case 'C_to_F': // Celsius to Fahrenheit
      let convertedCtoF = (value * 9 / 5) + 32;
      return convertedCtoF.toFixed(2) + " °F";
    case 'mm_to_in': // Millimeters to Inches
      let convertedMmToIn = value * 0.0393701;
      return convertedMmToIn.toFixed(2) + " in";
    case 'km_to_mi': // Kilometers to Miles
      let convertedKmToMi = value * 0.621371;
      return convertedKmToMi.toFixed(2) + " mi";
    case 'km/h_to_mph': // Kilometers per hour to Miles per hour
      let convertedKmHToMph = value * 0.621371;
      return convertedKmHToMph.toFixed(2) + " mph";
    case 'millibar_to_psi': // Millibar to PSI
      let convertedMillibarToPsi = value * 0.0145038;
      return convertedMillibarToPsi.toFixed(2) + " psi";
    default:
      return "Invalid conversion type";
  }
}

console.log(convert('C_to_F', 10)); // Output: 50.00 °F
console.log(convert('mm_to_in', 25)); // Output: 0.98 in
console.log(convert('invalid_type', 5)); // Output: Invalid conversion type

ライブラリを使用して単位を変換する

convert-units などのライブラリを使用して単位を変換することもできます。


// module

import convert from 'convert-units';

// or script inclusion
//   <script src="https://unpkg.com/convert@5.8.0/dist/index.js" ></script> 
// let convert = convert.convert

function convertWithLibrary(conversionType, value) {
  if (value === null || value === undefined || typeof value !== 'number') {
    return "Invalid input";
  }

  try {
    switch (conversionType) {
      case 'C_to_F':
        let convertedCtoF = convert(value, 'C').to('F');
        return convertedCtoF.toFixed(2) + " °F";
      case 'mm_to_in':
        let convertedMmToIn = convert(value, 'mm').to('in');
        return convertedMmToIn.toFixed(2) + " in";
      case 'km_to_mi':
        let convertedKmToMi = convert(value, 'km').to('mi');
        return convertedKmToMi.toFixed(2) + " mi";
      case 'km/h_to_mph':
        // km/h is not directly supported, so we convert km to mi
        // then assume it's per hour
        let convertedKmToMiValue = convert(value, 'km').to('mi');
        return convertedKmToMiValue.toFixed(2) + " mph";
      case 'millibar_to_psi':
        // millibar is not directly supported, so convert millibar to bar, then bar to psi
        let barValue = value / 1000;
        let convertedMillibarToPsi = convert(barValue, 'bar').to('psi');
        return convertedMillibarToPsi.toFixed(2) + " psi";
      default:
        return "Invalid conversion type";
    }
  } catch (error) {
    console.error("Conversion error:", error);
    return "Conversion failed";
  }
}

console.log(convertWithLibrary('C_to_F', 10)); // Output: 50.00 °F
console.log(convertWithLibrary('mm_to_in', 25)); // Output: 0.98 in
console.log(convertWithLibrary('invalid_type', 5)); // Output: Invalid conversion type