feat: Artennachweise Restriktionen Abstand Layer integriert
Deploy Bürgerwind / deploy (push) Successful in 17s
Details
Deploy Bürgerwind / deploy (push) Successful in 17s
Details
This commit is contained in:
parent
e129d890e6
commit
a51a6addf9
29
app.js
29
app.js
|
|
@ -1153,7 +1153,34 @@ document.addEventListener('DOMContentLoaded', async () => {
|
||||||
console.warn("Artennachweis-Layer konnte nicht geladen werden.");
|
console.warn("Artennachweis-Layer konnte nicht geladen werden.");
|
||||||
}
|
}
|
||||||
|
|
||||||
statusEl.innerText = "Layer geladen (ALKIS DB & Artennachweis integriert).";
|
// Artennachweis Restriktionsabstände laden
|
||||||
|
console.log("Lade Artennachweise-Restriktionen aus Datenbank...");
|
||||||
|
const restriktionResp = await fetch('/api/layers/artennachweise_restriktionen').catch(err => {
|
||||||
|
console.error("Netzwerkfehler beim Laden der Restriktionsabstände:", err);
|
||||||
|
return null;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (restriktionResp?.ok) {
|
||||||
|
const data = await restriktionResp.json();
|
||||||
|
console.log(`Restriktionsabstände API: ${data.features ? data.features.length : 0} Features erhalten.`);
|
||||||
|
if (data.features && data.features.length > 0) {
|
||||||
|
const restriktionLayer = L.geoJSON(data, {
|
||||||
|
style: {
|
||||||
|
color: "#000000",
|
||||||
|
weight: 1,
|
||||||
|
fillOpacity: 0,
|
||||||
|
fillColor: "transparent"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
overlays["Artennachweis Restriktionen"] = restriktionLayer;
|
||||||
|
state.map.addLayer(restriktionLayer);
|
||||||
|
layerControl.addOverlay(restriktionLayer, "Artennachweis Restriktionen");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
console.warn("Restriktionsabstände-Layer konnte nicht geladen werden.");
|
||||||
|
}
|
||||||
|
|
||||||
|
statusEl.innerText = "Layer geladen (ALKIS DB & Artennachweise integriert).";
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
if (!isLocalFile) console.error("Layer-Init fehlgeschlagen:", e);
|
if (!isLocalFile) console.error("Layer-Init fehlgeschlagen:", e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
25
server.js
25
server.js
|
|
@ -275,6 +275,31 @@ app.get('/api/layers/artennachweis', async (req, res) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// NEU: API zum Laden der Artennachweis Restriktionsabstände
|
||||||
|
app.get('/api/layers/artennachweise_restriktionen', async (req, res) => {
|
||||||
|
log("Lade Artennachweise-Restriktionen aus Datenbank...");
|
||||||
|
try {
|
||||||
|
const result = await pool.query(
|
||||||
|
`SELECT jsonb_build_object(
|
||||||
|
'type', 'FeatureCollection',
|
||||||
|
'features', COALESCE(jsonb_agg(features.feature), '[]'::jsonb)
|
||||||
|
)
|
||||||
|
FROM (
|
||||||
|
SELECT jsonb_build_object(
|
||||||
|
'type', 'Feature',
|
||||||
|
'geometry', ST_AsGeoJSON(ST_Transform(geom, 4326))::jsonb,
|
||||||
|
'properties', jsonb_build_object()
|
||||||
|
) AS feature
|
||||||
|
FROM geodaten.artennachweise_restriktion_abstand
|
||||||
|
) features`
|
||||||
|
);
|
||||||
|
res.json(result.rows[0].jsonb_build_object);
|
||||||
|
} catch (err) {
|
||||||
|
log(`FEHLER beim Laden der Restriktionen: ${err.message}`);
|
||||||
|
res.status(500).json({ error: err.message });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// API für Projekt-Statistiken (Fortschrittsanzeige)
|
// API für Projekt-Statistiken (Fortschrittsanzeige)
|
||||||
app.get('/api/stats/:projekt_id', async (req, res) => {
|
app.get('/api/stats/:projekt_id', async (req, res) => {
|
||||||
const { projekt_id } = req.params;
|
const { projekt_id } = req.params;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue