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