diff --git a/components/MapComponent.js b/components/MapComponent.js index 33d5050cf..d0cede54d 100644 --- a/components/MapComponent.js +++ b/components/MapComponent.js @@ -54,6 +54,8 @@ import { polylineLayerVisibleState } from "../redux/slices/polylineLayerVisibleS import { useSelector, useDispatch } from "react-redux"; import { selectCurrentPoi, setCurrentPoi, clearCurrentPoi } from "../redux/slices/currentPoiSlice"; +import useDrawLines from "../hooks/layers/useDrawLines"; + const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { const dispatch = useDispatch(); const currentPoi = useSelector(selectCurrentPoi); @@ -268,37 +270,7 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => { }, []); //-------------------------------------------------------- - useEffect(() => { - const endpoint = "/api/talas_v5_DB/gisLines/readGisLines"; - //const endpoint = "http://localhost/talas5/ClientData/WebServiceMap.asmx/GisLinesStatus?idMap=10"; - fetch(endpoint) - .then((response) => { - if (!response.ok) { - throw new Error(`HTTP error! status: ${response.status}`); - } - return response.json(); - }) - .then((data) => { - const newLinePositions = data.map((item) => { - //console.log("item.idLD", item.idLD); - //console.log("item.idModul", item.idModul); - - if (item.points && Array.isArray(item.points)) { - return { - coordinates: item.points.map((point) => [point.x, point.y]), - idModul: item.idModul, - idLD: item.idLD, - }; - } else { - throw new Error("Points missing or not an array"); - } - }); - setLinePositions(newLinePositions); - }) - .catch((error) => { - console.error("Error fetching data:", error.message); - }); - }, []); + useDrawLines(setLinePositions); //-------------------------------------------- useEffect(() => { const fetchPoiTypData = async () => { diff --git a/hooks/layers/useDrawLines.js b/hooks/layers/useDrawLines.js new file mode 100644 index 000000000..6308acbcb --- /dev/null +++ b/hooks/layers/useDrawLines.js @@ -0,0 +1,37 @@ +import { useEffect } from "react"; +const useDrawLines = (setLinePositions) => { + // Linien auf die Karte zeichnen + useEffect(() => { + const endpoint = "/api/talas_v5_DB/gisLines/readGisLines"; + //const endpoint = "http://localhost/talas5/ClientData/WebServiceMap.asmx/GisLinesStatus?idMap=10"; + fetch(endpoint) + .then((response) => { + if (!response.ok) { + throw new Error(`HTTP error! status: ${response.status}`); + } + return response.json(); + }) + .then((data) => { + const newLinePositions = data.map((item) => { + //console.log("item.idLD", item.idLD); + //console.log("item.idModul", item.idModul); + + if (item.points && Array.isArray(item.points)) { + return { + coordinates: item.points.map((point) => [point.x, point.y]), + idModul: item.idModul, + idLD: item.idLD, + }; + } else { + throw new Error("Points missing or not an array"); + } + }); + setLinePositions(newLinePositions); + }) + .catch((error) => { + console.error("Error fetching data:", error.message); + }); + }, []); +}; + +export default useDrawLines;