diff --git a/components/MapComponent.js b/components/MapComponent.js
index a0ba9eabb..3306cfe52 100644
--- a/components/MapComponent.js
+++ b/components/MapComponent.js
@@ -249,6 +249,14 @@ const MapComponent = ({ locations, onLocationUpdate, lineCoordinates }) => {
mapLayersVisibility.GMA // Übergebe die Sichtbarkeitsbedingung als Parameter
);
+ useSmsfunkmodemMarkersLayer(
+ map,
+ oms,
+ GisSystemStatic,
+ priorityConfig,
+ mapLayersVisibility.SMSFunkmodem // Sichtbarkeitsstatus aus dem State
+ );
+
useEffect(() => {
const fetchWebServiceMap = async () => {
try {
@@ -436,7 +444,7 @@ await fetchGisStationsStatusDistrict(mapGisStationsStatusDistrictUrl, setGisStat
useLayerVisibility(map, sonstigeMarkers, mapLayersVisibility, "Sonstige", oms);
useLayerVisibility(map, talasiclMarkers, mapLayersVisibility, "TALASICL", oms);
useLayerVisibility(map, dauzMarkers, mapLayersVisibility, "DAUZ", oms);
- useLayerVisibility(map, smsfunkmodemMarkers, mapLayersVisibility, "SMSFunkmodem", oms);
+ useLayerVisibility(map, smsfunkmodemMarkers, mapLayersVisibility, "SMSModem", oms);
useLayerVisibility(map, messstellenMarkers, mapLayersVisibility, "Messstellen", oms);
useLayerVisibility(map, ulafMarkers, mapLayersVisibility, "ULAF", oms);
diff --git a/components/imports.js b/components/imports.js
index a81e36edb..8cfda612b 100644
--- a/components/imports.js
+++ b/components/imports.js
@@ -1,4 +1,4 @@
-// imports.js
+/* // imports.js
import React, { useEffect, useRef, useState, useCallback } from "react";
import L, { marker } from "leaflet";
import "leaflet/dist/leaflet.css";
@@ -160,3 +160,4 @@ export {
useLayerVisibility,
useLineData,
};
+ */
diff --git a/config/settings.js b/config/settings.js
index 04ef0cb23..f7ec4e05f 100644
--- a/config/settings.js
+++ b/config/settings.js
@@ -1,5 +1,5 @@
// /config/settings.js
// Definieren der grundlegenden Umgebungseinstellungen und Konfigurationen der Karte
-export const MAP_VERSION = "1.0.4";
+export const MAP_VERSION = "1.0.5";
//export const STANDARD_SIDE_MENU = true;
//export const FULL_SIDE_MENU = false;
diff --git a/hooks/layers/useLteModemMarkersLayer.js b/hooks/layers/useLteModemMarkersLayer.js
index d32507dee..57ee511da 100644
--- a/hooks/layers/useLteModemMarkersLayer.js
+++ b/hooks/layers/useLteModemMarkersLayer.js
@@ -1,4 +1,4 @@
-// hooks/useLteModemMarkersLayer.js
+/* // hooks/useLteModemMarkersLayer.js das ist GSM Modem
import { useEffect, useState } from "react";
import L from "leaflet";
import { createAndSetDevices } from "../../utils/createAndSetDevices";
@@ -47,3 +47,4 @@ const useLteModemMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => {
};
export default useLteModemMarkersLayer;
+ */
diff --git a/hooks/layers/useSmsfunkmodemMarkersLayer.js b/hooks/layers/useSmsfunkmodemMarkersLayer.js
index 4c5d182cc..3dcb27493 100644
--- a/hooks/layers/useSmsfunkmodemMarkersLayer.js
+++ b/hooks/layers/useSmsfunkmodemMarkersLayer.js
@@ -4,49 +4,60 @@ import L from "leaflet";
import "leaflet-contextmenu";
import { addContextMenuToMarker } from "../../utils/addContextMenuToMarker";
-const useSmsfunkmodemMarkersLayer = (map, oms, GisSystemStatic, priorityConfig) => {
+const useSmsfunkmodemMarkersLayer = (map, oms, GisSystemStatic, priorityConfig, isVisible) => {
const [smsfunkmodemMarkers, setSmsfunkmodemMarkers] = useState([]);
useEffect(() => {
- if (map && GisSystemStatic) {
- const markers = GisSystemStatic.filter((station) => station.System === 111).map((station) => {
- const marker = L.marker([station.Latitude, station.Longitude], {
- icon: L.icon({
- iconUrl: "/img/icons/pois/sms-funkmodem.png",
- iconSize: [25, 41],
- iconAnchor: [12, 41],
- popupAnchor: [1, -34],
- }),
- id: station.id,
- areaName: station.Area_Name,
- draggable: false,
- }).bindPopup(`
-
- ${station.Area_Name || "Unbekannt"}
- ${station.Description || "No Description"}
-
- `);
+ if (!map || !GisSystemStatic) return;
- marker.on("mouseover", function () {
- this.openPopup();
- });
+ // Debugging: Logge die Sichtbarkeit und die übergebenen Daten
+ console.log("isVisible für SMS Modem:", isVisible);
+ console.log("Alle Stationen in GisSystemStatic:", GisSystemStatic);
- marker.on("mouseout", function () {
- this.closePopup();
- });
+ // Hilfsfunktion: Normalisiert Strings
+ const normalizeString = (str) => str?.trim().toLowerCase() || "";
- addContextMenuToMarker(marker);
+ // Filter für SMS Modem (System === 111 oder Name entspricht "SMS Modem")
+ const markers = isVisible
+ ? GisSystemStatic.filter((station) => station.System === 111 || normalizeString(station.Name) === "SMS Modem").map((station) => {
+ console.log("Gefundener SMS Modem-Marker:", station); // Debugging
+ const marker = L.marker([station.Latitude, station.Longitude], {
+ icon: L.icon({
+ iconUrl: "/img/icons/pois/sms-funkmodem.png",
+ iconSize: [25, 41],
+ iconAnchor: [12, 41],
+ popupAnchor: [1, -34],
+ }),
+ id: station.id,
+ areaName: station.Area_Name,
+ draggable: false,
+ }).bindPopup(`
+
+ ${station.Area_Name || "Unbekannt"}
+ ${station.Description || "No Description"}
+
+ `);
- return marker;
- });
+ // Füge ein Kontextmenü hinzu
+ addContextMenuToMarker(marker);
+ return marker;
+ })
+ : [];
- setSmsfunkmodemMarkers(markers);
- markers.forEach((marker) => {
- marker.addTo(map);
- oms.addMarker(marker);
- });
- }
- }, [map, GisSystemStatic, priorityConfig]);
+ // Setze die Marker im Zustand
+ setSmsfunkmodemMarkers(markers);
+
+ // Füge Marker zur Karte hinzu
+ markers.forEach((marker) => {
+ marker.addTo(map);
+ oms.addMarker(marker);
+ });
+
+ // Cleanup: Entferne Marker bei Deaktivierung oder wenn der Hook entladen wird
+ return () => {
+ markers.forEach((marker) => marker.remove());
+ };
+ }, [map, GisSystemStatic, isVisible]);
return smsfunkmodemMarkers;
};
diff --git a/pages/api/talas5/webserviceMap/GisSystemStatic.js b/pages/api/talas5/webserviceMap/GisSystemStatic.js
index b2fb56635..2bd6c09ce 100644
--- a/pages/api/talas5/webserviceMap/GisSystemStatic.js
+++ b/pages/api/talas5/webserviceMap/GisSystemStatic.js
@@ -1,273 +1,273 @@
// /pages/api/webServiceMap.js
const gisSystemStatic = {
- "Name": "Liste aller angezeigten Systeme",
- "Zeitstempel": "2024-05-31T15:08:49.8599542+02:00",
- "IdMap": "10",
- "Systems": [
+ Name: "Liste aller angezeigten Systeme",
+ Zeitstempel: "2024-05-31T15:08:49.8599542+02:00",
+ IdMap: "10",
+ Systems: [
{
- "IdSystem": 1,
- "Name": "TALAS",
- "Longname": "Talas Meldestationen",
- "Allow": 1,
- "Icon": 1
+ IdSystem: 1,
+ Name: "TALAS",
+ Longname: "Talas Meldestationen",
+ Allow: 1,
+ Icon: 1,
},
{
- "IdSystem": 2,
- "Name": "ECI",
- "Longname": "ECI Geräte",
- "Allow": 1,
- "Icon": 2
+ IdSystem: 2,
+ Name: "ECI",
+ Longname: "ECI Geräte",
+ Allow: 1,
+ Icon: 2,
},
{
- "IdSystem": 5,
- "Name": "GSM Modem",
- "Longname": "LR77 GSM Modems",
- "Allow": 1,
- "Icon": 5
+ IdSystem: 5,
+ Name: "GSM Modem",
+ Longname: "LR77 GSM Modems",
+ Allow: 1,
+ Icon: 5,
},
{
- "IdSystem": 6,
- "Name": "Cisco Router",
- "Longname": "Cisco Router",
- "Allow": 1,
- "Icon": 6
+ IdSystem: 6,
+ Name: "Cisco Router",
+ Longname: "Cisco Router",
+ Allow: 1,
+ Icon: 6,
},
{
- "IdSystem": 7,
- "Name": "WAGO",
- "Longname": "WAGO I/O Systeme",
- "Allow": 1,
- "Icon": 7
+ IdSystem: 7,
+ Name: "WAGO",
+ Longname: "WAGO I/O Systeme",
+ Allow: 1,
+ Icon: 7,
},
{
- "IdSystem": 8,
- "Name": "Siemens",
- "Longname": "Siemens Notrufsystem",
- "Allow": 0,
- "Icon": 8
+ IdSystem: 8,
+ Name: "Siemens",
+ Longname: "Siemens Notrufsystem",
+ Allow: 0,
+ Icon: 8,
},
{
- "IdSystem": 9,
- "Name": "OTDR",
- "Longname": "Glasfaserüberwachung OTU",
- "Allow": 0,
- "Icon": 9
+ IdSystem: 9,
+ Name: "OTDR",
+ Longname: "Glasfaserüberwachung OTU",
+ Allow: 0,
+ Icon: 9,
},
{
- "IdSystem": 10,
- "Name": "WDM",
- "Longname": " Wavelength Division Multiplexing",
- "Allow": 0,
- "Icon": 10
+ IdSystem: 10,
+ Name: "WDM",
+ Longname: " Wavelength Division Multiplexing",
+ Allow: 0,
+ Icon: 10,
},
{
- "IdSystem": 11,
- "Name": "GMA",
- "Longname": "Glättemeldeanlagen",
- "Allow": 1,
- "Icon": 11
+ IdSystem: 11,
+ Name: "GMA",
+ Longname: "Glättemeldeanlagen",
+ Allow: 1,
+ Icon: 11,
},
{
- "IdSystem": 13,
- "Name": "Messstellen",
- "Longname": "Messstellen",
- "Allow": 0,
- "Icon": 13
+ IdSystem: 13,
+ Name: "Messstellen",
+ Longname: "Messstellen",
+ Allow: 0,
+ Icon: 13,
},
{
- "IdSystem": 100,
- "Name": "TALAS ICL",
- "Longname": "Talas ICL Unterstationen",
- "Allow": 1,
- "Icon": 100
+ IdSystem: 100,
+ Name: "TALAS ICL",
+ Longname: "Talas ICL Unterstationen",
+ Allow: 1,
+ Icon: 100,
},
{
- "IdSystem": 110,
- "Name": "DAUZ",
- "Longname": "Dauerzählstellen",
- "Allow": 1,
- "Icon": 110
+ IdSystem: 110,
+ Name: "DAUZ",
+ Longname: "Dauerzählstellen",
+ Allow: 1,
+ Icon: 110,
},
{
- "IdSystem": 111,
- "Name": "SMS-Funkmodem",
- "Longname": "SMS-Funkmodem",
- "Allow": 0,
- "Icon": 111
+ IdSystem: 111,
+ Name: "SMS-Funkmodem",
+ Longname: "SMS-Funkmodem",
+ Allow: 0,
+ Icon: 111,
},
{
- "IdSystem": 200,
- "Name": "Sonstige",
- "Longname": "Sonstige",
- "Allow": 1,
- "Icon": 200
- }
+ IdSystem: 200,
+ Name: "Sonstige",
+ Longname: "Sonstige",
+ Allow: 1,
+ Icon: 200,
+ },
],
- "Rights": [
+ Rights: [
{
- "IdRight": 1
+ IdRight: 1,
},
{
- "IdRight": 2
+ IdRight: 2,
},
{
- "IdRight": 3
+ IdRight: 3,
},
{
- "IdRight": 5
+ IdRight: 5,
},
{
- "IdRight": 6
+ IdRight: 6,
},
{
- "IdRight": 7
+ IdRight: 7,
},
{
- "IdRight": 8
+ IdRight: 8,
},
{
- "IdRight": 10
+ IdRight: 10,
},
{
- "IdRight": 11
+ IdRight: 11,
},
{
- "IdRight": 12
+ IdRight: 12,
},
{
- "IdRight": 20
+ IdRight: 20,
},
{
- "IdRight": 22
+ IdRight: 22,
},
{
- "IdRight": 23
+ IdRight: 23,
},
{
- "IdRight": 25
+ IdRight: 25,
},
{
- "IdRight": 30
+ IdRight: 30,
},
{
- "IdRight": 40
+ IdRight: 40,
},
{
- "IdRight": 41
+ IdRight: 41,
},
{
- "IdRight": 42
+ IdRight: 42,
},
{
- "IdRight": 43
+ IdRight: 43,
},
{
- "IdRight": 44
+ IdRight: 44,
},
{
- "IdRight": 45
+ IdRight: 45,
},
{
- "IdRight": 46
+ IdRight: 46,
},
{
- "IdRight": 47
+ IdRight: 47,
},
{
- "IdRight": 48
+ IdRight: 48,
},
{
- "IdRight": 49
+ IdRight: 49,
},
{
- "IdRight": 50
+ IdRight: 50,
},
{
- "IdRight": 51
+ IdRight: 51,
},
{
- "IdRight": 52
+ IdRight: 52,
},
{
- "IdRight": 55
+ IdRight: 55,
},
{
- "IdRight": 56
+ IdRight: 56,
},
{
- "IdRight": 60
+ IdRight: 60,
},
{
- "IdRight": 61
+ IdRight: 61,
},
{
- "IdRight": 62
+ IdRight: 62,
},
{
- "IdRight": 63
+ IdRight: 63,
},
{
- "IdRight": 64
+ IdRight: 64,
},
{
- "IdRight": 65
+ IdRight: 65,
},
{
- "IdRight": 68
+ IdRight: 68,
},
{
- "IdRight": 69
+ IdRight: 69,
},
{
- "IdRight": 70
+ IdRight: 70,
},
{
- "IdRight": 71
+ IdRight: 71,
},
{
- "IdRight": 72
+ IdRight: 72,
},
{
- "IdRight": 73
+ IdRight: 73,
},
{
- "IdRight": 79
+ IdRight: 79,
},
{
- "IdRight": 80
+ IdRight: 80,
},
{
- "IdRight": 90
+ IdRight: 90,
},
{
- "IdRight": 93
+ IdRight: 93,
},
{
- "IdRight": 94
+ IdRight: 94,
},
{
- "IdRight": 95
+ IdRight: 95,
},
{
- "IdRight": 96
- }
- ]
-}
-
+ IdRight: 96,
+ },
+ ],
+};
+
// Export an async function handler for the API route.
export default async function handler(req, res) {
- // Initialize an empty params object to store query parameters.
- const params = {
- idMap: req.query.idMap,
- idUser: req.query.idUser
- };
+ // Initialize an empty params object to store query parameters.
+ const params = {
+ idMap: req.query.idMap,
+ idUser: req.query.idUser,
+ };
- // Check if the requested ID map and user match certain conditions.
- if (params.idMap === '10' && params.idUser === '484') {
- // If the conditions are met, return the gisSystemStatic object with a 200 status code.
- res.status(200).json(gisSystemStatic);
- } else {
- // If not, return a 404 error with the message "Not Found".
- res.status(404).send('Not Found');
- }
-};
\ No newline at end of file
+ // Check if the requested ID map and user match certain conditions.
+ if (params.idMap === "10" && params.idUser === "484") {
+ // If the conditions are met, return the gisSystemStatic object with a 200 status code.
+ res.status(200).json(gisSystemStatic);
+ } else {
+ // If not, return a 404 error with the message "Not Found".
+ res.status(404).send("Not Found");
+ }
+}