-
Notifications
You must be signed in to change notification settings - Fork 4
Geometriebildung
Thomas Schüttenberg edited this page Dec 10, 2017
·
8 revisions
- Nach dem Import der ISYBAU XML-Datei besteht der Datenbankinhalt ausschließlich aus geometrielosen Tabellen.
- Die Geomerie der Abwassertechnischen Anlagen muss in einem sparaten Schritt mittels SQL aus den vorhandenen Koordinaten gebildet werden. Tabellen mit Koordinaten sind: *
- Das Ergebnis kann in QGIS als Vektorlayer geladen werden und auch wieder mit den importierten, untereinander referenzierten Tabellen verknüpft werden.
Achtung: nicht deckungsgleich mit "Abwassertechnische Anlagen", mehrere Punkte pro Anlage (SMP, DMP, etc.) möglich!
SELECT
st_setsrid(st_makepoint(kp.rechtswert, kp.hochwert), 25832)::geometry(Point,25832) AS p_geom_2d
FROM isybau.identi_datenk_stammd_abwassanlage_geomet_geomet_knoten_punkt kp
SELECT (SELECT p_1.parent_ogr_pkid
FROM isy_in.ident_daten_stammd_abwassanlage_geomet_geomet_polygo_polygon p_1
WHERE pk.parent_ogr_pkid::text = p_1.ogr_pkid::text) AS parent_ogr_pkid,
st_setsrid(st_makepolygon(st_makeline(st_makeline(st_makepoint(pk.start_rechtswert, pk.start_hochwert),
st_makepoint(pk.ende_rechtswert, pk.ende_hochwert)))), 25832)::geometry(Polygon,25832) AS f_geom_2d
FROM isy_in.ident_daten_stamm_abwasanlag_geome_geome_polygo_polygo_kante pk,
isy_in.ident_daten_stammd_abwassanlage_geomet_geomet_polygo_polygon p
WHERE pk.parent_ogr_pkid::text = p.ogr_pkid::text
AND (p.polygonart = ANY (ARRAY[1, 2])) -- V105: 1=innerer Polygonring (geschlossen), 2=äußerer Polyring eines Objektes (geschlossen)
GROUP BY pk.parent_ogr_pkid;
SELECT kk.parent_ogr_pkid,
st_setsrid(st_makeline(st_makepoint(kk.start_rechtswert, kk.start_hochwert),
st_makepoint(kk.ende_rechtswert, kk.ende_hochwert)), 25832)::geometry(LineString,25832) AS l_geom_2d
FROM isybau.identi_datenk_stammd_abwassanlage_geomet_geomet_kanten_kante kk
SELECT (SELECT p_1.parent_ogr_pkid
FROM isybau.ident_daten_stammd_abwassanlage_geomet_geomet_polygo_polygon p_1
WHERE pk.parent_ogr_pkid::text = p_1.ogr_pkid::text) AS parent_ogr_pkid,
st_setsrid(st_makeline(st_makeline(st_makepoint(pk.start_rechtswert, pk.start_hochwert),
st_makepoint(pk.ende_rechtswert, pk.ende_hochwert))), 25832)::geometry(LineString,25832) AS l_geom_2d
FROM isybau.ident_daten_stamm_abwasanlag_geome_geome_polygo_polygo_kante pk,
isybau.ident_daten_stammd_abwassanlage_geomet_geomet_polygo_polygon p
WHERE pk.parent_ogr_pkid::text = p.ogr_pkid::text
AND p.polygonart = 3 -- V105: 3=Polylinie eines Objektes (offen)
GROUP BY pk.parent_ogr_pkid;