-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
68 lines (57 loc) · 2.44 KB
/
script.js
File metadata and controls
68 lines (57 loc) · 2.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
var city;
var icon;
var description;
var temperature;
var tempCheck = "c";
// function to retrieve latitude and longitude
function weather() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
getWeather(position.coords.latitude, position.coords.longitude);
});
} else {
alert("err...geolocation disabled!");
}
}
weather(); // to get the geolocation
function getWeather(latitude, longitude) {
var xmlHTTP = new XMLHttpRequest();
var url = 'https://fcc-weather-api.glitch.me/api/current?lat='+latitude+'&lon='+longitude;
xmlHTTP.open('GET', url, true);
xmlHTTP.send();
xmlHTTP.onload = function() {
if (xmlHTTP.status === 200) {
var recieved = xmlHTTP.response;
recieved = JSON.parse(recieved);
var city = recieved.name + ', ' + recieved.sys.country;
var cityHTML = '<h2>'+city+'</h2>';
document.getElementById("city").innerHTML = cityHTML;
icon = recieved.weather[0].icon;
var image = '<img src='+icon+' width="50px" height="50px"/>';
document.getElementById("icon").innerHTML = image;
description = recieved.weather[0].main + ', ' + recieved.weather[0].description;
var descriptionHTML = '<p>'+description+'</p>';
document.getElementById("description").innerHTML = descriptionHTML;
temperature = recieved.main.temp;
var temperatureHTML = '<p>'+temperature+' °C</p>';
document.getElementById("temp").innerHTML = temperatureHTML;
toggle.addEventListener("click", function() {
if (tempCheck === "c") {
tempCheck = "f";
temperature = ((9 * recieved.main.temp) / 5) + 32;
temperature = temperature.toFixed(2);
var temperatureHTML = '<p>'+temperature+' °F</p>';
document.getElementById("temp").innerHTML = temperatureHTML;
} else {
tempCheck = "c";
temperature = (5 * (temperature - 32)) / 9;
temperature = temperature.toFixed(2);
var temperatureHTML = '<p>'+temperature+' °C</p>';
document.getElementById("temp").innerHTML = temperatureHTML;
}
});
} else {
alert("err...api error!");
}
}
}