refactor(area): Bereichsaktualisierung von util auf Redux umgestellt
- updateAreaUtil.js entfernt - updateAreaService, updateAreaThunk, updateAreaSlice eingeführt - useAreaMarkersLayer nutzt jetzt updateAreaThunk - MapComponent umgestellt auf Redux-Dispatch - Version erhöht auf 1.1.182
This commit is contained in:
@@ -18,13 +18,13 @@ import * as layers from "../../config/layers.js";
|
||||
import addItemsToMapContextMenu from "../contextmenu/useMapContextMenu.js";
|
||||
import useGmaMarkersLayer from "../../hooks/layers/useGmaMarkersLayer.js";
|
||||
import useSmsfunkmodemMarkersLayer from "../../hooks/layers/useSmsfunkmodemMarkersLayer.js";
|
||||
import useBereicheMarkersLayer from "../../hooks/layers/useBereicheMarkersLayer.js";
|
||||
import useAreaMarkersLayer from "../../hooks/layers/useAreaMarkersLayer.js";
|
||||
import { setupPolylines } from "../../utils/polylines/setupPolylines.js";
|
||||
import { setupPOIs } from "../../utils/setupPOIs.js";
|
||||
import useLayerVisibility from "../../hooks/useLayerVisibility.js";
|
||||
import useLineData from "../../hooks/useLineData.js";
|
||||
import { useMapComponentState } from "../../hooks/useMapComponentState.js";
|
||||
import { updateLocation } from "../../utils/updateBereichUtil.js";
|
||||
|
||||
import CoordinatePopup from "../contextmenu/CoordinatePopup.js";
|
||||
//----------Ui Widgets----------------
|
||||
import MapLayersControlPanel from "../uiWidgets/mapLayersControlPanel/MapLayersControlPanel.js";
|
||||
@@ -67,6 +67,7 @@ import { fetchGisLinesStatusThunk } from "../../redux/thunks/webservice/fetchGis
|
||||
import { fetchUserRightsThunk } from "../../redux/thunks/webservice/fetchUserRightsThunk";
|
||||
import { fetchPoiIconsDataThunk } from "../../redux/thunks/database/pois/fetchPoiIconsDataThunk.js";
|
||||
import { fetchPoiTypThunk } from "../../redux/thunks/database/pois/fetchPoiTypThunk.js";
|
||||
import { updateAreaThunk } from "../../redux/thunks/database/area/updateAreaThunk";
|
||||
|
||||
//-----------------------------------------------------------------------------------------------------
|
||||
const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
|
||||
@@ -463,7 +464,7 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
|
||||
}
|
||||
}, [map]);
|
||||
//--------------------------------------------
|
||||
// Bereich in DataSheet ->dropdownmenu
|
||||
// Area in DataSheet ->dropdownmenu
|
||||
useEffect(() => {
|
||||
//console.log("🔍 GisStationsStaticDistrict Inhalt:", GisStationsStaticDistrict);
|
||||
|
||||
@@ -653,28 +654,28 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
|
||||
|
||||
//---------------------------------------
|
||||
// Initialisiere Leaflet-Karte
|
||||
// Rufe useBereicheMarkersLayer direkt auf
|
||||
//const [bereichUrl, setBereichUrl] = useState(null);
|
||||
// Rufe useAreaMarkersLayer direkt auf
|
||||
//const [areaUrl, setAreaUrl] = useState(null);
|
||||
const urlParams = new URLSearchParams(window.location.search); // URL-Parameter parsen
|
||||
const mValue = urlParams.get("m"); // Wert von "m" holen
|
||||
const hostname = window.location.hostname; // Dynamischer Hostname
|
||||
const port = 3000; // Definiere den gewünschten Port
|
||||
const bereichUrl = `http://${hostname}:${port}/api/talas_v5_DB/bereich/readBereich?m=${mValue}`; // Dynamischer Hostname und Port
|
||||
const areaUrl = `http://${hostname}:${port}/api/talas_v5_DB/area/readArea?m=${mValue}`; // Dynamischer Hostname und Port
|
||||
|
||||
// Bereichs-Marker basierend auf dynamischer URL laden
|
||||
// Areas-Marker basierend auf dynamischer URL laden
|
||||
const handleLocationUpdate = async (idLocation, idMap, newCoords) => {
|
||||
try {
|
||||
const result = await updateLocation(idLocation, idMap, newCoords); // Update-API
|
||||
await dispatch(updateAreaThunk({ idLocation, idMap, newCoords })).unwrap();
|
||||
console.log("Koordinaten erfolgreich aktualisiert:", result);
|
||||
} catch (error) {
|
||||
console.error("Fehler beim Aktualisieren der Location:", error);
|
||||
}
|
||||
};
|
||||
|
||||
// Bereichs-Marker basierend auf dynamischer URL laden
|
||||
const bereicheMarkers = useBereicheMarkersLayer(map, oms, bereichUrl, handleLocationUpdate);
|
||||
// Areas-Marker basierend auf dynamischer URL laden
|
||||
const areaMarkers = useAreaMarkersLayer(map, oms, areaUrl, handleLocationUpdate);
|
||||
/*
|
||||
Bereichsmarker werden jetzt nur angezeigt, wenn der editMode aktiviert ist.
|
||||
Areamarker werden jetzt nur angezeigt, wenn der editMode aktiviert ist.
|
||||
Marker werden bei deaktiviertem editMode aus der Karte entfernt.
|
||||
Dynamische Überwachung von Änderungen im editMode über localStorage und Event Listener implementiert.
|
||||
Dragging für Marker im editMode aktiviert und Z-Index angepasst.
|
||||
@@ -687,14 +688,14 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
|
||||
// Entferne alle Marker aus der Karte
|
||||
if (!map) return; // Sicherstellen, dass map existiert
|
||||
|
||||
bereicheMarkers.forEach((marker) => {
|
||||
areaMarkers.forEach((marker) => {
|
||||
if (map.hasLayer(marker)) {
|
||||
map.removeLayer(marker);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
// Wenn editMode aktiviert ist, füge die Marker hinzu und aktiviere Dragging
|
||||
bereicheMarkers.forEach((marker) => {
|
||||
areaMarkers.forEach((marker) => {
|
||||
if (!map.hasLayer(marker)) {
|
||||
marker.addTo(map); // Layer hinzufügen
|
||||
}
|
||||
@@ -702,7 +703,7 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
|
||||
marker.setZIndexOffset(1000); // Marker nach oben setzen
|
||||
});
|
||||
}
|
||||
}, [bereicheMarkers, map]);
|
||||
}, [areaMarkers, map]);
|
||||
|
||||
//----------------------------------
|
||||
useEffect(() => {
|
||||
|
||||
Reference in New Issue
Block a user