Das Wetter-Widget
Vor kurzem bin ich gefragt worden wie man sich so ein Wetter-Widget wie auf dieser Seite bauen kann. Die Daten kommen von einem freien Wetterprovider open-meteo.com und werden per Javascript gelesen und angezeigt.
Das Wetter-Widget
Vor kurzem bin ich gefragt worden wie man sich so ein Wetter-Widget wie auf dieser Seite bauen kann. Die Daten kommen von einem freien Wetterprovider open-meteo.com und werden per Javascript gelesen und angezeigt. Wie man die API bedient und mit welche URL man die Daten abholen kann, zeigt die Seite Weather Forecast API. Dort kann man sich die gewünschten Daten zusammen klicken und dann die entsprechende URL kopieren. Neben dem gewünschten Ort, gibt es zahlreiche Parameter und Datenfelder, die man abrufen kann. Die gelieferten Daten hole ich mir im JSON-Format ab und Javascript zeigt sie dann an.
Hier ein kleines Beispiel:
(function ($) { "use strict"; // Auf der Website muss es ein div mit der id daswetter geben. Dort schrieben wir dann die Wetterdaten rein. const widget = document.querySelector("#daswetter"); const sewesser = async function () { // Standort angeben mit Breiten- und Längengrad und denm Namen const latitude = 50.11552; const longitude = 8.68417; const city = "Frankfurt a.M."; var weatherHTML = ""; // Hole die Daten bei open-meteo.com ab const weatherResponse = await fetch( `https://api.open-meteo.com/v1/forecast?latitude=${latitude}&longitude=${longitude}¤t=temperature_2m,relative_humidity_2m,apparent_temperature&timezone=Europe%2FBerlin&forecast_hours=1&past_hours=1` ); if (!weatherResponse.ok) weatherHTML = "Konnte Wetterdaten nicht laden"; const weatherData = await weatherResponse.json(); console.log(weatherData); // zum Testen Ausgabe der Daten in der Javascript Console // als Beispiel nehmen wir die aktuelle Temperatur const curWeather = weatherData.current.temperature_2m; var weatherHTML = ""; weatherHTML = weatherHTML + "<h4>" + city + "</h4>"; weatherHTML = weatherHTML + "Temperatur: " + weatherData.current.temperature_2m.toString() + " " + weatherData.current_units.temperature_2m +"<br>"; weatherHTML = weatherHTML + "<br>Powered by Open-Meteo"; // Daten in das Widget schreiben widget.innerHTML = weatherHTML; }; sewesser(); }(window, document, jQuery));
Das ist natürlich nur ein kleines Beispiel ohne großes Fehlerhandling und soll der Anschauung und dem Verständnis dienen. Bei Fragen bin ich über das Kontaktformular zu erreichen.