מערכות יחידות של Weather API

אפשר לבחור מבין METRIC או IMPERIAL לכל נקודות הקצה של Weather API.

כדי לבקש מערכת יחידות, מגדירים את 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 השתנו מיחידות מידה מטריות ליחידות מידה בריטיות

בטבלה הבאה מפורטים ערכי התגובה של Weather API שאפשר להמיר בין מערכות יחידות.

המרת יחידות (ממטריות לאימפריאליות) ערכים של Weather API
צלזיוס (°C) לפרנהייט (°F) טמפרטורה, טמפרטורה תחושה, נקודת טל, מדד חום, קור רוח, טמפרטורת התרמומטר הרטוב
מילימטרים (מ"מ) לאינצ'ים (in) משקעים, QPF, עובי הקרח
קילומטרים לשעה (קמ"ש) למיילים לשעה (mph) מהירות הרוח, משבי רוח
המרה של קילומטרים (ק"מ) למיילים (מייל) חשיפה

דוגמה לתגובה של currentConditions

בטבלה הבאה מפורטים הערכים שכלולים בגוף התשובה של בקשת currentConditions. ערכים בכתב כחול מודגש השתנו מיחידות METRIC ליחידות IMPERIAL:

תכונה של Weather API METRIC (ברירת מחדל) IMPERIAL
הזמן הנוכחי 2025-03-06T11:08:49.126979608Z 6/3/2025, 6:08:49
אזור זמן America/New_York America/New_York
שעות היום FALSE FALSE
תיאור מזג האוויר רוב הזמן מעונן רוב הזמן מעונן
טמפרטורה 11.5 °C 11.4 °C
מרגיש כמו 9.9 °C 49.7 °F
נקודת הטל 8.7 °C 47.6 °F
מדד חום 11.5 °C 11.4 °C
צינת רוח 9.9 °C 49.7 °F
לחות יחסית 83 % 83 %
מדד קרינת UV 0 0
הסיכוי למשקעים 9 % 9 %
משקעים 0 מ"מ 0 ב
סבירות לסופת רעמים 0 0
לחץ אוויר 991.47MB 991.47MB
כיוון הרוח 275 ° 275 °
כיוון הרוח (קארדינאל) מערב מערב
מהירות הרוח 14 קמ"ש 35 קמ"ש
משב רוח 27 קמ"ש 27 קמ"ש
חשיפה 10 ק"מ 9.6 ק"מ
כיסוי עננים 65 % 65 %
שינוי טמפרטורה 1.4 °C 2.6 °F
הטמפרטורה המקסימלית 13.2 °C 55.8 °F
הטמפרטורה המינימלית 10.1 °C 10.0°C
QPF 27.5564 מ״מ 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