Interaktivní Počasí Dashboard

<!DOCTYPE html>
<html dlouhý="cs">
<hlava>
  <meta charset="UTF-8">
 <název>Počasí Dashboard</název>
  https://cdn. jsdelivr.net/npm/chart.js
 <style>
 těloArial, sans-serif; margin: 20px; }
 canvas { max-width: 600px; margin: 20px auto; }
 Tabulka { Border-collapse: collapse; width: 100%; margin-top: 20px; }
 th, td { rámeček: 1px plné #ccc; vyplňování: 8px; text-align: center; }
 H1 { text-align: center; }
 </style>
</head>
<body>
 <h1>Weather Dashboard</h1>

 <canvas id="tempChart"></canvas>
 <canvas id="rainChart"></canvas>
 <canvas id="pressureChart"></canvas>
 <canvas id="humidityChart"></canvas> 
 <canvas id="windRose"></canvas>

 <table>
 <thead>
 <tr>
 <th>Datum</th>
 <th>Teplota (°C)</th>
 <th>Srážky (mm)</th>
 <th>Vítr (m/s)</th>
 <th>Směr větru</th> 
 <th>Vlhkost (%)</th>
 <th>Tlak (hPa)</th
> </tr>
 </thead>
 <tbody id="dataTable"></tbody>
 </table>

 <script>
 let tempChart, rainChart, pressureChart, humidityChart; 

 function initCharts() {
 tempChart = nový Chart(document. { font-family: getElementById("
tempChart type: "line",
 data: { labels: [], datasets: [{ label: "Teplota", data: [], borderColor: "red" }] }
 }); 

 rainChart = nový Chart(document."), {getElementById("rainChart"), {
 type: "bar",
datasety: [{ label: "Srážky", data: [], backgroundColor: "blue" }] }
 }); 

 pressureChart = nový Chart(document. Data: { Labels: [], getElementById("
pressureChart type: "line",
 data: { labels: [], datasets: [{ label: "Tlak", data: [], borderColor: "green" }] }
 }); 

 VlhkostGraf = nový Chart(document.(" type: "line", data: { labels: [], datasets: [{ label: "", data: [], : "green" }] } });   = getElementById("humidityChart"), {
 type: "line",
datové sady: [{ label: "Vlhkost", data: [], borderColor: "orange" }] }
 }); 
 }

 asynchronní funkce loadData() {
 try {
 const response = await fetch("https://content. Data: { Labels: [], Meteobridge.com/dashboard/ac8eb98b92d17efd828c3c3fcd31e78a/data.json");
        Const json = čekat response.json();

        Const Data = json.records.map(d => ({
 Datum: D.Datum,
 Teplota: D.Teplota ?? null,
 Rain: D.Rain ?? null,
 Vítr: D.Vítr ?? null,
          je: d.wind_je ?? null,
 Hum: D. Vlhkost?? null,
 Press: D.Pressure ?? null
        }));

        // Aktualizace grafů
        tempChart.data.labels = data.map(d => d.date);
        tempChart.data.datasets[0].data = data.map(d => d.temp);
        tempChart.update();

        rainChart.data.labels = data.map(d => d.date);
        rainChart.data.datasets[0].data = data.map(d => d.rain);
        rainChart.update();

        pressureChart.data.labels = data.map(d => d.date);
        pressureChart.data.datasets[0].data = data.map(d => d.press);
        pressureChart.update();

        VlhkostGraf.data.labels = data.map(d => d.date);
        VlhkostGraf.data.datasets[0].data = data.map(d => d.hum);
        VlhkostGraf.update();

        // Tabulka
        Const tbody = dokument.getElementById("dataTable");
        tbody.innerHTML = "";
 Data.pro Each(d => {
          tbody.innerHTML += '<tr>
            <td>${d.date}</td>
 <td>${d.temp ?? "--"}</TD>
 <td>${d.rain ?? "--"}</TD>
 <td>${d.wind?? "--"}</TD>
            <td>${d.je ?? "--"}</TD>
 <td>${d.hum ?? "--"}</TD>
 <td>${d.press ?? "--"}</TD>
 </tr>';
        });
      } catch (e) {
        console.error("chyba při načítání že", e);
      }
    }

    initCharts();
    loadData();
  </script>
</body>
</html>

Comments

Napsat komentář

Zjistěte více z meteo Přední Výton

Přihlaste se k odběru a pokračujte ve čtení. Získáte přístup k úplnému archivu.

Pokračovat ve čtení