-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathscript-practice.js
93 lines (84 loc) · 2.96 KB
/
script-practice.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
'use strict';
// prettier-ignore
const months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
const form = document.querySelector('.form');
const containerWorkouts = document.querySelector('.workouts');
const inputType = document.querySelector('.form__input--type');
const inputDistance = document.querySelector('.form__input--distance');
const inputDuration = document.querySelector('.form__input--duration');
const inputCadence = document.querySelector('.form__input--cadence');
const inputElevation = document.querySelector('.form__input--elevation');
let map, mapEvt;
// render map and map click handler
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(
function (position) {
const { latitude, longitude } = position.coords;
const coords = [latitude, longitude];
const myLocation = `https://www.google.com/maps/@${latitude},${longitude}`;
console.log(myLocation);
// id='map'
map = L.map('map').setView(coords, 13); // 13 => zooming map
// L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
L.tileLayer('https://{s}.tile.openstreetmap.fr/hot/{z}/{x}/{y}.png', {
attribution:
'© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors',
}).addTo(map);
map.on('click', function (mapE) {
mapEvt = mapE;
form.classList.remove('hidden');
inputDistance.focus();
});
// map handler
// map.on('click', function (mapEvt) {
// // console.log(mapEvt);
// const { lat, lng } = mapEvt.latlng;
// const popup = L.popup({
// maxWidth: 250,
// minWidth: 100,
// autoClose: false,
// closeOnClick: false,
// className: 'running-popup',
// });
// const popupContent = 'Workout';
// L.marker([lat, lng])
// .addTo(map)
// .bindPopup(popup)
// .setPopupContent(popupContent)
// .openPopup();
// });
},
function (err) {
console.log({ err });
}
);
}
// form handler
form.addEventListener('submit', function (e) {
e.preventDefault();
// Clear the inputs
inputDistance.value = '';
inputDuration.value = '';
inputCadence.value = '';
inputElevation.value = '';
const { lat, lng } = mapEvt.latlng;
// Display marker
const popup = L.popup({
maxWidth: 250,
minWidth: 100,
autoClose: false,
closeOnClick: false,
className: 'running-popup',
});
const popupContent = 'Workout';
L.marker([lat, lng])
.addTo(map)
.bindPopup(popup)
.setPopupContent(popupContent)
.openPopup();
});
// select type handler
inputType.addEventListener('change', function () {
inputElevation.closest('.form__row').classList.toggle('form__row--hidden');
inputCadence.closest('.form__row').classList.toggle('form__row--hidden');
});