fix: move createDbLayer helper function to parent scope to prevent ReferenceError
This commit is contained in:
parent
e68bee0bb1
commit
866d749388
132
app.js
132
app.js
|
|
@ -1105,6 +1105,72 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
const statusEl = document.getElementById('statusInfo');
|
const statusEl = document.getElementById('statusInfo');
|
||||||
const isLocalFile = globalThis.location?.protocol === 'file:';
|
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 = `<b>${name}</b><br><hr style="margin: 5px 0; border: 0; border-top: 1px solid #444;">`;
|
||||||
|
for (let key in feature.properties) {
|
||||||
|
const val = feature.properties[key];
|
||||||
|
if (val !== null && val !== undefined) popup += `<b>${key}:</b> ${val}<br>`;
|
||||||
|
}
|
||||||
|
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 {
|
try {
|
||||||
// Priority 1: Use globalThis.BAKED_DATA if available (Standalone Mode)
|
// Priority 1: Use globalThis.BAKED_DATA if available (Standalone Mode)
|
||||||
if (globalThis.BAKED_DATA) {
|
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 = `<b>${name}</b><br><hr style="margin: 5px 0; border: 0; border-top: 1px solid #444;">`;
|
|
||||||
for (let key in feature.properties) {
|
|
||||||
const val = feature.properties[key];
|
|
||||||
if (val !== null && val !== undefined) popup += `<b>${key}:</b> ${val}<br>`;
|
|
||||||
}
|
|
||||||
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(freileitungen, "Freileitungen (DB)", () => ({ color: '#ccaa00', weight: 3, fillOpacity: 0 }), true);
|
||||||
createDbLayer(wasserstoff, "Wasserstoffleitungen (DB)", () => ({ color: '#9400d3', weight: 2.5, fillOpacity: 0 }), false);
|
createDbLayer(wasserstoff, "Wasserstoffleitungen (DB)", () => ({ color: '#9400d3', weight: 2.5, fillOpacity: 0 }), false);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue