====== 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í ===== {{ :courses:b2b99ppc:tutorials:open-meteo_template.zip | Open-Meteo template }} {{ :courses:b2b99ppc:tutorials:weather_template.zip | OpenWeatherMap template}} {{ :courses:b2b99ppc:tutorials:ppc-tut11-qtweather-template-jk-update2025.zip | Template QtWeather (2025, JK)}} ------- ===== 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¤t=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