feat: GMA-Datenaktualisierung in useUpdateGmaData Hook ausgelagert
- Fetch-Logik zum Aktualisieren der Tooltip-Werte aus MapComponent.js ausgelagert. - Neuer Hook: useUpdateGmaData im hooks-Verzeichnis hinzugefügt. - Verbesserung der Modularität und Wiederverwendbarkeit.
This commit is contained in:
@@ -46,6 +46,7 @@ import { updateLocation } from "../utils/updateBereichUtil";
|
|||||||
import { usePolylineTooltipLayer } from "../hooks/usePolylineTooltipLayer";
|
import { usePolylineTooltipLayer } from "../hooks/usePolylineTooltipLayer";
|
||||||
import { useFetchLineStatusData } from "../hooks/useFetchLineStatusData";
|
import { useFetchLineStatusData } from "../hooks/useFetchLineStatusData";
|
||||||
import { useFetchPriorityConfig } from "../hooks/useFetchPriorityConfig";
|
import { useFetchPriorityConfig } from "../hooks/useFetchPriorityConfig";
|
||||||
|
import { useUpdateGmaData } from "../hooks/useUpdateGmaData";
|
||||||
//--------------------------------------------
|
//--------------------------------------------
|
||||||
import { currentPoiState } from "../redux/slices/currentPoiSlice.js";
|
import { currentPoiState } from "../redux/slices/currentPoiSlice.js";
|
||||||
import { selectGisStationsStaticDistrict, setGisStationsStaticDistrict } from "../redux/slices/gisStationsStaticDistrictSlice";
|
import { selectGisStationsStaticDistrict, setGisStationsStaticDistrict } from "../redux/slices/gisStationsStaticDistrictSlice";
|
||||||
@@ -573,39 +574,14 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
|
|||||||
}, [map]);
|
}, [map]);
|
||||||
//--------------------------------------------
|
//--------------------------------------------
|
||||||
//Tooltip Werte aktualisieren
|
//Tooltip Werte aktualisieren
|
||||||
useEffect(() => {
|
useUpdateGmaData(
|
||||||
if (!map) return; // Stelle sicher, dass die Karte initialisiert ist
|
map,
|
||||||
|
setGisStationsMeasurements,
|
||||||
const updateGmaData = async () => {
|
mapGisStationsMeasurementsUrl,
|
||||||
try {
|
gmaMarkers,
|
||||||
const fetchOptions = {
|
layers,
|
||||||
method: "GET",
|
oms
|
||||||
headers: {
|
);
|
||||||
Connection: "close",
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
// Aktualisiere die Messdaten
|
|
||||||
await fetchGisStationsMeasurements(mapGisStationsMeasurementsUrl, setGisStationsMeasurements, fetchOptions);
|
|
||||||
|
|
||||||
// Aktualisiere die Marker-Layer
|
|
||||||
// useGmaMarkersLayer(map, gmaMarkers, GisStationsMeasurements, layers.MAP_LAYERS.GMA, oms);
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Fehler beim Aktualisieren der GMA-Daten:", error);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// Initialer Datenabruf
|
|
||||||
updateGmaData();
|
|
||||||
|
|
||||||
// Setze ein Intervall, um die Daten alle 5 Sekunden zu aktualisieren
|
|
||||||
/* const intervalId = setInterval(() => {
|
|
||||||
updateGmaData();
|
|
||||||
}, 5000);
|
|
||||||
|
|
||||||
// Cleanup-Funktion, um das Intervall zu entfernen, wenn die Komponente entladen wird
|
|
||||||
return () => clearInterval(intervalId); */
|
|
||||||
}, [map, gmaMarkers, layers.MAP_LAYERS.GMA, oms, mapGisStationsMeasurementsUrl]);
|
|
||||||
|
|
||||||
//---------------------------------
|
//---------------------------------
|
||||||
|
|
||||||
|
|||||||
55
hooks/useUpdateGmaData.js
Normal file
55
hooks/useUpdateGmaData.js
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
import { useEffect } from "react";
|
||||||
|
import { fetchGisStationsMeasurements } from "../services/fetchData";
|
||||||
|
|
||||||
|
export const useUpdateGmaData = (
|
||||||
|
map,
|
||||||
|
setGisStationsMeasurements,
|
||||||
|
mapGisStationsMeasurementsUrl,
|
||||||
|
gmaMarkers,
|
||||||
|
layers,
|
||||||
|
oms
|
||||||
|
) => {
|
||||||
|
useEffect(() => {
|
||||||
|
if (!map) return; // Sicherstellen, dass die Karte initialisiert ist
|
||||||
|
|
||||||
|
const updateGmaData = async () => {
|
||||||
|
try {
|
||||||
|
const fetchOptions = {
|
||||||
|
method: "GET",
|
||||||
|
headers: {
|
||||||
|
Connection: "close",
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
// Aktualisiere die Messdaten
|
||||||
|
await fetchGisStationsMeasurements(
|
||||||
|
mapGisStationsMeasurementsUrl,
|
||||||
|
setGisStationsMeasurements,
|
||||||
|
fetchOptions
|
||||||
|
);
|
||||||
|
|
||||||
|
// Aktualisiere die Marker-Layer
|
||||||
|
// useGmaMarkersLayer(map, gmaMarkers, GisStationsMeasurements, layers.MAP_LAYERS.GMA, oms);
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Fehler beim Aktualisieren der GMA-Daten:", error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Initialer Datenabruf
|
||||||
|
updateGmaData();
|
||||||
|
|
||||||
|
// Intervall für periodische Updates (optional einkommentieren)
|
||||||
|
/* const intervalId = setInterval(() => {
|
||||||
|
updateGmaData();
|
||||||
|
}, 5000);
|
||||||
|
|
||||||
|
return () => clearInterval(intervalId); */
|
||||||
|
}, [
|
||||||
|
map,
|
||||||
|
gmaMarkers,
|
||||||
|
layers.MAP_LAYERS.GMA,
|
||||||
|
oms,
|
||||||
|
mapGisStationsMeasurementsUrl,
|
||||||
|
setGisStationsMeasurements,
|
||||||
|
]);
|
||||||
|
};
|
||||||
Reference in New Issue
Block a user