Sistem satuan Weather API

Anda dapat memilih dari METRIC atau IMPERIAL untuk semua endpoint Weather API.

Untuk meminta sistem satuan, tetapkan units_system ke METRIC atau IMPERIAL. Tidak ada units_system yang ditentukan yang akan ditetapkan secara default ke METRIC.

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

Nilai Weather API diubah dari METRIC menjadi unit IMPERIAL

Tabel berikut mencantumkan nilai respons Weather API yang dapat dikonversi antarsistem unit.

Konversi Unit (Metrik ke Imperial) Nilai Weather API
Celsius (°C) ke Fahrenheit (°F) Suhu, Terasa, Titik Embun, Indeks Panas, Angin Dingin, Suhu Bola Basah
Milimeter (mm) ke Inci (in) Presipitasi, QPF, Ketebalan Es
Kilometer/jam (km/jam) ke Mil/jam (mph) Kecepatan Angin, Angin Kencang
Kilometer (km) ke Mil (mi) Visibilitas

Contoh untuk respons currentConditions

Tabel berikut mencantumkan nilai yang disertakan dalam isi respons permintaan currentConditions. Nilai dalam warna biru tebal telah diubah dari satuan METRIC menjadi IMPERIAL:

Fitur Weather API METRIC (default) IMPERIAL
Waktu Saat Ini 2025-03-06T11:08:49.126979608Z 6/3/2025, 06.08.49
Zona Waktu Amerika/New_York Amerika/New_York
Adalah Siang Hari FALSE FALSE
Deskripsi Cuaca Sebagian besar berawan Sebagian besar berawan
Suhu 11,5 °C 11,4 °C
Terasa Seperti 9,9 °C 49,7 °F
Titik Embun 8,7 °C 47,6 °F
Indeks Panas 11,5 °C 11,4 °C
Angin Dingin 9,9 °C 49,7 °F
Kelembapan Relatif 83 % 83 %
Indeks UV 0 0
Probabilitas Presipitasi 9 % 9 %
Presipitasi 0 mm 0 in
Probabilitas Badai Petir 0 0
Tekanan Udara 991,47 mb 991,47 mb
Arah Angin 275 ° 275 °
Arah Angin (Utara, Selatan, Timur, Barat) BARAT BARAT
Kecepatan Angin 14 km/jam 9 mpj
Angin Kencang 27 km/jam 17 mpj
Visibilitas 10 km 10 km
Cloud Cover 65 % 65 %
Perubahan Suhu 1,4 °C 2,6 °F
Suhu Maksimal 13,2 °C 55,8 °F
Suhu minimum 10,1 °C 50,1 °F
QPF 27,5564 mm 27,5 mm

Sistem satuan di dunia

Sistem satuan menurut negara

Sebagian besar negara di luar Amerika Serikat menggunakan sistem METRIC, sedangkan Amerika Serikat menggunakan sistem IMPERIAL. Beberapa negara, seperti Inggris Raya dan Kanada, menggunakan gabungan dari kedua sistem tersebut. Untuk peta dan daftar lengkap negara yang menggunakan sistem metrik, lihat Pengukuran.

Sistem unit
dunia

Mengonversi satuan dari respons Weather API

Mengonversi satuan secara manual

Anda dapat mengonversi satuan secara manual menggunakan skrip berikut:

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

Mengonversi satuan menggunakan library

Anda juga dapat menggunakan library seperti convert-units untuk mengonversi unit:


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