Weather API 단위 시스템

모든 날씨 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

날씨 API 값이 미터법에서 영국식 단위로 변경됨

다음 표에는 단위 시스템 간에 변환할 수 있는 날씨 API 응답 값이 나와 있습니다.

단위 변환 (미터법에서 영국식) 날씨 API 값
섭씨 (°C)에서 화씨 (°F)로 온도, 체감 온도, 이슬점, 열 지수, 풍랭, 습구
밀리미터 (mm)를 인치 (in)로 강수량, QPF, 얼음 두께
킬로미터/시간 (km/h)에서 마일/시간 (mph) 풍속, 돌풍
킬로미터 (km)를 마일 (mi)로 공개 상태

currentConditions 응답 예시

다음 표에는 currentConditions 요청의 응답 본문에 포함된 값이 나와 있습니다. 파란색 굵은 글씨로 표시된 값은 METRIC에서 IMPERIAL 단위로 변경되었습니다.

날씨 API 기능 METRIC (기본값) IMPERIAL
현재 시간 2025-03-06T11:08:49.126979608Z 2025년 3월 6일, 오전 6시 8분 49초
시간대 America/New_York America/New_York
주간 여부 FALSE FALSE
날씨 설명 대체로 흐림 대체로 흐림
온도 11.5 °C 11.5 °C
체감 온도 9.9 °C 9.8°C
이슬점 8.7 °C 47.6 °F
열 지수 11.5 °C 11.5 °C
체감 온도 9.9 °C 9.8°C
상대 습도 83 % 83 %
자외선 지수 0 0
강수 확률 9 % 9 %
강수량 0 mm 0인치
뇌우 확률 0 0
기압 991.47MB 991.47MB
풍향 275 ° 275 °
풍향 (기본) 서부 서부
풍속 14 km/h 9 mph
돌풍 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인치

전 세계 단위 시스템

국가별 단위 체계

미국 이외의 대부분의 국가에서는 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