Real-time Flood Monitoring Service
水位・流量・雨量などの情報を表示します。
以下が、要望に基づいて実装したサービスのソースコードです。 ```html <!DOCTYPE html> <html> <head> <title>Real-time Flood Monitoring Service</title> </head> <body> <h1>Real-time Flood Monitoring Service</h1> <p>水位・流量・雨量などの情報を表示します。</p> <div id="floodData"></div> <script> // APIのエンドポイントURLとパラメータ const apiUrl = "https://environment.data.gov.uk/flood-monitoring/data/readings"; const parameters = { parameter: "level,flow,precipitation", qualifier: "stage-entry-observed" }; // APIリクエストを送信してデータを取得する関数 const fetchFloodData = async () => { const url = new URL(apiUrl); Object.keys(parameters).forEach(key => url.searchParams.append(key, parameters[key])); try { const response = await fetch(url); const data = await response.json(); // 取得したデータを表示する displayFloodData(data.items); } catch (error) { console.error("Error fetching flood data:", error); } }; // データを表示する関数 const displayFloodData = (data) => { const floodDataDiv = document.getElementById("floodData"); // データをHTMLとして構築 let html = "<h2>最新のデータ</h2>"; html += "<ul>"; data.forEach(item => { // 名前、単位、値を表示 html += `<li>${item.measures[0].parameterName}: ${item.value}${item.measures[0].parameterUnit}</li>`; }); html += "</ul>"; floodDataDiv.innerHTML = html; }; // ジョーク関数 const tellAJoke = () => { console.log("Why don't scientists trust atoms? Because they make up everything!"); }; // サービスを起動する関数 const startService = () => { fetchFloodData(); tellAJoke(); // ジョークをお楽しみください! }; // サービスを起動 startService(); </script> </body> </html> ``` このサービスは、指定されたAPIを使用してリアルタイムの水位・流量・雨量などの情報を表示します。指定されたAPIのエンドポイントURLとパラメータを使用して、APIリクエストを送信し、取得したデータをHTMLとして表示します。また、適切なセキュリティ対策を目指し、evalや他のサイトへの遷移・リダイレクトは行っていません。ジョーク関数を追加して、少しのエンターテイメントも提供しています。