← Taso 5 – Keksijä

Oppitunti 3/8 ⏱ 35 minuuttia Premium

Sää verkkosivullasi

Rakenna kiva widget viikonlopun ennusteella – hyödyllinen asia kaikille neljälle projektille.

Näytän sinulle: data widgetiksi

Open-Meteo voi antaa myös ennusteen tuleville päiville. Lisää vain mitä haluat osoitteeseen:

https://api.open-meteo.com/v1/forecast?latitude=49.19&longitude=16.61&daily=temperature_2m_max,temperature_2m_min,weathercode&timezone=auto

Vastauksesta löydät daily.time (päivien lista), daily.temperature_2m_max ja daily.temperature_2m_min (korkeimmat ja matalimmat lämpötilat). Sama järjestys = ensimmäinen päivä vastaa ensimmäistä lämpötilaa.

Rakennat widgetin silmukassa:

<div id="pocasi" class="pocasi-widget"></div>

<script type="module">
  const adresa = 'https://api.open-meteo.com/v1/forecast?latitude=49.19&longitude=16.61&daily=temperature_2m_max,temperature_2m_min&timezone=auto';
  const data = await (await fetch(adresa)).json();

  const dny = data.daily.time;
  const max = data.daily.temperature_2m_max;
  const min = data.daily.temperature_2m_min;

  let html = '';
  for (let i = 0; i < 3; i++) {
    const den = new Date(dny[i]).toLocaleDateString('en-US', { weekday: 'long' });
    html += `<div class="den">
      <strong>${den}</strong>
      <span>${Math.round(min[i])}–${Math.round(max[i])} °C</span>
    </div>`;
  }
  document.querySelector('#pocasi').innerHTML = html;
</script>

Ja vähän CSS:ää, jotta se näyttää oikealta widgetiltä:

.pocasi-widget {
  display: flex;
  gap: 10px;
}
.pocasi-widget .den {
  border: 1px solid #ddd;
  border-radius: 12px;
  padding: 12px 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

Nyt sinun vuorosi 💪

Lisää sää-widget sinne missä se sopii projektiisi:

🏫 Koulun verkkosivu – ratkaisu

Koulutapahtumien sivulla: “Sää kouluretkelle.” Aseta koordinaatit kohteeseen – lapset ja vanhemmat arvostavat tietää mitä pakata.

🙋 Henkilökohtainen verkkosivu – ratkaisu

Headerissa tai footerissa: sää kaupungissasi henkilökohtaisena kosketuksena (“It’s 18 °C here in my town today”).

🌍 Matkakirja – ratkaisu

Jokaiselle suunnitellulle matkalle widget ennusteella kohteessa. Vaihda vain koordinaatit matkan sijainnin mukaan.

⚽ Seuran verkkosivu – ratkaisu

Ottelusivulla: “Sää lauantain otteluun.” Etsi kentän koordinaatit kartalta. Bonus: jos sadetta odotetaan, näytä “Bring a raincoat!”

💡

Mistä saan koordinaatit? Karttapalvelussa oikea klikkaus sijainnissa → “What’s here?” – koordinaatit ilmestyvät yläreunaan.

Tarkista: Verkkosivullasi on widget oikealla 3 päivän ennusteella, tyyliteltynä ulkoasuusi. Data latautuu livenä API:sta.

Mitä opit tästä oppitunnista