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' />`; }); }); } }); |