Skip to content

Latest commit

 

History

History
800 lines (588 loc) · 17.4 KB

4.Documentation.apiOpenWeather.md

File metadata and controls

800 lines (588 loc) · 17.4 KB

Documentație pentru Funcțiile din apiOpenWeather.js

Acest fișier conține funcții care interacționează cu API-ul OpenWeather pentru a obține date meteo pentru diverse locații. Mai jos este o descriere detaliată a fiecărei funcții, modul de utilizare și exemple de integrare în alte fișiere.

Cum să Folosești Funcțiile din apiOpenWeather.js

Import și Export

Pentru a utiliza funcțiile din apiOpenWeather.js în alte fișiere, trebuie mai întâi să le exporți și să le imporți corespunzător.

Export

În apiOpenWeather.js, funcțiile sunt exportate astfel:

export {
  getWeatherByCityName,
  getWeatherByCoordinates,
  getWeatherForecastByCityName,
  getWeatherForecastByCoordinates,
  getUVIndex,
  getAirPollution,
  getGeocoding,
  getReverseGeocoding,
  getWeatherMap,
  getAirPollutionForecast,
  getAirPollutionHistory,
  getWeatherIconUrl,
};

Import

Pentru a importa și utiliza aceste funcții în alte fișiere, folosește import:

import {
  getWeatherByCityName,
  getWeatherForecastByCityName,
} from './apiOpenWeather.js';

Descrierea Funcțiilor și Modul de Utilizare

1. fetchFromAPI(url)

Descriere

Funcție auxiliară pentru a face cereri HTTP și a obține date de la API.

Parametri

  • url (string): URL-ul pentru cererea API.

Returnează

Un Promise care se rezolvă cu datele obținute de la API.

Exemplu de Utilizare

const API_KEY = 'c28b86768a874c70b1ecd1343e8f0f24';
const BASE_URL = 'https://api.openweathermap.org/data/2.5';

async function fetchFromAPI(url) {
  const response = await fetch(url);
  const data = await response.json();
  return data;
}

Detalii Importante

Această funcție este folosită intern de toate celelalte funcții pentru a trimite cereri API și a prelua date. Nu este destinată utilizării directe.

2. getWeatherByCityName(city)

Descriere

Obține datele meteo actuale pentru un oraș specificat.

Parametri

  • city (string): Numele orașului.

Returnează

Un Promise care se rezolvă cu datele meteo pentru orașul specificat.

Exemplu de răspuns

{
  "coord": { "lon": 26.1025, "lat": 44.4268 },
  "weather": [
    { "id": 800, "main": "Clear", "description": "clear sky", "icon": "01d" }
  ],
  "base": "stations",
  "main": {
    "temp": 28.02,
    "feels_like": 27.79,
    "temp_min": 26.1,
    "temp_max": 30.56,
    "pressure": 1012,
    "humidity": 60
  },
  "visibility": 10000,
  "wind": { "speed": 2.68, "deg": 305, "gust": 3.66 },
  "clouds": { "all": 0 },
  "dt": 1623244323,
  "sys": {
    "type": 2,
    "id": 2038501,
    "country": "RO",
    "sunrise": 1623193180,
    "sunset": 1623251100
  },
  "timezone": 10800,
  "id": 683506,
  "name": "Bucharest",
  "cod": 200
}

Exemplu de Utilizare

import { getWeatherByCityName } from './apiOpenWeather.js';

getWeatherByCityName('București')
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('Error fetching weather data:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • name: Numele orașului.
  • main.temp: Temperatura curentă.
  • weather[0].description: Descrierea vremii.
  • main.humidity: Umiditatea.

3. getWeatherByCoordinates(lat, lon)

Descriere

Obține datele meteo actuale pentru coordonate geografice specificate.

Parametri

  • lat (number): Latitudinea locației.
  • lon (number): Longitudinea locației.

Returnează

Un Promise care se rezolvă cu datele meteo pentru coordonatele specificate.

Exemplu de răspuns

Vezi getWeatherByCityName.

Exemplu de Utilizare

import { getWeatherByCoordinates } from './apiOpenWeather.js';

getWeatherByCoordinates(44.4268, 26.1025)
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('Error fetching weather data:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • Format similar cu cel al funcției getWeatherByCityName.

4. getWeatherForecastByCityName(city)

Descriere

Obține prognoza meteo pe 5 zile la intervale de 3 ore pentru un oraș specificat.

Parametri

  • city (string): Numele orașului.

Returnează

Un Promise care se rezolvă cu datele meteo pentru orașul specificat.

Exemplu de răspuns

{
  "cod": "200",
  "message": 0,
  "cnt": 40,
  "list": [
    {
      "dt": 1623253200,
      "main": {
        "temp": 28.52,
        "feels_like": 28.65,
        "temp_min": 28.52,
        "temp_max": 28.52,
        "pressure": 1013,
        "sea_level": 1013,
        "grnd_level": 1007,
        "humidity": 54
      },
      "weather": [
        {
          "id": 800,
          "main": "Clear",
          "description": "clear sky",
          "icon": "01d"
        }
      ],
      "clouds": { "all": 1 },
      "wind": { "speed": 2.68, "deg": 305 },
      "visibility": 10000,
      "pop": 0,
      "sys": { "pod": "d" },
      "dt_txt": "2021-06-09 15:00:00"
    }
    // ...alte date
  ],
  "city": {
    "id": 683506,
    "name": "Bucharest",
    "coord": { "lat": 44.4268, "lon": 26.1025 },
    "country": "RO",
    "population": 1877155,
    "timezone": 10800,
    "sunrise": 1623193180,
    "sunset": 1623251100
  }
}

Exemplu de Utilizare

import { getWeatherForecastByCityName } from './apiOpenWeather.js';

getWeatherForecastByCityName('București')
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('Error fetching weather data:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • list: O listă de date meteo pentru intervale de 3 ore.
  • city.name: Numele orașului.
  • list[0].main.temp: Temperatura la un anumit interval.
  • list[0].weather[0].description: Descrierea vremii la un anumit interval.

5. getWeatherForecastByCoordinates(lat, lon)

Descriere

Obține prognoza meteo pe 5 zile la intervale de 3 ore pentru coordonate geografice specificate.

Parametri

  • lat (number): Latitudinea locației.
  • lon (number): Longitudinea locației.

Returnează

Un Promise care se rezolvă cu datele meteo pentru coordonatele specificate.

Exemplu de răspuns

Vezi getWeatherForecastByCityName.

Exemplu de Utilizare

import { getWeatherForecastByCoordinates } from './apiOpenWeather.js';

getWeatherForecastByCoordinates(44.4268, 26.1025)
  .then(data => {
    console.log(data);
  })
  .catch(error => {
    console.error('Error fetching weather data:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • Format similar cu cel al funcției getWeatherForecastByCityName.

6. getUV

Index(lat, lon)

Descriere

Obține indicele UV pentru coordonate geografice specificate.

Parametri

  • lat (number): Latitudinea locației.
  • lon (number): Longitudinea locației.

Returnează

Un Promise care se rezolvă cu indicele UV pentru coordonatele specificate.

Exemplu de răspuns

{
  "lat": 44.4268,
  "lon": 26.1025,
  "date_iso": "2021-06-09T12:00:00Z",
  "date": 1623244800,
  "value": 7.15
}

Exemplu de Utilizare

import { getUVIndex } from './apiOpenWeather.js';

getUVIndex(44.4268, 26.1025)
  .then(data => {
    console.log(`Indicele UV pentru coordonatele [44.4268, 26.1025]:`, data);
  })
  .catch(error => {
    console.error('Error fetching UV index:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • lat: Latitudinea.
  • lon: Longitudinea.
  • date_iso: Data și ora pentru care a fost calculat indicele UV.
  • value: Valoarea indicele UV.

7. getAirPollution(lat, lon)

Descriere

Obține datele despre poluarea aerului pentru coordonate geografice specificate.

Parametri

  • lat (number): Latitudinea locației.
  • lon (number): Longitudinea locației.

Returnează

Un Promise care se rezolvă cu datele despre poluarea aerului pentru coordonatele specificate.

Exemplu de răspuns

{
  "coord": { "lon": 26.1025, "lat": 44.4268 },
  "list": [
    {
      "main": { "aqi": 3 },
      "components": {
        "co": 201.94,
        "no": 0.0,
        "no2": 0.0,
        "o3": 68.78,
        "so2": 0.64,
        "pm2_5": 15.46,
        "pm10": 20.23,
        "nh3": 0.0
      },
      "dt": 1623244800
    }
  ]
}

Exemplu de Utilizare

import { getAirPollution } from './apiOpenWeather.js';

getAirPollution(44.4268, 26.1025)
  .then(data => {
    console.log(
      `Poluarea aerului pentru coordonatele [44.4268, 26.1025]:`,
      data
    );
  })
  .catch(error => {
    console.error('Error fetching air pollution data:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • coord: Coordonatele pentru care s-au obținut datele.
  • list[0].main.aqi: Indexul calității aerului.
  • list[0].components: Componentele poluării (CO, NO, NO2, O3, SO2, PM2.5, PM10, NH3).

8. getGeocoding(city)

Descriere

Obține coordonatele geografice pentru un oraș specificat.

Parametri

  • city (string): Numele orașului.

Returnează

Un Promise care se rezolvă cu coordonatele geografice pentru orașul specificat.

Exemplu de răspuns

[
  {
    "name": "Bucharest",
    "local_names": { "ro": "București" },
    "lat": 44.4268,
    "lon": 26.1025,
    "country": "RO"
  }
]

Exemplu de Utilizare

import { getGeocoding } from './apiOpenWeather.js';

getGeocoding('București')
  .then(data => {
    console.log(`Coordonatele pentru București:`, data);
  })
  .catch(error => {
    console.error('Error fetching geocoding data:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • name: Numele orașului.
  • lat: Latitudinea.
  • lon: Longitudinea.
  • country: Codul țării.

9. getReverseGeocoding(lat, lon)

Descriere

Obține numele locației pentru coordonate geografice specificate (geocodare inversă).

Parametri

  • lat (number): Latitudinea locației.
  • lon (number): Longitudinea locației.

Returnează

Un Promise care se rezolvă cu numele locației pentru coordonatele specificate.

Exemplu de răspuns

[
  {
    "name": "Bucharest",
    "local_names": { "ro": "București" },
    "lat": 44.4268,
    "lon": 26.1025,
    "country": "RO"
  }
]

Exemplu de Utilizare

import { getReverseGeocoding } from './apiOpenWeather.js';

getReverseGeocoding(44.4268, 26.1025)
  .then(data => {
    console.log(
      `Numele locației pentru coordonatele [44.4268, 26.1025]:`,
      data
    );
  })
  .catch(error => {
    console.error('Error fetching reverse geocoding data:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • name: Numele locației.
  • lat: Latitudinea.
  • lon: Longitudinea.
  • country: Codul țării.

10. getWeatherMap(layer, zoom, x, y)

Descriere

Obține hărți meteo pentru straturi specifice (precipitații, nori, temperatură etc.).

Parametri

  • layer (string): Tipul stratului de hartă (ex. precipitații, temperatură).
  • zoom (number): Nivelul de zoom al hărții.
  • x (number): Coordonata X a hărții.
  • y (number): Coordonata Y a hărții.

Returnează

Un Promise care se rezolvă cu răspunsul HTTP pentru imaginea stratului de hartă.

Exemplu de Utilizare

import { getWeatherMap } from './apiOpenWeather.js';

getWeatherMap('precipitation', 10, 523, 256)
  .then(response => {
    console.log(`Harta meteo pentru stratul de precipitații:`, response);
  })
  .catch(error => {
    console.error('Error fetching weather map:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • Răspunsul este o imagine care poate fi afișată într-un element HTML <img> sau salvată pe disc.

11. getAirPollutionForecast(lat, lon)

Descriere

Obține prognoza pentru poluarea aerului pentru coordonate geografice specificate.

Parametri

  • lat (number): Latitudinea locației.
  • lon (number): Longitudinea locației.

Returnează

Un Promise care se rezolvă cu prognoza pentru poluarea aerului pentru coordonatele specificate.

Exemplu de răspuns

{
  "coord": { "lon": 26.1025, "lat": 44.4268 },
  "list": [
    {
      "main": { "aqi": 3 },
      "components": {
        "co": 201.94,
        "no": 0.0,
        "no2": 0.0,
        "o3": 68.78,
        "so2": 0.64,
        "pm2_5": 15.46,
        "pm10": 20.23,
        "nh3": 0.0
      },
      "dt": 1623244800
    }
  ]
}

Exemplu de Utilizare

import { getAirPollutionForecast } from './apiOpenWeather.js';

getAirPollutionForecast(44.4268, 26.1025)
  .then(data => {
    console.log(
      `Prognoza poluării aerului pentru coordonatele [44.4268, 26.1025]:`,
      data
    );
  })
  .catch(error => {
    console.error('Error fetching air pollution forecast:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • coord: Coordonatele pentru care s-au obținut datele.
  • list[0].main.aqi: Indexul calității aerului.
  • list[0].components: Componentele poluării (CO, NO, NO2, O

3, SO2, PM2.5, PM10, NH3).

12. getAirPollutionHistory(lat, lon, start, end)

Descriere

Obține istoricul poluării aerului pentru coordonate geografice specificate între datele de start și end (în format UNIX timestamp).

Parametri

  • lat (number): Latitudinea locației.
  • lon (number): Longitudinea locației.
  • start (number): Timpul de început al perioadei în format UNIX timestamp.
  • end (number): Timpul de sfârșit al perioadei în format UNIX timestamp.

Returnează

Un Promise care se rezolvă cu istoricul poluării aerului pentru coordonatele specificate.

Exemplu de răspuns

{
  "coord": { "lon": 26.1025, "lat": 44.4268 },
  "list": [
    {
      "main": { "aqi": 3 },
      "components": {
        "co": 201.94,
        "no": 0.0,
        "no2": 0.0,
        "o3": 68.78,
        "so2": 0.64,
        "pm2_5": 15.46,
        "pm10": 20.23,
        "nh3": 0.0
      },
      "dt": 1623244800
    }
  ]
}

Exemplu de Utilizare

import { getAirPollutionHistory } from './apiOpenWeather.js';

getAirPollutionHistory(44.4268, 26.1025, 1623244800, 1623331200)
  .then(data => {
    console.log(
      `Istoricul poluării aerului pentru coordonatele [44.4268, 26.1025]:`,
      data
    );
  })
  .catch(error => {
    console.error('Error fetching air pollution history:', error);
  });

Detalii Importante

Elemente Cheie ale Răspunsului:

  • coord: Coordonatele pentru care s-au obținut datele.
  • list[0].main.aqi: Indexul calității aerului.
  • list[0].components: Componentele poluării (CO, NO, NO2, O3, SO2, PM2.5, PM10, NH3).

13. getWeatherIconUrl(iconCode)

Descriere

Obține URL-ul iconiței meteo pentru un cod specific de iconiță furnizat de API-ul OpenWeather.

Parametri

  • iconCode (string): Codul iconiței meteo (de exemplu, 01d, 02n).

Returnează

Un URL sub formă de string care poate fi utilizat pentru a descărca și afișa iconița meteo.

Exemplu de răspuns

Nu există un răspuns JSON propriu-zis deoarece funcția returnează direct un URL sub formă de string. URL-ul poate fi utilizat pentru a încărca imaginea iconiței meteo.

Exemplu de Utilizare

import { getWeatherIconUrl } from './apiOpenWeather.js';

const iconCode = '01d';
const iconUrl = getWeatherIconUrl(iconCode);

console.log(`URL pentru iconița meteo cu codul ${iconCode}:`, iconUrl);
// URL pentru iconița meteo cu codul 01d: http://openweathermap.org/img/wn/01d.png

Iată ce reprezintă aceste coduri:

  • 01d: Zi însorită (clear sky during the day).
  • 01n: Noapte senină (clear sky during the night).
  • 02d: Zi cu câțiva nori (few clouds during the day).
  • 02n: Noapte cu câțiva nori (few clouds during the night).
  • 03d: Zi parțial înnorată (scattered clouds during the day).
  • 03n: Noapte parțial înnorată (scattered clouds during the night).
  • 04d: Zi foarte înnorată (broken clouds during the day).
  • 04n: Noapte foarte înnorată (broken clouds during the night).
  • 09d: Zi cu ploi (shower rain during the day).
  • 09n: Noapte cu ploi (shower rain during the night).
  • 10d: Zi cu ploaie (rain during the day).
  • 10n: Noapte cu ploaie (rain during the night).
  • 11d: Zi cu furtună (thunderstorm during the day).
  • 11n: Noapte cu furtună (thunderstorm during the night).
  • 13d: Zi cu zăpadă (snow during the day).
  • 13n: Noapte cu zăpadă (snow during the night).
  • 50d: Zi cu ceață (mist during the day).
  • 50n: Noapte cu ceață (mist during the night).

Detalii Importante

Elemente Cheie ale Răspunsului:

  • URL-ul generat poate fi utilizat într-un element HTML <img> pentru a afișa iconița meteo.
  • URL-ul este generat pe baza unui șablon fix, care include codul iconiței meteo.

Exemple de afișare a iconiței în HTML

Pentru a afișa iconița meteo în aplicația ta, poți utiliza URL-ul returnat de funcția getWeatherIconUrl într-un element HTML <img>:

<img id="weather-icon" src="URL_GENRATED_BY_FUNCTION" alt="Weather Icon" />

În JavaScript, poți actualiza dinamic src-ul imaginii:

document.getElementById('weather-icon').src = iconUrl;

Prin utilizarea acestei funcții, poți îmbunătăți vizualizarea datelor meteo în aplicația ta prin adăugarea iconițelor relevante pentru condițiile meteo curente.