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 값이 미터법에서 영국식 단위로 변경됨

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

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

currentConditions 응답 예시

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

Weather API 기능 METRIC (측정항목, 기본값) 영국식
현재 시간 2025-03-06T11:08:49.126979608Z 2025년 3월 6일 오전 6시 8분 49초
시간대 America/New_York America/New_York
Is Daytime FALSE FALSE
날씨 설명 대체로 흐림 대체로 흐림
온도 11.5 °C 52.7 °F
체감 온도 9.9 °C 49.7 °F
이슬점 8.7 °C 47.6 °F
Heat Index 11.5 °C 52.7 °F
체감 온도 9.9 °C 49.7 °F
상대 습도 83 % 83 %
자외선 지수 0 0
강수 확률 9 % 9 %
강수량 0 mm 0 in
뇌우 가능성 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 55.8 °F
최저 기온 10.1 °C 50.1 °F
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