Fix: Nutzerstandort auf der Karte anzeigen

Behebt Gitea Issue #2 "Standort auf Karte anzeigen": der per
Browser-Geolocation ermittelte oder manuell eingegebene Standort
(state.userLocation) wurde bisher nur zum Zentrieren/Entfernungsfilter
verwendet, aber nie selbst auf der Karte dargestellt.

Neuer, nicht interaktiver "Hier bist du"-Marker (blauer Punkt mit
Puls-Ring, js/map/markers.js: createUserLocationMarker()) wird direkt
auf die Karte gelegt (ausserhalb der clusterGroup, damit er nie mit
Ausflugsziel-Markern geclustert wird) und reagiert reaktiv auf
Aenderungen von state.userLocation in js/map/mapController.js.
This commit is contained in:
2026-07-24 12:52:09 +02:00
parent 39321d680f
commit c7e3246b44
3 changed files with 114 additions and 2 deletions
+29
View File
@@ -60,5 +60,34 @@
return marker;
}
let userLocationIcon = null;
function getUserLocationIcon() {
if (!userLocationIcon) {
userLocationIcon = L.divIcon({
className: 'eventmap-user-marker',
html: '<span class="eventmap-user-marker__pulse"></span><span class="eventmap-user-marker__dot"></span>',
iconSize: [22, 22],
iconAnchor: [11, 11],
});
}
return userLocationIcon;
}
/**
* Erzeugt einen (nicht klickbaren) Marker für den übermittelten/manuell
* eingegebenen Nutzerstandort (Gitea Issue #2 "Standort auf Karte
* anzeigen"). Bewusst kein Popup/Interaktion, da es kein Ausflugsziel ist.
*/
function createUserLocationMarker(lat, lng) {
return L.marker([lat, lng], {
icon: getUserLocationIcon(),
interactive: false,
keyboard: false,
zIndexOffset: 1000,
});
}
EventMap.map.createMarkerForPlace = createMarkerForPlace;
EventMap.map.createUserLocationMarker = createUserLocationMarker;
})();