Skip to content

Geometriebildung

Thomas Schüttenberg edited this page Dec 11, 2017 · 8 revisions
  • Nach dem Import der ISYBAU XML-Datei besteht der Datenbankinhalt ausschließlich aus geometrielosen Tabellen.
  • Die Geomerie der Abwassertechnischen Anlagen muss anschließend mittels SQL aus Koordinaten gebildet werden.
    • das Bezugssystem der Koordinaten wird im Feld geometrie_crslage am Ende der Tabelle identifikati_datenkollekti_stammdatenkol_abwassertechnanlage dokumentiert.
    • Jedoch nicht als EPSG-Code, sondern gemäß der CRS-Liste der ADV (GeoInfoDok 6.0.1)
      z.B. DE_DHDN_3GK2= DHDN, Gauß-Krüger-3-Grad-Streifen, 2. Streifen; ETRS89_UTM32= ETRS89, UTM; zone 32
  • Die Geometriebildungen sind in geometriebildung_25832.sql bzw. geometriebildung_4647.sql zusammengefasst.
    • Die ISYBAU Beispieldaten besitzen UTM Koordinaten mit Zone EPSG:4647!
    • Da bei einem Import mit -overwrite auch alle Views gelöscht werden, könnte man sie in eigenes Schema auslagern (z.B. "qgisybau").

KANTEN

Bildung geradliniger (Strecken-)Geometrien

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

sowie von (Poly-)Linien mit Knickpunkten, aus mehreren Abschnitten

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;
  • Kanten sind immer in der durch die Topologie festgelegte Fließrichtung zu dokumentieren.

KNOTEN

Bildung von Punktgeometrien

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

Bildung von Flächengeometrien

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_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 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 = ANY (ARRAY[1, 2])) -- V105: 1=innerer Polygonring (geschlossen), 2=äußerer Polyring eines Objektes (geschlossen)
GROUP BY pk.parent_ogr_pkid;
Clone this wiki locally