diff --git a/index.html b/index.html
index 1723608..feec7d1 100644
--- a/index.html
+++ b/index.html
@@ -2750,34 +2750,66 @@
if (isLoading) return;
isLoading = true;
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`);
- state.owners = await ownersRes.json();
-
- const usageRes = await fetch(`${API_BASE}/usage`);
- state.usage = await usageRes.json();
-
- const variantsRes = await fetch(`${API_BASE}/variants`);
- const variants = await variantsRes.json();
- if (variants && variants.length > 0) {
- state.variants = variants;
+ 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();
+
+ // Auto-Zoom auf die Daten beim ersten Laden
+ if (layers.owners.getBounds().isValid()) {
+ map.fitBounds(layers.owners.getBounds());
+ }
}
+ // 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`);
- state.wea = await weaRes.json();
- updateWEALayer();
+ if (weaRes.ok) {
+ state.wea = await weaRes.json();
+ updateWEALayer();
+ }
- const infraRes = await fetch(`${API_BASE}/infrastructure`);
- state.infrastructure = await infraRes.json();
- updateInfrastructureLayer();
-
- initApp();
- console.log("Data successfully loaded from PostGIS.");
+ console.log("Daten erfolgreich vom Server geladen.");
} catch (err) {
- console.error("PostGIS Load failed:", err);
- initApp(); // Fallback
+ console.error("Fehler beim Laden der Server-Daten:", err);
} finally {
isLoading = false;
+ renderVariants();
}
}
let isSaving = false;