すべての Weather API エンドポイントで METRIC
または IMPERIAL
を選択できます。
単位系をリクエストするには、units_system
を METRIC
または 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