feat: Linienanzeige abhängig vom Status der Stationen (CPLs)
- Polylinien werden nur angezeigt, wenn die zugehörigen Stationen (CPLs) aktiv sind - Redux speichert den Status der Stationen (1 = aktiv, 0 = inaktiv) - setupPolylines.js überprüft jetzt direkt in Redux, ob eine Linie gezeichnet werden soll - Entfernt den unnötigen activeLines-Parameter in MapComponent.js für eine bessere Struktur - Optimierte Performance: Linien ändern sich dynamisch ohne Seiten-Reload
This commit is contained in:
@@ -81,9 +81,8 @@ import { useSelector } from "react-redux";
|
||||
|
||||
const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
|
||||
// **Hole nur die aktiven idLDs aus Redux**
|
||||
const activeLines = useSelector((state) => state.lineVisibility.activeLines);
|
||||
console.log("activeLines in MapComponent:", activeLines);
|
||||
const activeIds = Object.keys(activeLines).filter((id) => activeLines[id] === 1);
|
||||
//const activeLines = useSelector((state) => state.lineVisibility.activeLines);
|
||||
//const activeIds = Object.keys(activeLines).filter((id) => activeLines[id] === 1);
|
||||
const polylineVisible = useRecoilValue(polylineLayerVisibleState);
|
||||
const [editMode, setEditMode] = useState(false); // editMode Zustand
|
||||
const { deviceName, setDeviceName } = useMapComponentState();
|
||||
@@ -523,6 +522,7 @@ await fetchGisStationsStatusDistrict(mapGisStationsStatusDistrictUrl, setGisStat
|
||||
fetchData();
|
||||
}, []);
|
||||
//--------------------------------------------
|
||||
|
||||
//Tooltip an mouse position anzeigen für die Linien
|
||||
useEffect(() => {
|
||||
if (!map) return;
|
||||
@@ -532,19 +532,11 @@ await fetchGisStationsStatusDistrict(mapGisStationsStatusDistrictUrl, setGisStat
|
||||
polylines.forEach((polyline) => polyline.remove());
|
||||
|
||||
// Setze neue Marker und Polylinien mit den aktuellen Daten
|
||||
const { markers: newMarkers, polylines: newPolylines } = setupPolylines(
|
||||
map,
|
||||
linePositions,
|
||||
lineColors,
|
||||
tooltipContents,
|
||||
setNewCoords,
|
||||
tempMarker,
|
||||
polylineVisible, // polylineVisible wird jetzt korrekt übergeben
|
||||
activeLines
|
||||
);
|
||||
const { markers: newMarkers, polylines: newPolylines } = setupPolylines(map, linePositions, lineColors, tooltipContents, setNewCoords, tempMarker, polylineVisible);
|
||||
|
||||
newPolylines.forEach((polyline, index) => {
|
||||
const tooltipContent = tooltipContents[`${linePositions[index].idLD}-${linePositions[index].idModul}`] || `idLD: ${linePositions[index].idLD} in DB gis_lines aber in WebService GisLinesStatus nicht gefunden`;
|
||||
console.log("polyline: ", polyline);
|
||||
const tooltipContent = tooltipContents[`${linePositions[index].idLD}-${linePositions[index].idModul}`] || "Standard-Tooltip-Inhalt";
|
||||
|
||||
polyline.bindTooltip(tooltipContent, {
|
||||
permanent: false,
|
||||
|
||||
Reference in New Issue
Block a user