// Optionale Standortabfrage via navigator.geolocation. Wird nur auf // explizite Nutzeraktion (Button) angefragt, nie automatisch beim Start. (function () { const { setState, updateSettings } = EventMap.store; /** * Fragt den aktuellen Standort des Nutzers an. * @param {{onSuccess?: (loc:{lat:number,lng:number}) => void, onError?: (err:Error) => void}} handlers */ function requestUserLocation({ onSuccess, onError } = {}) { if (!('geolocation' in navigator)) { const err = new Error('Geolocation wird von diesem Browser nicht unterstützt.'); console.warn('EventMap:', err.message); if (onError) onError(err); return; } navigator.geolocation.getCurrentPosition( (position) => { const userLocation = { lat: position.coords.latitude, lng: position.coords.longitude, }; setState({ userLocation }); updateSettings({ userConsentGeo: true }); if (onSuccess) onSuccess(userLocation); }, (error) => { console.warn('EventMap: Standort konnte nicht ermittelt werden.', error.message); updateSettings({ userConsentGeo: false }); if (onError) onError(error); }, { enableHighAccuracy: true, timeout: 10000, maximumAge: 60000 } ); } EventMap.map.requestUserLocation = requestUserLocation; })();