ac2re.weblivemap/public old/scripts/fetching.js
2024-05-07 18:01:11 +02:00

45 lines
No EOL
1.6 KiB
JavaScript

import customIcons from './iconsMap.js';
const overlayMaps = {};
async function getOverlayMaps() {
await Promise.all(Object.keys(overlayMapsTemplate).map(async (key) => {
const url = `/poi/${key.toLowerCase()}/`;
try {
const response = await fetch(url);
const data = await response.json();
let icon = overlayMapsTemplate[key].icon;
overlayMaps[key] = L.layerGroup(data.map((item) => L.marker([item.y, item.x], { icon: icon }).bindPopup(item.description)));
} catch (error) {
console.error(`Error fetching ${key} data:`, error);
}
}));
return overlayMaps;
}
// Fonction pour récupérer les positions des personnages
async function getPlayersLocations() {
const url = `/characterloc`;
try {
const response = await fetch(url);
let data = await response.json();
return data;
} catch (error) {
console.error(`Error fetching ${key} data:`, error);
}
}
// overlayMapsTemplate est l'objet avec les clés que vous avez définies
const overlayMapsTemplate = {
Ringways: { icon: customIcons.blueCircleVoidIcon },
Gateways: { icon: customIcons.blueCircleFullIcon },
PoI: { icon: customIcons.blueCrossFullIcon },
Town: { icon: customIcons.yellowSquareFullIcon },
Outpost: { icon: customIcons.yellowSquareVoidIcon },
Vault: { icon: customIcons.redCrossFullIcon },
Dungeon: { icon: customIcons.redCrossVoidIcon },
City: { icon: customIcons.yellowCrownIcon },
Faction: { icon: customIcons.greySquareIcon },
};
export { getOverlayMaps, getPlayersLocations };