Weather app using Vanilla JavaScript

The following approach covers how to create a Weather Application in Vanilla JavaScript using Open Weather Map API. Using this API, we can get weather data for each coordinate.
Project Setup:
- Step 1: Now go to https://openweathermap.org/ and create an account and get your API KEY.
- Step 2: After that, you can create a folder and add a file, for example, index.html and script.js file.
- Step 3: We can fetch geographical coordinates using the following approaches:
- Calling API by geographical coordinates- latitude and longitude
- Calling API by city ID
api.openweathermap.org/data/2.5/weather?id={city id}&appid={API key}
Example:
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <!--The CSS styling--> <style> * { margin: 0; padding: 0; box-sizing: border-box; } body { height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; background: linear-gradient(rgb(123, 184, 104), rgb(13, 87, 10)); font-size: 2rem; font-family: sans-serif; color: rgb(7, 9, 10); } .container { height: 20rem; width: 15rem; background-color: rgb(152, 228, 165); text-align: center; padding-top: 12px; border-radius: 16px; border: 2px solid rgb(14, 43, 1); } </style> </head> <body> <div class="container"> <div class="icon">---</div> <div class="temp">-°C</div> <div class="summary">----</div> <div class="location"></div> </div> <!--Linking the javascript code--> <script src="script.js"></script> </body> </html> |
Javascript
// Declaring the variables let lon; let lat; let temperature = document.querySelector(".temp"); let summary = document.querySelector(".summary"); let loc = document.querySelector(".location"); let icon = document.querySelector(".icon"); const kelvin = 273; window.addEventListener("load", () => { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition((position) => { console.log(position); lon = position.coords.longitude; lat = position.coords.latitude; // API ID const api = "6d055e39ee237af35ca066f35474e9df"; // API URL const base = `http://api.openweathermap.org/data/2.5/weather?lat=${lat}&` + `lon=${lon}&appid=6d055e39ee237af35ca066f35474e9df`; // Calling the API fetch(base) .then((response) => { return response.json(); }) .then((data) => { console.log(data); temperature.textContent = Math.floor(data.main.temp - kelvin) + "°C"; summary.textContent = data.weather[0].description; loc.textContent = data.name + "," + data.sys.country; let icon1 = data.weather[0].icon; icon.innerHTML = `<img src="icons/${icon1}.svg" style= 'height:10rem'/>`; }); }); } }); |
Output: Click here to see live code output




