Системы единиц измерения API погоды

Для всех конечных точек API погоды можно выбрать METRIC или IMPERIAL систему мер.

Чтобы запросить систему единиц, установите для 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

Значения API погоды изменены с метрических на имперские единицы

В следующей таблице перечислены значения ответа Weather API, которые можно преобразовать между системами единиц.

Перевод единиц измерения (из метрической системы в имперскую) Значения API погоды
Цельсия (°C) → Фаренгейта (°F) Температура, Ощущение, Точка росы, Индекс жары, Охлаждение ветром, Температура по влажному термометру
Миллиметры (мм) в дюймы (дюймы) Осадки, QPF, толщина льда
Километры/час (км/ч) в Мили/час (миль/ч) Скорость ветра, порыв ветра
Километры (км) в мили (ми) Видимость

Пример ответа currentConditions

В следующей таблице перечислены значения, включенные в тело ответа запроса currentConditions . Значения, выделенные полужирным синим шрифтом, были изменены с METRIC единиц на IMPERIAL :

Функция API погоды МЕТРИЧЕСКАЯ (по умолчанию) ИМПЕРИАЛ
Текущее время 2025-03-06T11:08:49.126979608Z 06.03.2025, 06:08:49
Часовой пояс Америка/Нью_Йорк Америка/Нью_Йорк
Дневное время ЛОЖЬ ЛОЖЬ
Описание погоды В основном облачно В основном облачно
Температура 11,5 °С 52,7 °F
Ощущение как 9,9 °С 49,7 °F
Точка росы 8,7 °С 47,6 °F
Индекс тепла 11,5 °С 52,7 °F
Ветер и холод 9,9 °С 49,7 °F
Относительная влажность 83 % 83 %
УФ-индекс 0 0
Вероятность осадков 9 % 9 %
Осадки 0 мм 0 в
Вероятность грозы 0 0
Давление воздуха 991,47 МБ 991,47 МБ
Направление ветра 275 ° 275 °
Направление ветра (кардинальное) ЗАПАД ЗАПАД
Скорость ветра 14 км/ч 9 миль в час
Порыв ветра 27 км/ч 17 миль в час
Видимость 10 км 6 миль
Облачный покров 65 % 65 %
Изменение температуры 1,4 °С 2,6 °F
Максимальная температура 13,2 °С 55,8 °F
Мин. температура 10,1 °С 50,1 °F
КФФ 27,5564 мм 1,0849 дюйма

Системы единиц измерения в мире

Системы единиц измерения по странам

Большинство стран за пределами США используют METRIC систему мер, в то время как в США используется IMPERIAL . Некоторые страны, например, Великобритания и Канада, используют гибрид обеих систем. Карту и полный список стран, использующих метрическую систему, см. в разделе «Метрика» .

Система мировых единиц

Конвертировать единицы измерения из ответа 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