| 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); |
| }); |