-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathscript.js
More file actions
68 lines (65 loc) · 2.01 KB
/
script.js
File metadata and controls
68 lines (65 loc) · 2.01 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
window.location = 'https://www.google.com'
const searchBar = document.querySelector('.searchBar');
const button = document.querySelector('.clickButton');
const resultContainer = document.querySelector('.resultContainer')
let IP = searchBar.value;
let mymap;
console.log(IP);
let URL = `https://ip-api.com/json/${IP}`;
main(URL);
function main(URL){
fetch(URL)
.then(function(response) {
response.json().then(jsonData => {
console.log(jsonData);
let lat= jsonData.lat;
let lon= jsonData.lon;
let chords = [lat,lon];
addMap(chords);
let results = getResults(jsonData, IP);
resultContainer.innerHTML = results
console.log(results);
});
})
.catch(function(error) {
console.log(error)
});
}
button.addEventListener('click', () =>{
console.log('clicked');
IP = searchBar.value;
URL = `http://ip-api.com/json/${IP}`;
mymap.remove();
main(URL);
})
function addMap(chords){
console.log(chords);
mymap = L.map('mapid').setView(chords, 15);
L.tileLayer('https://api.mapbox.com/styles/v1/{id}/tiles/{z}/{x}/{y}?access_token={accessToken}', {
attribution: 'Map data © <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, Imagery © <a href="https://www.mapbox.com/">Mapbox</a>',
maxZoom: 18,
id: 'mapbox/streets-v11',
tileSize: 512,
zoomOffset: -1,
accessToken: 'pk.eyJ1IjoiaWxsdW1pLTY5IiwiYSI6ImNrb3dqdng5czAzOHAycGs4cnVjdjV1dTIifQ.pkLGMz2DkYn7UnpsR0OHdw'
}).addTo(mymap);
}
function getResults(mainData, ip){
console.log("maps");
return `<div class="item">
<p class="resultHead ipHead">IP ADDRESS</p>
<p>${ip}</p>
</div>
<div class="item">
<p class="resultHead">COUNTRY</p>
<p>${mainData.country}</p>
</div>
<div class="item">
<p class="resultHead">CITY</p>
<p>${mainData.city}</p>
</div>
<div class="item">
<p class="resultHead">ISP</p>
<p>${mainData.isp}</p>
</div>`
}