Bạn có thể chọn METRIC hoặc IMPERIAL cho tất cả các điểm cuối của API Thời tiết.
Để yêu cầu hệ thống đơn vị, hãy đặt units_system thành METRIC hoặc IMPERIAL. Nếu không chỉ định units_system, giá trị mặc định sẽ là 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ị của API Thời tiết đã 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 API Thời tiết có thể được chuyển đổi giữa các hệ thống đơn vị.
| Chuyển đổi đơn vị (Đơn vị đo lường quốc tế sang đơn vị đo lường Anh) | Giá trị của API thời tiết |
|---|---|
| Độ C (°C) sang độ F (°F) | Nhiệt độ, Nhiệt độ cảm giác, Điểm sương, Chỉ số nhiệt, Độ lạnh do gió, Nhiệt độ bầu ướt |
| Milimet (mm) sang Inch (in) | Lượng mưa, QPF, Độ dày băng |
| Kilomet/giờ (km/h) sang Dặm/giờ (dặm/giờ) | Tốc độ gió, Gió giật |
| Kilomet (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 phần 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 API thời tiết | METRIC (mặc định) | IMPERIAL |
|---|---|---|
| Thời gian Hiện tại | 2025-03-06T11:08:49.126979608Z | 6/3/2025, 6:08:49 AM |
| Múi giờ | America/New_York | America/New_York |
| Là ban ngày | FALSE | FALSE |
| Nội dung mô tả về thời tiết | Nhiều mây | Nhiều mây |
| Nhiệt độ | 11,5 °C | 52,7 °F |
| Nhiệt độ cảm giác | 9,9 °C | 49,7 °F |
| Điểm sương | 8,7 °C | 47,6 °F |
| Chỉ số nhiệt | 11,5 °C | 52,7 °F |
| Gió lạnh | 9,9 °C | 49,7 °F |
| Độ ẩ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 trong |
| Xác suất có mưa rà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ó (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 |
| Mức độ che phủ của mây | 65 % | 65 % |
| Thay đổi về nhiệt độ | 1,4 °C | 2,6 °F |
| Nhiệt độ tối đa | 13,2 °C | 55,8 °F |
| Nhiệt độ thấp nhất | 10,1 °C | 50,1 °F |
| QPF | 27,5564 mm | 2,76 cm |
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ỳ 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 cả hai hệ thống. Để xem bản đồ và danh sách đầy đủ các quốc gia sử dụng hệ mét, hãy xem phần Sử dụng hệ mét.

Chuyển đổi đơn vị từ phản hồi của API Thời tiết
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 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