diff --git a/app.js b/app.js
index f87eaaf..8144933 100644
--- a/app.js
+++ b/app.js
@@ -1105,6 +1105,72 @@ document.addEventListener('DOMContentLoaded', async () => {
const statusEl = document.getElementById('statusInfo');
const isLocalFile = globalThis.location?.protocol === 'file:';
+ const createDbLayer = (geojsonData, name, styleFunc, isFreileitung) => {
+ if (!geojsonData || !geojsonData.features || geojsonData.features.length === 0) return;
+
+ const layer = L.geoJSON(geojsonData, {
+ style: styleFunc,
+ onEachFeature: (feature, l) => {
+ if (feature.properties) {
+ let popup = `${name}
`;
+ for (let key in feature.properties) {
+ const val = feature.properties[key];
+ if (val !== null && val !== undefined) popup += `${key}: ${val}
`;
+ }
+ l.bindPopup(popup);
+ }
+ }
+ });
+ if (overlays[name]) {
+ state.map.removeLayer(overlays[name]);
+ layerControl.removeLayer(overlays[name]);
+ }
+ overlays[name] = layer;
+ state.map.addLayer(layer);
+ layerControl.addOverlay(layer, name);
+
+ // In bakedData eintragen für die Abstandslinien (updateProximityLines)
+ state.bakedData[name] = { data: geojsonData, style: styleFunc() };
+
+ // Dynamischer Turf Buffer für Freileitungen
+ if (isFreileitung) {
+ try {
+ const bufferedFeatures = [];
+ geojsonData.features.forEach(f => {
+ let dist = 0.05; // 50m default
+ const spannung = (f.properties.spannung || '').toString().toLowerCase();
+ if (spannung.includes('110')) dist = 0.035;
+ else if (spannung.includes('380')) dist = 0.05;
+
+ const b = turf.buffer(f, dist, {units: 'kilometers'});
+ if (b) bufferedFeatures.push(b);
+ });
+
+ if (bufferedFeatures.length > 0) {
+ const bufferLayer = L.geoJSON({ type: 'FeatureCollection', features: bufferedFeatures }, {
+ style: {
+ color: '#ffff00',
+ weight: 0,
+ fillColor: '#ffff00',
+ fillOpacity: 0.3
+ }
+ });
+ const bufferName = name + " (Puffer)";
+ if (overlays[bufferName]) {
+ state.map.removeLayer(overlays[bufferName]);
+ layerControl.removeLayer(overlays[bufferName]);
+ }
+ overlays[bufferName] = bufferLayer;
+ state.map.addLayer(bufferLayer);
+ layerControl.addOverlay(bufferLayer, bufferName);
+ bufferLayer.bringToBack();
+ }
+ } catch(err) {
+ console.error("Fehler beim Erstellen des Puffers für " + name, err);
+ }
+ }
+ };
+
try {
// Priority 1: Use globalThis.BAKED_DATA if available (Standalone Mode)
if (globalThis.BAKED_DATA) {
@@ -1253,72 +1319,6 @@ document.addEventListener('DOMContentLoaded', async () => {
});
}
- const createDbLayer = (geojsonData, name, styleFunc, isFreileitung) => {
- if (geojsonData.features.length === 0) return;
-
- const layer = L.geoJSON(geojsonData, {
- style: styleFunc,
- onEachFeature: (feature, l) => {
- if (feature.properties) {
- let popup = `${name}
`;
- for (let key in feature.properties) {
- const val = feature.properties[key];
- if (val !== null && val !== undefined) popup += `${key}: ${val}
`;
- }
- l.bindPopup(popup);
- }
- }
- });
- if (overlays[name]) {
- state.map.removeLayer(overlays[name]);
- layerControl.removeLayer(overlays[name]);
- }
- overlays[name] = layer;
- state.map.addLayer(layer);
- layerControl.addOverlay(layer, name);
-
- // In bakedData eintragen für die Abstandslinien (updateProximityLines)
- state.bakedData[name] = { data: geojsonData, style: styleFunc() };
-
- // Dynamischer Turf Buffer für Freileitungen
- if (isFreileitung) {
- try {
- const bufferedFeatures = [];
- geojsonData.features.forEach(f => {
- let dist = 0.05; // 50m default
- const spannung = (f.properties.spannung || '').toString().toLowerCase();
- if (spannung.includes('110')) dist = 0.035;
- else if (spannung.includes('380')) dist = 0.05;
-
- const b = turf.buffer(f, dist, {units: 'kilometers'});
- if (b) bufferedFeatures.push(b);
- });
-
- if (bufferedFeatures.length > 0) {
- const bufferLayer = L.geoJSON({ type: 'FeatureCollection', features: bufferedFeatures }, {
- style: {
- color: '#ffff00',
- weight: 0,
- fillColor: '#ffff00',
- fillOpacity: 0.3
- }
- });
- const bufferName = name + " (Puffer)";
- if (overlays[bufferName]) {
- state.map.removeLayer(overlays[bufferName]);
- layerControl.removeLayer(overlays[bufferName]);
- }
- overlays[bufferName] = bufferLayer;
- state.map.addLayer(bufferLayer);
- layerControl.addOverlay(bufferLayer, bufferName);
- bufferLayer.bringToBack();
- }
- } catch(err) {
- console.error("Fehler beim Erstellen des Puffers für " + name, err);
- }
- }
- };
-
createDbLayer(freileitungen, "Freileitungen (DB)", () => ({ color: '#ccaa00', weight: 3, fillOpacity: 0 }), true);
createDbLayer(wasserstoff, "Wasserstoffleitungen (DB)", () => ({ color: '#9400d3', weight: 2.5, fillOpacity: 0 }), false);