// utils/zoomAndCenterUtils.js /* export const zoomIn = (e, map) => { if (!map) { console.error("map is not defined in zoomIn"); return; } map.flyTo(e.latlng, map.getZoom() + 1); localStorage.setItem("mapZoom", map.getZoom()); localStorage.setItem("mapCenter", JSON.stringify(map.getCenter())); }; */ export const zoomIn = (e, map) => { if (!map) { console.error("map is not defined in zoomIn"); return; } let maxZoom = 19; try { if (window && window.__tileSourceMaxZoom !== undefined) { maxZoom = window.__tileSourceMaxZoom; } else { const xhr = new XMLHttpRequest(); xhr.open("GET", "/config.json", false); xhr.send(null); if (xhr.status === 200) { const config = JSON.parse(xhr.responseText); if (config.tileSources && config.active && config.tileSources[config.active]) { maxZoom = config.tileSources[config.active].maxZoom; } } } } catch (e) {} const currentZoom = map.getZoom(); if (currentZoom < maxZoom) { map.flyTo(e.latlng, currentZoom + 1); localStorage.setItem("mapZoom", currentZoom + 1); localStorage.setItem("mapCenter", JSON.stringify(map.getCenter())); } }; export const zoomOut = map => { if (!map) { console.error("map is not defined in zoomOut"); return; } let minZoom = 5; try { if (window && window.__tileSourceMinZoom !== undefined) { minZoom = window.__tileSourceMinZoom; } else { const xhr = new XMLHttpRequest(); xhr.open("GET", "/config.json", false); xhr.send(null); if (xhr.status === 200) { const config = JSON.parse(xhr.responseText); if (config.tileSources && config.active && config.tileSources[config.active]) { minZoom = config.tileSources[config.active].minZoom; } } } } catch (e) {} const currentZoom = map.getZoom(); if (currentZoom > minZoom) { let zoomOutCenter = [51.41321407879154, 7.739617925303934]; try { const xhr = new XMLHttpRequest(); xhr.open("GET", "/config.json", false); xhr.send(null); if (xhr.status === 200) { const config = JSON.parse(xhr.responseText); if (Array.isArray(config.zoomOutCenter) && config.zoomOutCenter.length === 2) { zoomOutCenter = config.zoomOutCenter; } } } catch (e) {} const zoom = minZoom; map.flyTo(zoomOutCenter, zoom); localStorage.setItem("mapZoom", zoom); localStorage.setItem("mapCenter", JSON.stringify(map.getCenter())); } }; export const centerHere = (e, map) => { if (!map) { console.error("map is not defined in centerHere"); return; } map.panTo(e.latlng); localStorage.setItem("mapZoom", map.getZoom()); localStorage.setItem("mapCenter", JSON.stringify(map.getCenter())); };