Improved loadFromDatabase: added UTM transformation check and auto-zoom to data
Deploy TrassenPlaner / deploy (push) Waiting to run
Details
Deploy TrassenPlaner / deploy (push) Waiting to run
Details
This commit is contained in:
parent
5c2bbeed02
commit
1bed2abfa9
66
index.html
66
index.html
|
|
@ -2750,34 +2750,66 @@
|
||||||
if (isLoading) return;
|
if (isLoading) return;
|
||||||
isLoading = true;
|
isLoading = true;
|
||||||
try {
|
try {
|
||||||
console.log("Loading data from PostGIS...");
|
console.log("Starte Daten-Abruf vom Server...");
|
||||||
|
|
||||||
|
// 1. Eigentümer / Flurstücke
|
||||||
const ownersRes = await fetch(`${API_BASE}/owners`);
|
const ownersRes = await fetch(`${API_BASE}/owners`);
|
||||||
state.owners = await ownersRes.json();
|
if (ownersRes.ok) {
|
||||||
|
let geojson = await ownersRes.json();
|
||||||
|
// Transformation falls die DB UTM-Koordinaten liefert (z.B. > 1000)
|
||||||
|
if (geojson.features && geojson.features.length > 0) {
|
||||||
|
const firstCoord = geojson.features[0].geometry?.coordinates?.[0]?.[0]?.[0] || 0;
|
||||||
|
if (Math.abs(firstCoord) > 1000) {
|
||||||
|
console.log("Erkannte UTM-Koordinaten in DB, transformiere...");
|
||||||
|
geojson = transformGeoJSON(geojson, "EPSG:25832", "EPSG:4326");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
state.owners = geojson;
|
||||||
|
updateOwnerLayer();
|
||||||
|
|
||||||
const usageRes = await fetch(`${API_BASE}/usage`);
|
// Auto-Zoom auf die Daten beim ersten Laden
|
||||||
state.usage = await usageRes.json();
|
if (layers.owners.getBounds().isValid()) {
|
||||||
|
map.fitBounds(layers.owners.getBounds());
|
||||||
const variantsRes = await fetch(`${API_BASE}/variants`);
|
}
|
||||||
const variants = await variantsRes.json();
|
|
||||||
if (variants && variants.length > 0) {
|
|
||||||
state.variants = variants;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 2. Varianten
|
||||||
|
const variantsRes = await fetch(`${API_BASE}/variants`);
|
||||||
|
if (variantsRes.ok) {
|
||||||
|
const variants = await variantsRes.json();
|
||||||
|
if (variants && variants.length > 0) {
|
||||||
|
// Merging logic to preserve existing objects but update routes
|
||||||
|
variants.forEach(sv => {
|
||||||
|
const local = state.variants.find(lv => lv.id === sv.id);
|
||||||
|
if (local) {
|
||||||
|
local.routes = sv.routes || [];
|
||||||
|
local.name = sv.name || local.name;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
updateRouteLayers();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. Nutzungen
|
||||||
|
const usageRes = await fetch(`${API_BASE}/usage`);
|
||||||
|
if (usageRes.ok) {
|
||||||
|
state.usage = await usageRes.json();
|
||||||
|
updateUsageLayer();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 4. WEA
|
||||||
const weaRes = await fetch(`${API_BASE}/wea`);
|
const weaRes = await fetch(`${API_BASE}/wea`);
|
||||||
|
if (weaRes.ok) {
|
||||||
state.wea = await weaRes.json();
|
state.wea = await weaRes.json();
|
||||||
updateWEALayer();
|
updateWEALayer();
|
||||||
|
}
|
||||||
|
|
||||||
const infraRes = await fetch(`${API_BASE}/infrastructure`);
|
console.log("Daten erfolgreich vom Server geladen.");
|
||||||
state.infrastructure = await infraRes.json();
|
|
||||||
updateInfrastructureLayer();
|
|
||||||
|
|
||||||
initApp();
|
|
||||||
console.log("Data successfully loaded from PostGIS.");
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("PostGIS Load failed:", err);
|
console.error("Fehler beim Laden der Server-Daten:", err);
|
||||||
initApp(); // Fallback
|
|
||||||
} finally {
|
} finally {
|
||||||
isLoading = false;
|
isLoading = false;
|
||||||
|
renderVariants();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let isSaving = false;
|
let isSaving = false;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue