11. Qt - síťové služby

Weather map

Na internetu existuje řada služeb poskytujících meteorologická data pomocí REST API. Data jsou typicky vracena ve formátu JSON, který je možné v Qt zpracovat pomocí tříd QJsonDocument, QJsonObject a QJsonArray.

V tomto cvičení bude aplikace načítat:

  • aktuální počasí
  • předpověď počasí
  • východ a západ slunce
  • informace o městě a souřadnicích
  • meteorologické ikony

Komunikace bude realizována pomocí tříd QNetworkAccessManager, QNetworkRequest a QNetworkReply.

Podklady pro cvičení

OpenWeatherMap

Na adrese https://openweathermap.org lze získat informace o současném počasí a pomocí API lze data číst. Data jsou uložena ve formátu JSON a je třeba je v Qt dekódovat, aby je bylo možné použít.

https://api.openweathermap.org/data/2.5/weather?q=prague&appid=9015878572d5a56d22bafb7d1e71c92e

API Key:

9015878572d5a56d22bafb7d1e71c92e

Obrázky počasí lze najít na odkazu:

http://openweathermap.org/img/wn/04d@2x.png

kde 04d je typ ikony získaný v JSON objektu.


Open-Meteo

Pro aktuální verzi cvičení bude využita služba Open-Meteo:

https://open-meteo.com/

Výhodou Open-Meteo je jednoduché použití bez nutnosti registrace nebo API klíče. Služba poskytuje data ve formátu JSON a umožňuje získávat aktuální počasí, předpověď, astronomické údaje i geolokační informace.

Vyhledání města (Geocoding API)

Vyhledání města a získání zeměpisných souřadnic:

https://geocoding-api.open-meteo.com/v1/search?name=Prague

Aktuální počasí

Ukázka načtení aktuálního počasí:

https://api.open-meteo.com/v1/forecast?latitude=50.08804&longitude=14.42076&current=temperature_2m,relative_humidity_2m,surface_pressure,weather_code&timezone=auto

Východ a západ slunce

https://api.open-meteo.com/v1/forecast?latitude=50.08804&longitude=14.42076&timezone=auto&forecast_days=1&daily=sunrise,sunset

Hodinová předpověď

https://api.open-meteo.com/v1/forecast?latitude=50.08804&longitude=14.42076&hourly=temperature_2m&timezone=auto

courses/b2b99ppc/tutorials/11.txt · Last modified: 2026/05/07 07:20 by nentvond