-
Notifications
You must be signed in to change notification settings - Fork 0
/
app.js
139 lines (117 loc) · 4.15 KB
/
app.js
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
let markers = {};
let map;
let trueTotalTime = 0;
let flag = false;
function setMapOnAll(map) {
for (let username in markers) {
markers[username].setMap(map);
}
}
function clearMarkers() {
setMapOnAll(null);
}
function showMarkers() {
setMapOnAll(map);
}
function addMarker(username, marker) {
markers[username] = marker;
}
function deleteMarker(username) {
clearMarkers();
delete markers[username];
showMarkers();
}
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 16,
//gets rid of unecessary labels
styles: [
{
"featureType": "all",
"elementType": "labels",
"stylers": [
{ "visibility": "off" }
]
}, {
"featureType": "road",
"elementType": "labels",
"stylers": [
{ "visibility": "on" }
]
}
]
});
var pos;
// Try HTML5 geolocation.
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function (position) {
pos = {
lat: position.coords.latitude,
lng: position.coords.longitude
};
map.setCenter(pos);
//Position Marker
var image = 'imgs/hereicon.png';
let currentMarker = new google.maps.Marker({
position: pos,
map: map,
icon: image
});
});
} else {
// Browser doesn't support Geolocation
handleLocationError(false, infoWindow, map.getCenter());
}
//Parking icon image
var parkImage = 'imgs/parkicon.png';
// map.setCenter(markerLocation);
function update() {
$.get("https://hurani.lib.id/parkfind@dev/getAllSpots/", function (data, status) {
for (var i = 0; i < data.length; i++) {
let owner = data[i];
let username = owner[0];
if (!owner[1].taken && !(username in markers)) {
let markerLocation = {lat: parseFloat(owner[1].location[0]), lng: parseFloat(owner[1].location[1])};
let marker = new google.maps.Marker({
position: markerLocation,
map: map,
icon: parkImage
})
marker.addListener("click",function(){
$("#spotInfo").show();
document.getElementById("name").innerHTML = username;
document.getElementById("price").innerHTML = owner[1].rate;
document.getElementById("taken").innerHTML = !owner[1].taken;
});
htmlUsername= document.getElementById("name").innerHTML;
if (username == htmlUsername) {
document.getElementById("taken").innerHTML = "true";
}
addMarker(username, marker);
} else if (owner[1].taken && username in markers) {
htmlUsername= document.getElementById("name").innerHTML;
if (username == htmlUsername) {
document.getElementById("taken").innerHTML = "unavailable";
}
deleteMarker(username);
}
}
flag = true;
})
};
update();
window.setInterval(update, 1000);
}
function handleLocationError(browserHasGeolocation, infoWindow, pos) {
infoWindow.setPosition(pos);
infoWindow.setContent(browserHasGeolocation ?
'Error: The Geolocation service failed.' :
'Error: Your browser doesn\'t support geolocation.');
infoWindow.open(map);
}
function formSubmit() {
let username = document.getElementById("usernameInput");
let address = document.getElementById("addressInput");
let rate = document.getElementById("rateInput");
fetch(`https://hurani.lib.id/parkfind@dev/signUpHost/username=${username}&address=${address}&rate=${rate}`)
}