fix: move createDbLayer helper function to parent scope to prevent ReferenceError
Deploy Standortplaner / deploy (push) Successful in 17s
Details
Deploy Standortplaner / deploy (push) Successful in 17s
Details
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 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 {
|
||||
// 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 = `<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(wasserstoff, "Wasserstoffleitungen (DB)", () => ({ color: '#9400d3', weight: 2.5, fillOpacity: 0 }), false);
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue