diff --git a/js/map.js b/js/map.js index f33422f..270ea9d 100644 --- a/js/map.js +++ b/js/map.js @@ -1,19 +1,14 @@ // /Volumes/Data/Code/FHGR/Frontend/js/map.js // Add the createMarker function to the window object window.createMarker = function(lngLat, content = {}) { - const marker = new maplibregl.Marker({ - color: '#3887be', - draggable: true - }) - .setLngLat(lngLat) - .addTo(map); + const marker = L.marker(lngLat, { + draggable: true, + title: content.title || 'Untitled' + }).addTo(map); // Create popup with marker content - const popup = new maplibregl.Popup({ offset: 25 }) - .setHTML(`${content.title || 'Untitled'}${content.description ? `
${content.description}` : ''}`); + marker.bindPopup(`${content.title || 'Untitled'}${content.description ? `
${content.description}` : ''}`); - marker.setPopup(popup); - // When the marker is clicked, open the editor marker.on('click', () => { openMarkerEditor(marker); @@ -22,7 +17,7 @@ window.createMarker = function(lngLat, content = {}) { // Add marker to current journey const markerData = { id: Date.now(), - lngLat: lngLat.toArray(), + lngLat: [lngLat.lat, lngLat.lng], // Leaflet uses [lat, lng] content: content, coordinates: [lngLat.lat, lngLat.lng] }; @@ -38,13 +33,13 @@ window.createMarker = function(lngLat, content = {}) { markerElement.className = 'marker-item'; markerElement.innerHTML = `
${content.title || 'Untitled'}
-
${lngLat.lng.toFixed(4)}, ${lngLat.lat.toFixed(4)}
+
${lngLat.lat.toFixed(4)}, ${lngLat.lng.toFixed(4)}
`; // Add click event to marker item markerElement.addEventListener('click', function() { map.flyTo({ - center: [lngLat.lng, lngLat.lat], + center: [lngLat.lat, lngLat.lng], zoom: 10 }); openMarkerEditor(marker); @@ -61,57 +56,15 @@ window.createMarker = function(lngLat, content = {}) { // Update the updateJourneyPath function to handle cases where markers array is empty function updateJourneyPath() { - if (!map.getSource('journey-path')) { - map.addSource('journey-path', { - type: 'geojson', - data: { - type: 'Feature', - properties: {}, - geometry: { - type: 'LineString', - coordinates: [] - } - } - }); - - map.addLayer({ - id: 'journey-path', - type: 'line', - source: 'journey-path', - layout: { - 'line-join': 'round', - 'line-cap': 'round' - }, - paint: { - 'line-color': '#3887be', - 'line-width': 4 - } - }); + if (!map.hasLayer(journeyPath)) { + journeyPath = L.polyline([], {color: '#3887be', weight: 4}); + map.addLayer(journeyPath); } - if (currentJourney.markers.length === 0) { - map.getSource('journey-path').setData({ - type: 'Feature', - properties: {}, - geometry: { - type: 'LineString', - coordinates: [] - } - }); - return; - } - const coordinates = currentJourney.markers.map(marker => [ - marker.getLngLat().lng, - marker.getLngLat().lat + marker.getLatLng().lat, + marker.getLatLng().lng ]); - map.getSource('journey-path').setData({ - type: 'Feature', - properties: {}, - geometry: { - type: 'LineString', - coordinates: coordinates - } - }); + journeyPath.setLatLngs(coordinates); }