| | const map = L.map('map').setView([20, 0], 2); |
| |
|
| | L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { |
| | attribution: '© OpenStreetMap contributors' |
| | }).addTo(map); |
| |
|
| | |
| | const robotIcon = L.icon({ |
| | iconUrl: 'https://cdn.shopify.com/s/files/1/0767/2040/6877/files/LeRobot.png?v=1745423992', |
| | iconSize: [35, 35], |
| | iconAnchor: [20, 40], |
| | popupAnchor: [0, -35] |
| | }); |
| |
|
| | |
| | const hqIcon = L.icon({ |
| | iconUrl: 'https://cdn.shopify.com/s/files/1/0767/2040/6877/files/HF_Logo.png?v=1745427981', |
| | iconSize: [35, 35], |
| | iconAnchor: [20, 40], |
| | popupAnchor: [0, -35] |
| | }); |
| |
|
| | |
| | function addMarkers(data, icon) { |
| | console.log('Processing data:', data); |
| | data.forEach(entry => { |
| | const lat = parseFloat(entry.latitude || entry.latitude); |
| | const lng = parseFloat(entry.longitude || entry.longitude); |
| | const name = entry.name || entry.name || 'Unknown'; |
| | const desc = entry.description || entry.Description || ''; |
| | const address = entry.address || entry.address || 'N/A'; |
| | const nbPeople = entry.nb_of_people || entry.nb_of_people || ''; |
| | const discordUsername = entry.discord_username || entry.discord_username || ''; |
| |
|
| | if (!isNaN(lat) && !isNaN(lng)) { |
| | let popupContent = ` |
| | <strong>${name}</strong><br> |
| | ${desc}<br> |
| | <strong>Address:</strong> ${address}<br> |
| | `; |
| |
|
| | if (nbPeople && nbPeople !== 'N/A') { |
| | popupContent += `<strong>Nb of People:</strong> ${nbPeople}<br>`; |
| | } |
| |
|
| | if (discordUsername && discordUsername !== 'N/A') { |
| | popupContent += `<strong>Discord Username:</strong> ${discordUsername}<br>`; |
| | } |
| |
|
| | L.marker([lat, lng], { icon: icon }) |
| | .addTo(map) |
| | .bindPopup(popupContent); |
| | } else { |
| | console.warn('Invalid coordinates:', entry); |
| | } |
| | }); |
| | } |
| |
|
| |
|
| | |
| | fetch('data_HQ_HF.json') |
| | .then(response => { |
| | if (!response.ok) { |
| | throw new Error('Network response was not ok'); |
| | } |
| | return response.json(); |
| | }) |
| | .then(data => { |
| | console.log('Fetched data_HQ_HF.json:', data); |
| | addMarkers(data, hqIcon); |
| | }) |
| | .catch(error => { |
| | console.error('Error fetching data_HQ_HF.json:', error); |
| | }); |
| |
|
| | |
| | fetch('data.json') |
| | .then(response => { |
| | if (!response.ok) { |
| | throw new Error('Network response was not ok'); |
| | } |
| | return response.json(); |
| | }) |
| | .then(data => { |
| | console.log('Fetched data.json:', data); |
| | addMarkers(data, robotIcon); |
| | }) |
| | .catch(error => { |
| | console.error('Error fetching data.json:', error); |
| | }); |