Exhaustive hardening of DB loading and geometry creation to fix map rendering
Deploy Bürgerwind / deploy (push) Successful in 16s
Details
Deploy Bürgerwind / deploy (push) Successful in 16s
Details
This commit is contained in:
parent
4fe64857d9
commit
5db86d82c3
83
app.js
83
app.js
|
|
@ -232,7 +232,12 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||
try {
|
||||
const blf = transform(blfCoords);
|
||||
const ksf = transform(ksfCoords);
|
||||
const mf = turf.featureCollection(mfParts.map(part => transform(part)));
|
||||
|
||||
// Create the feature collection of polygons
|
||||
const mf = {
|
||||
type: "FeatureCollection",
|
||||
features: mfParts.map(part => transform(part))
|
||||
};
|
||||
|
||||
return { sweptArea, techDist, techDistSmall, loadRadius, foundation, blf, ksf, mf, totalHeight, utmCoords };
|
||||
} catch (err) {
|
||||
|
|
@ -1924,51 +1929,53 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||
console.log(`Lade WEAs aus Datenbank für Projekt: ${projekt_id}...`);
|
||||
try {
|
||||
const response = await fetch(`/api/wea/${projekt_id}`);
|
||||
if (response.ok) {
|
||||
const dbTurbines = await response.json();
|
||||
console.log(`Datenbank-Response: ${dbTurbines.length} WEAs erhalten.`);
|
||||
if (dbTurbines.length > 0) {
|
||||
// Clear existing turbines
|
||||
state.turbines.forEach(t => {
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP-Fehler! Status: ${response.status}`);
|
||||
}
|
||||
const dbTurbines = await response.json();
|
||||
console.log(`Datenbank-Response: ${dbTurbines.length} WEAs erhalten.`);
|
||||
|
||||
if (dbTurbines.length > 0) {
|
||||
// Clear existing turbines safely
|
||||
state.turbines.forEach(t => {
|
||||
try {
|
||||
if (t.layers && t.variant && variantLayers[t.variant]) {
|
||||
Object.values(t.layers).forEach(l => variantLayers[t.variant].removeLayer(l));
|
||||
}
|
||||
});
|
||||
state.turbines = [];
|
||||
} catch (e) {}
|
||||
});
|
||||
state.turbines = [];
|
||||
|
||||
dbTurbines.forEach(t => {
|
||||
try {
|
||||
const latlng = L.latLng(t.lat, t.lng);
|
||||
const variant = t.variant || 'A';
|
||||
|
||||
// Check if variant layer exists
|
||||
if (!variantLayers[variant]) {
|
||||
console.warn(`WEA ${t.nr} hat ungültige Variante: ${variant}. Überspringe.`);
|
||||
return;
|
||||
}
|
||||
|
||||
createTurbine(latlng, null, {
|
||||
nr: t.nr,
|
||||
hersteller: t.hersteller,
|
||||
type: t.type,
|
||||
rd: t.rd,
|
||||
hh: t.hh,
|
||||
ksfAngle: t.ksfangle ?? t.ksfAngle ?? 0,
|
||||
variant: variant
|
||||
});
|
||||
} catch (e) {
|
||||
console.error(`Fehler beim Laden von WEA ${t.nr}:`, e);
|
||||
dbTurbines.forEach(t => {
|
||||
try {
|
||||
const latlng = L.latLng(t.lat, t.lng);
|
||||
const variant = t.variant || 'A';
|
||||
|
||||
if (!variantLayers[variant]) {
|
||||
console.warn(`Ungültige Variante: ${variant}`);
|
||||
return;
|
||||
}
|
||||
});
|
||||
statusEl.innerText = `${dbTurbines.length} WEAs aus Datenbank geladen.`;
|
||||
} else {
|
||||
console.log("Datenbank ist leer für dieses Projekt.");
|
||||
}
|
||||
|
||||
createTurbine(latlng, null, {
|
||||
nr: t.nr,
|
||||
hersteller: t.hersteller,
|
||||
type: t.type,
|
||||
rd: parseFloat(t.rd) || 160,
|
||||
hh: parseFloat(t.hh) || 165,
|
||||
ksfAngle: parseFloat(t.ksfangle ?? t.ksfAngle ?? 0),
|
||||
variant: variant
|
||||
});
|
||||
} catch (e) {
|
||||
console.error(`Fehler bei WEA ${t.nr}:`, e);
|
||||
}
|
||||
});
|
||||
statusEl.innerText = `${dbTurbines.length} WEAs aus Datenbank geladen.`;
|
||||
} else {
|
||||
console.error("Fehler beim API-Aufruf:", response.status);
|
||||
console.log("Datenbank ist leer.");
|
||||
}
|
||||
} catch (err) {
|
||||
console.error("Netzwerkfehler beim Laden aus der DB:", err);
|
||||
console.error("GLOBALER FEHLER beim Laden aus der DB:", err);
|
||||
if (statusEl) statusEl.innerText = "Fehler beim Laden der Standorte.";
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue