|
a |
|
b/src/map-script.js |
|
|
1 |
let markersArray = []; |
|
|
2 |
const markersLayer = L.layerGroup(); |
|
|
3 |
const overlayMaps = { 'Markers': markersLayer }; |
|
|
4 |
const layerControl = L.control.layers(null, overlayMaps).addTo(map); |
|
|
5 |
map.addLayer(markersLayer) |
|
|
6 |
function createMarker(xPos, yPos) { |
|
|
7 |
let counter = markersArray.length+1 |
|
|
8 |
let newMarker = L.marker([xPos, yPos]).addTo(markersLayer).bindPopup(counter + " x " + xPos + " y " + yPos) |
|
|
9 |
console.log("New Marker" + counter + " x " + xPos + " y " + yPos) |
|
|
10 |
markersArray.push(newMarker) |
|
|
11 |
document.getElementById('markArrLength').innerHTML = markersArray.length |
|
|
12 |
//console.log(newMarker) |
|
|
13 |
} |
|
|
14 |
document.getElementById('mapClick').addEventListener('change', e => { |
|
|
15 |
if (document.getElementById('mapClick').checked){ |
|
|
16 |
map.addEventListener('click', createMarkerOnClick) |
|
|
17 |
} else { |
|
|
18 |
map.removeEventListener('click', createMarkerOnClick) |
|
|
19 |
} |
|
|
20 |
}) |
|
|
21 |
function createMarkerOnClick(e) { |
|
|
22 |
let lat = Math.round(e.latlng.lat); |
|
|
23 |
let lng = Math.round(e.latlng.lng); |
|
|
24 |
createMarker(lat, lng) |
|
|
25 |
} |
|
|
26 |
function showCoord(xPos, yPos) { |
|
|
27 |
map.flyTo([xPos, yPos], map.getZoom()) |
|
|
28 |
} |
|
|
29 |
function flyToMarker(arrayIndex) { |
|
|
30 |
let { lat, lng } = markersArray.at(arrayIndex-1)._latlng; |
|
|
31 |
showCoord(lat, lng) |
|
|
32 |
} |
|
|
33 |
function showMarkArr() { |
|
|
34 |
let newTable = document.createElement('div'); |
|
|
35 |
newTable.setAttribute("id", "popup-list"); |
|
|
36 |
let table = document.createElement('table'); |
|
|
37 |
newTable.appendChild(table) |
|
|
38 |
let counter = 1; |
|
|
39 |
for (marker of markersArray) { |
|
|
40 |
let { lat, lng } = marker._latlng; |
|
|
41 |
let tr = table.insertRow(); |
|
|
42 |
let tdNum = tr.insertCell(); |
|
|
43 |
tdNum.appendChild(document.createTextNode(counter)) |
|
|
44 |
counter++; |
|
|
45 |
let tdX = tr.insertCell(); |
|
|
46 |
tdX.appendChild(document.createTextNode(lat)) |
|
|
47 |
let tdY = tr.insertCell(); |
|
|
48 |
tdY.appendChild(document.createTextNode(lng)) |
|
|
49 |
} |
|
|
50 |
document.body.appendChild(newTable) |
|
|
51 |
} |
|
|
52 |
map.addEventListener('mousemove', (event) => { |
|
|
53 |
let lat = Math.round(event.latlng.lat); |
|
|
54 |
let lng = Math.round(event.latlng.lng); |
|
|
55 |
document.getElementById('xMouseCoord').innerHTML = lat; |
|
|
56 |
document.getElementById('yMouseCoord').innerHTML = lng; |
|
|
57 |
}) |
|
|
58 |
// |
|
|
59 |
document.getElementById('showMarkersArr').addEventListener('click', (e) => { |
|
|
60 |
if (document.getElementById('showMarkersArr').innerHTML.includes("Show")) { |
|
|
61 |
showMarkArr() |
|
|
62 |
document.getElementById('showMarkersArr').innerHTML = "Hide markers list"; |
|
|
63 |
} else { |
|
|
64 |
let table = document.getElementById('popup-list') |
|
|
65 |
table.remove() |
|
|
66 |
document.getElementById('showMarkersArr').innerHTML = "Show markers list"; |
|
|
67 |
} |
|
|
68 |
}) |