fix: Sichtbarkeitsprobleme von Markern und Plus-Icons behoben
- Initiales Laden der Marker entsprechend der lokalen Speicherwerte (localStorage) korrigiert.
- Plus-Icons werden nun dynamisch aktualisiert, wenn Checkboxen geändert werden.
- Event-Listener für Sichtbarkeitsänderungen hinzugefügt, um Marker und Plus-Icons ohne Neuladen zu aktualisieren.
- Allgemeine Konsistenz zwischen `mapLayersVisibility` und tatsächlicher Sichtbarkeit der Layer verbessert.
- Sicherstellen, dass die Checkbox vorhanden und sichtbar ist.
- Zustand der Checkbox (aktiviert/deaktiviert) flexibel überprüft.
- Deaktivierung der Checkbox prüft, dass Marker verschwinden.
- Aktivierung der Checkbox stellt sicher, dass Marker erscheinen.
- Detaillierte Logs für besseren Einblick in die Testergebnisse.
Version erhöht auf v1.0.16.0
fix: Dynamisches Ein- und Ausblenden des Plus-Icons bei Änderung der Marker-Sichtbarkeit
- Überarbeitung der `checkOverlappingMarkers`-Funktion, um sichtbare Marker korrekt zu verfolgen.
- Hinzugefügt: Dynamische Aktualisierung des Plus-Icons basierend auf Layer-Sichtbarkeit.
- Integration der Checkbox-Änderungen in den `useEffect`-Hook von `MapComponent`, um Echtzeit-Aktualisierungen zu gewährleisten.
- Verbesserte Konsistenz der Kartenanzeige ohne Neuladen des Browsers.
-Wenn keine Messwerte über Webservice kommen dann wird "-" statt "---" angezeigt
-Alle 20 Sekunden werden alle Icons neu gezeichnet. Dadurch "flackert" das Bild. Wenn die Daten (Prios) neu geladen werden sollen die Icons
nicht aus- und wieder eingeblendet werden. Wenn es nicht schnell behoben werden kann dann bitte das Intervall von 20 Sekunden auf 60 Sekunden erhöhen.
-Es soll, Wenn auf das + Symbol geklickt wird müssen alle Icons nebeneinander gezeichnet werden. Bisher kann man nur auf das oberste Icon klicken.
-MAP_VERSION = "1.0.15"
feat: Integrationstest für openInNewTab erfolgreich implementiert
- Mocking für Leaflet-Objekte (Marker, Polyline) erstellt.
- Tests hinzugefügt, die sicherstellen:
- Marker-Links werden korrekt generiert und geöffnet.
- Polyline-Links werden korrekt generiert und geöffnet.
- Fehler ausgegeben werden, wenn kein gültiger Link gefunden wird.
- Jest-Konfiguration angepasst, um globale Objekte wie window zu mocken.
- Funktionalität und Tests erfolgreich überprüft.
fix: zIndexOffset-Berechnung angepasst, um Marker-Priorität zu verbessern
- zIndexOffset in `createAndSetDevices` von `100 * (5 - priority)` auf `100 * (6 - priority)` geändert.
- Dadurch erhalten Marker mit höherer Priorität einen größeren zIndex-Wert.
- Problem gelöst, bei dem POI-Marker von anderen Layern oder Markern überlagert wurden.
- Logik angepasst, um die Sichtbarkeit und Priorisierung der Marker zu stabilisieren.
- Ursache des Problems: Inkonsistenz bei der Benennung des Layers in `useLayerVisibility` ("SMSFunkmodem" vs. "SMSModem").
- Anpassung des Layer-Namens in `useLayerVisibility`, um mit der `GisSystemStatic`-Datenstruktur und `mapLayersVisibility` übereinzustimmen.
- Konflikt führte dazu, dass der SMS Modem-Layer nicht korrekt sichtbar/unsichtbar geschaltet wurde.
- Debugging und Anpassungen führten zur erfolgreichen Behebung des Fehlers.
Dieser Fix stellt sicher, dass die Sichtbarkeit der Marker-Layer konsistent und wie erwartet funktioniert.
fix: Markers Icons, Linien und GMA ToolTip aktualisieren sich
feat: Marker-Management optimiert und Plus-Icon für überlappende Marker hinzugefügt
- Problem mit doppelten Icons behoben: Alte Marker werden vor jedem Update zuverlässig entfernt (clearLayers).
- Zentrale Verwaltung aller Marker-Layer-Gruppen eingeführt (Refactoring mit layerGroups).
- Plus-Icon für überlappende Marker hinzugefügt, um bessere Übersicht bei Markern an derselben Position zu gewährleisten (checkOverlappingMarkers).
- Regelmäßige Updates der Marker-Gruppen via setInterval implementiert.
- Marker-Icons werden dynamisch aktualisiert, ohne dass Blinken oder redundantes Rendering auftritt.
- ToolTip-Werte der GMA-Stationen aktualisieren sich in Echtzeit basierend auf neuen Messdaten.
- Verbesserte Performance durch gezielte Updates nur bei Datenänderungen.
- Implementierung der Fremdschlüssel-Logik für die `poiTyp`-Daten in `MapComponent`.
- Nutzung einer Map, um die Fremdschlüssel-Beziehung zwischen `poiTyp`-IDs und deren Namen effizient zu verwalten.
- Sicherstellung, dass `poiTypName` korrekt in Marker-Popups angezeigt wird, indem die Fremdschlüssel-Beziehung geprüft wird.
- Verbesserte Bedingungsprüfung sorgt dafür, dass die Popups nun die richtigen `poiTypName`-Werte anzeigen, oder als Fallback "Unbekannt" verwendet wird.
- Effekt-Logik wurde so angepasst, dass Marker nur aktualisiert werden, wenn die `poiTyp`-Daten vollständig geladen sind.
- Entfernt redundanten `RecoilRoot` aus `MapComponent`, um Probleme mit verschachtelten Wurzeln zu vermeiden.
- Sichergestellt, dass `MapComponent` immer innerhalb des zentralen `RecoilRoot` gerendert wird, der in `_app.js` definiert ist.
- Das Problem "Diese Komponente muss innerhalb einer `<RecoilRoot>`-Komponente verwendet werden" durch Platzieren aller Recoil-States im korrekten Kontext behoben.
- `ShowAddStationPopup` direkt als JSX-Element innerhalb von `MapComponent` zur besseren Übersicht verwendet.
The ShowAddStationPopup component was failing to close popups because it was using an uninitialized 'map' object. This commit changes the reference from 'map' to 'initMap' at the point where ShowAddStationPopup is rendered. This ensures that the correct map instance is being used, resolving the TypeError related to undefined properties when attempting to close the popup.
This change is critical for maintaining the functionality of our map interactions, particularly in scenarios where dynamic components are rendered based on user actions.