GisStationsStaticDistrict API Datenaufruf in der Console

This commit is contained in:
ISA
2024-04-16 07:28:12 +02:00
parent 7738e53e03
commit 26095171fb
9 changed files with 128 additions and 112 deletions

File diff suppressed because one or more lines are too long

View File

@@ -3,6 +3,6 @@
"/_error": "pages/_error.js", "/_error": "pages/_error.js",
"/_document": "pages/_document.js", "/_document": "pages/_document.js",
"/": "pages/index.js", "/": "pages/index.js",
"/api/locations": "pages/api/locations.js", "/api/[...path]": "pages/api/[...path].js",
"/api/[...path]": "pages/api/[...path].js" "/api/locations": "pages/api/locations.js"
} }

File diff suppressed because one or more lines are too long

View File

@@ -153,7 +153,7 @@
/******/ /******/
/******/ /* webpack/runtime/getFullHash */ /******/ /* webpack/runtime/getFullHash */
/******/ !function() { /******/ !function() {
/******/ __webpack_require__.h = function() { return "0f945be9853e1317"; } /******/ __webpack_require__.h = function() { return "60f0eb37bd675352"; }
/******/ }(); /******/ }();
/******/ /******/
/******/ /* webpack/runtime/global */ /******/ /* webpack/runtime/global */

File diff suppressed because one or more lines are too long

View File

