export const parsePoint = (position) => { const [longitude, latitude] = position.slice(6, -1).split(" "); return { latitude: parseFloat(latitude), longitude: parseFloat(longitude) }; }; //---------------------------------------------- export const determinePriority = (iconPath) => { for (let priority of priorityConfig) { if (iconPath.includes(priority.name.toLowerCase())) { return priority.level; } } return 5; // Default priority (lowest) }; //---------------------------------------------- export const createAndSetMarkers = async (systemId, setMarkersFunction) => { try { const response1 = await fetch(config.mapGisStationsStaticDistrictUrl); const jsonResponse = await response1.json(); const response2 = await fetch(config.mapGisStationsStatusDistrictUrl); const statusResponse = await response2.json(); const getIdSystemAndAllowValueMap = new Map( GisSystemStatic.map((system) => [system.IdSystem, system.Allow]) ); //console.log("getIdSystemAndAllowValueMap:", getIdSystemAndAllowValueMap); if (jsonResponse.Points && statusResponse.Statis) { const statisMap = new Map(statusResponse.Statis.map((s) => [s.IdLD, s])); let markersData = jsonResponse.Points.filter( (station) => station.System === systemId && getIdSystemAndAllowValueMap.get(station.System) === 1 ).map((station) => { const statis = statisMap.get(station.IdLD); const iconPath = statis ? `img/icons/${statis.Na}-marker-icon-${station.Icon}.png` : `img/icons/marker-icon-${station.Icon}.png`; const priority = determinePriority(iconPath); const zIndexOffset = 100 * (5 - priority); // Adjusted for simplicity and positive values /* console.log( `Icon Path: ${iconPath}, Priority: ${priority}, zIndexOffset: ${zIndexOffset}` ); */ const marker = L.marker([station.X, station.Y], { icon: L.icon({ iconUrl: iconPath, iconSize: [25, 41], iconAnchor: [12, 41], popupAnchor: [1, -34], }), areaName: station.Area_Name, // Stelle sicher, dass dieser Bereich gesetzt wird link: station.Link, zIndexOffset: zIndexOffset, bounceOnAdd: !!statis, }); if (statis) { marker.on("add", () => marker.bounce(3)); } const statusInfo = statusResponse.Statis.filter( (status) => status.IdLD === station.IdLD ) .reverse() .map( (status) => `