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:
@@ -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;
|
||||
})();
|
||||
|
||||
Reference in New Issue
Block a user