Hệ thống đơn vị của API Thời tiết

Bạn có thể chọn METRIC hoặc IMPERIAL cho tất cả các điểm cuối Weather API.

Để yêu cầu một hệ thống đơn vị, hãy đặt units_system thành METRIC hoặc IMPERIAL. Nếu không chỉ định units_system, hệ thống sẽ mặc định dùng METRIC.

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

Các giá trị Weather API đã thay đổi từ đơn vị METRIC sang đơn vị IMPERIAL

Bảng sau đây liệt kê các giá trị phản hồi của Weather API có thể được chuyển đổi giữa các hệ thống đơn vị.

Chuyển đổi đơn vị (hệ đo lường sang hệ đo lường Anh) Giá trị Weather API
Độ C (°C) sang độ F (°F) Nhiệt độ, Nhiệt độ cảm giác, Điểm sương, Chỉ số nhiệt, Độ lạnh của gió, Nhiệt độ bầu ướt
Milimet (mm) sang Inch (in) Lượng mưa, QPF, độ dày của băng
Kilômét/giờ (km/h) sang Dặm/giờ (mph) Tốc độ gió, Gió giật
Kilômét (km) sang Dặm (mi) Chế độ hiển thị

Ví dụ về phản hồi currentConditions

Bảng sau đây liệt kê các giá trị có trong nội dung phản hồi của yêu cầu currentConditions. Các giá trị màu xanh dương đậm đã thay đổi từ đơn vị METRIC thành IMPERIAL:

Tính năng Weather API METRIC (mặc định) ĐƠN VỊ ĐO LƯỜNG THEO HỆ THỐNG ANH
Thời gian Hiện tại 2025-03-06T11:08:49.126979608Z 6:08:49 ngày 6 tháng 3 năm 2025
Múi giờ Châu Mỹ/New_York Châu Mỹ/New_York
Là ban ngày FALSE FALSE
Nội dung mô tả thời tiết Nhiều mây Nhiều mây
Nhiệt độ 11,5 °C 11,5 °C
Nhiệt độ cảm giác 9,9 °C 9,8 °C
Điểm sương 8,7 °C 8,7 °C
Chỉ số nhiệt 11,5 °C 11,5 °C
Gió lạnh 9,9 °C 9,8 °C
Độ ẩm tương đối 83 % 83 %
Chỉ số UV 0 0
Xác suất có mưa 9 % 9 %
Lượng mưa 0 mm 0 in
Xác suất có bão kèm theo sấm sét 0 0
Áp suất không khí 991,47 MB 991,47 MB
Hướng gió 275 ° 275 °
Hướng gió (Hướng chính) TÂY TÂY
Tốc độ gió 14 km/giờ 9 dặm/giờ
Gió giật 27 km/giờ 17 dặm/giờ
Chế độ hiển thị 10 km 6 dặm
Độ che phủ của mây 65 % 65 %
Thay đổi nhiệt độ 1,4 °C -16,3 °C
Nhiệt độ tối đa 13,2 °C 13 °C
Nhiệt độ tối thiểu 10,1 °C 10 °C
QPF 27,5564 mm 1.0849 in

Hệ thống đơn vị trên thế giới

Hệ đơn vị theo quốc gia

Hầu hết các quốc gia bên ngoài Hoa Kỳ đều sử dụng hệ thống METRIC, trong khi Hoa Kỳ sử dụng hệ thống IMPERIAL. Một số quốc gia, chẳng hạn như Vương quốc Anh và Canada, sử dụng kết hợp cả hai hệ thống. Để xem bản đồ và danh sách đầy đủ các quốc gia sử dụng hệ đo lường, hãy xem Hệ đo lường.

Hệ thống đơn vị thế giới

Chuyển đổi đơn vị trong phản hồi của Weather API

Chuyển đổi đơn vị theo cách thủ công

Bạn có thể chuyển đổi đơn vị theo cách thủ công bằng cách sử dụng tập lệnh sau:

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

Chuyển đổi đơn vị bằng thư viện

Bạn cũng có thể sử dụng một thư viện như convert-units để chuyển đổi đơn vị:


// 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