45 lines
No EOL
1.6 KiB
JavaScript
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 }; |