Systemy jednostek w Weather API

W przypadku wszystkich punktów końcowych interfejsu Weather API możesz wybrać METRIC lub IMPERIAL.

Aby poprosić o system jednostek, ustaw units_system na METRIC lub IMPERIAL. Jeśli nie podasz wartości units_system, zostanie użyta wartość domyślna METRIC.

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

Wartości interfejsu Weather API zostały zmienione z jednostek METRYCZNYCH na IMPERIALNE

W tabeli poniżej znajdziesz wartości odpowiedzi interfejsu Weather API, które można przekształcać między systemami jednostek.

Przeliczanie jednostek (z metrycznych na imperialne) Wartości interfejsu Weather API
Stopnie Celsjusza (°C) na stopnie Fahrenheita (°F) Temperatura, temperatura odczuwalna, punkt rosy, indeks ciepła, temperatura odczuwalna, temperatura mokrego termometru
Milimetry (mm) na cale (in) Opady, prognoza ilościowa opadów, grubość lodu
Kilometry na godzinę (km/h) na mile na godzinę (mph) Prędkość wiatru, porywy wiatru
Kilometry (km) na mile (mi) Widoczność

Przykład odpowiedzi currentConditions

W tej tabeli znajdziesz wartości zawarte w treści odpowiedzi na żądanie currentConditions. Wartości zaznaczone na niebiesko i pogrubione zmieniono z METRIC na IMPERIAL:

Funkcja interfejsu Weather API METRYCZNY (domyślnie) IMPERIAL
Aktualna godzina 2025-03-06T11:08:49.126979608Z 6.3.2025, 6:08:49
Strefa czasowa Ameryka/Nowy_Jork Ameryka/Nowy_Jork
Jest w ciągu dnia FAŁSZ FAŁSZ
Opis pogody Duże zachmurzenie Duże zachmurzenie
Temperatura 11,5°C 11,5°C
Odczuwalna 9,9°C 9,8°C
Punkt rosy 8,7°C 8,7°C
Indeks ciepła 11,5°C 11,5°C
Temperatura odczuwalna 9,9°C 9,8°C
Wilgotność względna 83 % 83 %
Indeks UV 0 0
Prawdopodobieństwo opadów 9 % 9 %
Opady 0 mm 0
Prawdopodobieństwo burzy z piorunami 0 0
Ciśnienie powietrza 991,47 MB 991,47 MB
Kierunek wiatru 275 ° 275 °
Kierunek wiatru (główne kierunki) ZACHÓD ZACHÓD
Prędkość wiatru 14 km/h 14 km/h
Poryw wiatru 27 km/h 27 km/h
Widoczność 10 km 10 km
Cloud Cover 65 % 65 %
Zmiana temperatury 1,4°C 2,6°C
Maksymalna temperatura 13,2°C 13,2°C
Minimalna temperatura 10,1°C 10,1°C
QPF 27,5564 mm 1,0849

Systemy jednostek na świecie

Systemy jednostek według kraju

Większość krajów poza Stanami Zjednoczonymi używa systemu METRIC, a Stany Zjednoczone – systemu IMPERIAL. W niektórych krajach, np. w Wielkiej Brytanii i Kanadzie, stosuje się hybrydę obu systemów. Mapę i pełną listę krajów, w których obowiązuje system metryczny, znajdziesz w artykule Metrication (w języku angielskim).

Jednostki światowe
system

Przeliczanie jednostek z odpowiedzi interfejsu Weather API

Ręczne przeliczanie jednostek

Jednostki możesz przeliczać ręcznie za pomocą tego skryptu:

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

Przeliczanie jednostek za pomocą biblioteki

Możesz też użyć biblioteki takiej jak convert-units, aby przeliczać jednostki:


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