@@ -4,51 +4,60 @@ import L from "leaflet";
import "leaflet/dist/leaflet.css"; import "leaflet/dist/leaflet.css";
import "leaflet-contextmenu/dist/leaflet.contextmenu.css"; import "leaflet-contextmenu/dist/leaflet.contextmenu.css";
import "leaflet-contextmenu"; import "leaflet-contextmenu";
import * as config from '../config/config.js'; import * as config from "../config/config.js";
const MapComponent = ({ locations, onLocationUpdate }) => { const MapComponent = ({ locations, onLocationUpdate }) => {
const mapRef = useRef(null); // Referenz auf das DIV-Element der Karte const mapRef = useRef(null); // Referenz auf das DIV-Element der Karte
const [map, setMap] = useState(null); // Zustand der Karteninstanz const [map, setMap] = useState(null); // Zustand der Karteninstanz
const [online, setOnline] = useState(navigator.onLine); // Zustand der Internetverbindung const [online, setOnline] = useState(navigator.onLine); // Zustand der Internetverbindung
const [dataStatic, setDataStatic] = useState([]); // Zustand für statische Daten const [GisStationsStaticDistrict, setGisStationsStaticDistrict] = useState(
[]
); // Zustand für statische Daten
const [dataStatus, setDataStatus] = useState([]); // Zustand für Statusdaten const [dataStatus, setDataStatus] = useState([]); // Zustand für Statusdaten
const [dataIcons, setDataIcons] = useState([]); // Zustand für Icons const [dataIcons, setDataIcons] = useState([]); // Zustand für Icons
const [dataSystem, setDataSystem] = useState([]); // Zustand für Systemdaten const [dataSystem, setDataSystem] = useState([]); // Zustand für Systemdaten
// Konstanten für die URLs // Konstanten für die URLs
const mapDataStaticUrl = config.mapDataStaticUrl; const mapGisStationsStaticDistrictUrl =
config.mapGisStationsStaticDistrictUrl;
const mapDataStatusUrl = config.mapDataStatusUrl; const mapDataStatusUrl = config.mapDataStatusUrl;
const mapDataIconUrl = config.mapDataIconUrl; const mapDataIconUrl = config.mapDataIconUrl;
const mapDataSystemUrl = config.mapDataSystemUrl; const mapDataSystemUrl = config.mapDataSystemUrl;
console.log('dataStatic hier :', dataStatic); console.log("GisStationsStaticDistrict 1 :", GisStationsStaticDistrict);
console.log('map:', map); console.log("map:", map);
//------------------------------------------ //------------------------------------------
// API-Daten laden für GisStationsStaticDistrict
//http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsStaticDistrict?idMap=10&idUser=485
useEffect(() => { useEffect(() => {
const fetchData = async () => { const fetchData = async () => {
try { try {
console.log("Datenabruf gestartet..."); console.log("Datenabruf gestartet...");
const response = await fetch(config.mapDataStaticUrl); const response = await fetch(config.mapGisStationsStaticDistrictUrl);
const jsonResponse = await response.json(); const jsonResponse = await response.json();
// Prüfen, ob die Antwort das erwartete Format hat und Daten enthält // Prüfen, ob die Antwort das erwartete Format hat und Daten enthält
if (jsonResponse && jsonResponse.length > 0 && jsonResponse[0].points) { if (jsonResponse && jsonResponse.Points) {
console.log('dataStatic hier :', dataStatic); console.log(
console.log('map:', map); "GisStationsStaticDistrict geladen:",
setDataStatic(jsonResponse[0].points); // Zugriff auf das erste Objekt und dessen points-Array jsonResponse.Points
);
setGisStationsStaticDistrict(jsonResponse.Points); // Direkter Zugriff auf 'Points'
} else { } else {
console.error('Erwartete Daten im "points"-Array nicht gefunden', jsonResponse); console.error(
setDataStatic([]); 'Erwartete Daten im "Points"-Array nicht gefunden',
jsonResponse
);
setGisStationsStaticDistrict([]);
} }
} catch (error) { } catch (error) {
console.error("Fehler beim Laden der Daten: ", error); console.error("Fehler beim Laden der Daten: ", error);
setDataStatic([]); setGisStationsStaticDistrict([]);
} }
}; };
fetchData(); fetchData();
}, []); // Dependency-Array ist leer, um den Effekt nur beim Mount auszuführen }, []); // Dependency-Array ist leer, um den Effekt nur beim Mount auszuführen
//------------------------------------------ //------------------------------------------
useEffect(() => { useEffect(() => {
// Prüfen der Internetverbindung beim Start // Prüfen der Internetverbindung beim Start
@@ -60,16 +69,20 @@ const MapComponent = ({ locations, onLocationUpdate }) => {
try { try {
console.log("Datenabruf gestartet..."); console.log("Datenabruf gestartet...");
const responses = await Promise.all([ const responses = await Promise.all([
fetch(config.mapDataStaticUrl).then(res => res.json()), fetch(config.mapGisStationsStaticDistrictUrl).then((res) =>
fetch(config.mapDataStatusUrl).then(res => res.json()), res.json()
fetch(config.mapDataIconUrl).then(res => res.json()), ),
fetch(config.mapDataSystemUrl).then(res => res.json()) fetch(config.mapDataStatusUrl).then((res) => res.json()),
fetch(config.mapDataIconUrl).then((res) => res.json()),
fetch(config.mapDataSystemUrl).then((res) => res.json()),
]); ]);
console.log("Daten erfolgreich geladen."); console.log("Daten erfolgreich geladen.");
setDataStatic(responses[0].Points); setGisStationsStaticDistrict(responses[0].Points);
setDataStatus(responses[1].Statis); setDataStatus(responses[1].Statis);
setDataIcons(responses[2].List); setDataIcons(responses[2].List);
setDataSystem(responses[3].Systems.filter(system => system.Allow === 1)); setDataSystem(
responses[3].Systems.filter((system) => system.Allow === 1)
);
} catch (error) { } catch (error) {
console.error("Fehler beim Laden der Daten: ", error); console.error("Fehler beim Laden der Daten: ", error);
} }
@@ -78,26 +91,6 @@ const MapComponent = ({ locations, onLocationUpdate }) => {
fetchData(); fetchData();
}, []); // Leeres Abhängigkeitsarray, um nur beim ersten Mount zu laden }, []); // Leeres Abhängigkeitsarray, um nur beim ersten Mount zu laden
useEffect(() => {
if (map && Array.isArray(dataStatic)) {
dataStatic.forEach(item => {
const marker = L.marker([item.y, item.x], { // Verwendung von item.y und item.x statt item.latitude und item.longitude
icon: L.icon({
iconUrl: '/path/to/icon.png', // Pfad zum Icon
iconSize: [25, 41], // Größe des Icons
iconAnchor: [12, 41], // Ankerpunkt des Icons
popupAnchor: [1, -34], // Position des Popups relativ zum Icon
shadowSize: [41, 41] // Größe des Schattens
})
}).addTo(map);
// Anpassen des Popups um relevante Daten anzuzeigen
marker.bindPopup(`<b>${item.lD_Name}</b><br>${item.device}`).openPopup();
});
}
}, [map, dataStatic]); // Abhängigkeiten des Effekts
const offlineTileLayer = "../TileMap/mapTiles/{z}/{x}/{y}.png"; const offlineTileLayer = "../TileMap/mapTiles/{z}/{x}/{y}.png";
const onlineTileLayer = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"; const onlineTileLayer = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";
// Create map layers // Create map layers
@@ -136,7 +129,20 @@ const MapComponent = ({ locations, onLocationUpdate }) => {
initialMap = L.map(mapRef.current, { initialMap = L.map(mapRef.current, {
center: [53.111111, 8.4625], center: [53.111111, 8.4625],
zoom: 10, zoom: 10,
layers: [TALAS, ECI, ULAF, GSMModem, CiscoRouter, WAGO, Siemens, OTDR, WDM, GMA, Sonstige, TALASICL], layers: [
TALAS,
ECI,
ULAF,
GSMModem,
CiscoRouter,
WAGO,
Siemens,
OTDR,
WDM,
GMA,
Sonstige,
TALASICL,
],
zoomControl: false, // Deaktiviere die Standard-Zoomsteuerung zoomControl: false, // Deaktiviere die Standard-Zoomsteuerung
contextmenu: true, contextmenu: true,
contextmenuItems: [ contextmenuItems: [
@@ -453,8 +459,8 @@ const MapComponent = ({ locations, onLocationUpdate }) => {
var y = 7.739617925303934; var y = 7.739617925303934;
var zoom = 7; var zoom = 7;
/* for (var i = 0; i < dataStaticlength; i++) { /* for (var i = 0; i < GisStationsStaticDistrictlength; i++) {
var gisStatics = dataStatic[i]; var gisStatics = GisStationsStaticDistrict[i];
if (stationValue === gisStatics.Area_Name) { if (stationValue === gisStatics.Area_Name) {
//console.log(gisStatics.X+","+gisStatics.Y); //console.log(gisStatics.X+","+gisStatics.Y);
x = gisStatics.X; x = gisStatics.X;

View File

@@ -7,7 +7,7 @@ const serverURL = "/api"; // Die Basis-URL des Servers, von dem Daten bezogen we
// Initialisieren von Variablen, die später im Browserkontext gesetzt werden // Initialisieren von Variablen, die später im Browserkontext gesetzt werden
let windowHeight, url_string, url, c, user; let windowHeight, url_string, url, c, user;
let mapDataStaticUrl, let mapGisStationsStaticDistrictUrl,
mapDataStatusUrl, mapDataStatusUrl,
mapDataMeasures, mapDataMeasures,
mapDataIconUrl, mapDataIconUrl,
@@ -25,16 +25,16 @@ if (typeof window !== "undefined") {
url_string = window.location.href; // Die vollständige URL als String url_string = window.location.href; // Die vollständige URL als String
url = new URL(url_string); // Die URL als URL-Objekt, um Teile der URL einfacher zu handhaben url = new URL(url_string); // Die URL als URL-Objekt, um Teile der URL einfacher zu handhaben
c = url.searchParams.get("m") || "10"; // Ein Parameter aus der URL, Standardwert ist '10' c = url.searchParams.get("m") || "10"; // Ein Parameter aus der URL, Standardwert ist '10'
user = url.searchParams.get("u") || "484"; // Ein weiterer Parameter aus der URL, Standardwert ist '487 oder 484' user = url.searchParams.get("u") || "485"; // Ein weiterer Parameter aus der URL, Standardwert ist '487 oder 484 oder 485'
// Konstruktion von URLs, die auf spezifische Ressourcen auf dem Server zeigen // Konstruktion von URLs, die auf spezifische Ressourcen auf dem Server zeigen
mapDataStaticUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict?idMap=${c}&idUser=${user}`; mapGisStationsStaticDistrictUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict?idMap=${c}&idUser=${user}`;
mapDataStatusUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict?idMap=${c}&idUser=${user}`; mapDataStatusUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict?idMap=${c}&idUser=${user}`;
mapDataMeasures = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements?idMap=${c}`; mapDataMeasures = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements?idMap=${c}`;
mapDataIconUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic`; mapDataIconUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic`;
mapDataSystemUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap=${c}&idUser=${user}`; mapDataSystemUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisSystemStatic?idMap=${c}&idUser=${user}`;
/* mapDataStaticUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict`; /* mapGisStationsStaticDistrictUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStaticDistrict`;
mapDataStatusUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict`; mapDataStatusUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsStatusDistrict`;
mapDataMeasures = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements`; mapDataMeasures = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GisStationsMeasurements`;
mapDataIconUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic`; mapDataIconUrl = `${serverURL}/talas5/ClientData/WebserviceMap.asmx/GetIconsStatic`;
@@ -59,7 +59,7 @@ export {
url, url,
c, c,
user, user,
mapDataStaticUrl, mapGisStationsStaticDistrictUrl,
mapDataStatusUrl, mapDataStatusUrl,
mapDataMeasures, mapDataMeasures,
mapDataIconUrl, mapDataIconUrl,