מערכות יחידות של 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) משקעים, כמות משקעים צפויה, עובי הקרח
קילומטרים לשעה (קמ"ש) למיילים לשעה (מיילים לשעה) מהירות הרוח, משבי רוח
קילומטרים (ק"מ) למיילים (מייל) חשיפה

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

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

התכונה Weather API METRIC (ברירת מחדל) IMPERIAL
הזמן הנוכחי 2025-03-06T11:08:49.126979608Z ‫3/6/2025, 6:08:49 AM
אזור זמן America/New_York America/New_York
האם השעה היא שעות היום FALSE FALSE
תיאור מזג האוויר מעונן בדרך כלל מעונן בדרך כלל
טמפרטורה ‫11.5 °C 52.7 °F
מרגיש כמו ‫9.9 °C 49.7 °F
נקודת הטל ‫8.7 °C 47.6 °F
מדד החום ‫11.5 °C 52.7 °F
צינת רוח ‫9.9 °C 49.7 °F
לחות יחסית ‫83 % ‫83 %
מדד קרינת UV 0 0
הסיכוי למשקעים ‫9 % ‫9 %
משקעים ‫0 מ'מ 0 in
סבירות לסופת רעמים 0 0
לחץ אוויר ‫991.47MB ‫991.47MB
כיוון הרוח ‫275° ‫275°
כיוון הרוח (קרדינלי) מערב מערב
מהירות הרוח ‫14 קמ"ש ‫9 מייל לשעה
משבי רוח ‫27 קמ"ש 27 קמ"ש
חשיפה ‫10 ק"מ ‫10 ק"מ
כיסוי ענן ‫65 % ‫65 %
שינוי טמפרטורה ‫1.4 °C 2.6 °F
הטמפרטורה המקסימלית ‫13.2 °C ‎55.8 °F
הטמפרטורה המינימלית ‫10.1 °C 50.1 °F
QPF ‫27.5564 מ״מ 1.0849 in

מערכות יחידות בעולם

מערכות יחידות לפי מדינה

ברוב המדינות מחוץ לארצות הברית משתמשים בשיטת 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