PostNAS-Sichten für Vollhistorie: Unterschied zwischen den Versionen

Aus kvwmap
Wechseln zu: Navigation, Suche
Zeile 88: Zeile 88:
 
nag.bereich, nag.gruppe as nutzungsartengruppe, na.nutzungsart, nu1.untergliederung1, nu2.untergliederung2,  
 
nag.bereich, nag.gruppe as nutzungsartengruppe, na.nutzungsart, nu1.untergliederung1, nu2.untergliederung2,  
 
nas.nutzungsartengruppe as nutzungsartengruppeschl,nas.nutzungsart as nutzungsartschl,nas.untergliederung1 as untergliederung1schl,nas.untergliederung2 as untergliederung2schl,
 
nas.nutzungsartengruppe as nutzungsartengruppeschl,nas.nutzungsart as nutzungsartschl,nas.untergliederung1 as untergliederung1schl,nas.untergliederung2 as untergliederung2schl,
n.wkb_geometry  
+
n.wkb_geometry as the_geom
 
FROM alkis.n_nutzung n  
 
FROM alkis.n_nutzung n  
 
LEFT JOIN alkis.n_nutzungsartenschluessel nas on n.nutzungsartengruppe = nas.nutzungsartengruppe and n.werteart1 = nas.werteart1 and n.werteart2 = nas.werteart2  
 
LEFT JOIN alkis.n_nutzungsartenschluessel nas on n.nutzungsartengruppe = nas.nutzungsartengruppe and n.werteart1 = nas.werteart1 and n.werteart2 = nas.werteart2  

Version vom 5. Oktober 2015, 10:51 Uhr

-- Auf dieser Seite werden alle Sichten gesammelt, die auf Vollhistorie angepasst sind. Jede Sicht muss die Spalten beginnt und endet abfragen und darf in der WHERE-Bedingung nicht auf diese Spalten einschränken.

-- Die Seite ist so gedacht, dass man den kompletten Text als SQL in der PostgreSQL-DB ausführen kann, deswegen muss allem, was kein SQL ist, ein "--" vorangestellt werden.


-- Sicht zur Darstellung der Aufnahmepunkte:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW alkis.lk_ap AS 
 SELECT o.oid, o.gml_id, o.beginnt, o.endet, o.punktkennung, o.sonstigeeigenschaft, o.vermarkung_marke, l.verm_bedeutung, p.genauigkeitsstufe, m.bedeutung AS punktgenauigkeit, p.vertrauenswuerdigkeit, n.bedeutung, n.bemerkung, p.wkb_geometry, rtrim(ltrim(st_astext(p.wkb_geometry), 'POINT('::text), ')'::text) AS koord
   FROM alkis.ax_aufnahmepunkt o
   LEFT JOIN alkis.ax_punktortau p ON o.gml_id::text = p.istteilvon::text
   LEFT JOIN alkis.lk_ax_marke l ON l.verm_attribut = o.vermarkung_marke
   LEFT JOIN alkis.lk_ax_genauigkeitsstufe_punktort m ON m.attributinhalt = p.genauigkeitsstufe
   LEFT JOIN alkis.lk_ax_vertrauenswuerdigkeit_punktort n ON n.attributinhalt = p.vertrauenswuerdigkeit;

-- Sicht zur Darstellung besonderer Gebäude:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW alkis.lk_bes_gebaeude AS 
 SELECT o.oid, o.ogc_fid, o.gml_id, o.beginnt, o.endet, o.bauwerksfunktion, p.bezeichner, o.wkb_geometry
   FROM alkis.ax_sonstigesbauwerkodersonstigeeinrichtung o
   LEFT JOIN alkis.ax_sonstigesbauwerkodersonstigeeinrichtung_bauwerksfunktion p ON p.wert = o.bauwerksfunktion;

-- Sicht zur Darstellung der Gebäude:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW alkis.lk_gebaeude AS 
 SELECT o.oid, o.ogc_fid, o.gml_id, o.beginnt, o.endet, o.gebaeudefunktion, p.bezeichner, w.wert AS weiterefunktion, o.name, o.zustand, z.bezeichner AS gebaeudezustand, o.objekthoehe, o.lagezurerdoberflaeche, o.dachform, d.bezeichner AS dach_bezeichner, o.hochhaus, o.ax_datenerhebung, da.bezeichner AS herkunft, o.wkb_geometry
   FROM alkis.ax_gebaeude o
   LEFT JOIN alkis.ax_gebaeude_funktion p ON p.wert = o.gebaeudefunktion
   LEFT JOIN alkis.ax_gebaeude_dachform d ON d.wert = o.dachform
   LEFT JOIN alkis.ax_gebaeude_zustand z ON z.wert = o.zustand
   LEFT JOIN alkis.ax_gebaeude_weiterefunktion w ON w.wert = ANY (o.weiteregebaeudefunktion)
   LEFT JOIN alkis.ax_datenerhebung da ON da.wert = o.ax_datenerhebung;

-- Sicht zur Darstellung der Gebäudepunkte:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW alkis.lk_gebaeudepunkte AS 
 SELECT DISTINCT o.oid, p.gml_id, o.beginnt, o.endet, o.punktkennung, m.attributinhalt, m.bedeutung AS punktgenauigkeit, p.vertrauenswuerdigkeit, n.bedeutung, n.bemerkung, p.wkb_geometry, rtrim(ltrim(st_astext(p.wkb_geometry), 'POINT('::text), ')'::text) AS koord
   FROM alkis.ax_besonderergebaeudepunkt o
   LEFT JOIN alkis.ax_punktortag p ON o.gml_id::text = p.istteilvon::text
   LEFT JOIN alkis.lk_ax_genauigkeitsstufe_punktort m ON m.attributinhalt = p.genauigkeitsstufe
   LEFT JOIN alkis.lk_ax_vertrauenswuerdigkeit_punktort n ON n.attributinhalt = p.vertrauenswuerdigkeit;

-- Sicht zur Darstellung der Grenzpunkte:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW alkis.lk_grenzpunkte AS 
 SELECT o.oid, o.gml_id, o.beginnt, o.endet, o.punktkennung, o.sonstigeeigenschaft, o.abmarkung_marke, o.festgestelltergrenzpunkt, l.verm_bedeutung, p.ax_datenerhebung_punktort, e.bezeichner, e.bezeichner2, p.wkb_geometry, o.bemerkungzurabmarkung, d.bem_bedeutung, p.genauigkeitsstufe, m.bedeutung AS punktgenauigkeit, p.vertrauenswuerdigkeit, n.bedeutung AS punktvertrauenswuerdigkeit, st_astext(p.wkb_geometry) AS koord
   FROM alkis.ax_grenzpunkt o
   LEFT JOIN alkis.ax_punktortta p ON p.istteilvon::text = o.gml_id::text
   LEFT JOIN alkis.lk_ax_marke l ON l.verm_attribut = o.abmarkung_marke
   LEFT JOIN alkis.lk_ax_genauigkeitsstufe_punktort m ON m.attributinhalt = p.genauigkeitsstufe
   LEFT JOIN alkis.lk_ax_vertrauenswuerdigkeit_punktort n ON n.attributinhalt = p.vertrauenswuerdigkeit
   LEFT JOIN alkis.lk_bemerkungzurabmarkung d ON o.bemerkungzurabmarkung = d.bem_attribut
   LEFT JOIN alkis.ax_datenerhebung e ON p.ax_datenerhebung_punktort = e.wert;

-- Sicht zur Darstellung der Hausnummern:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW alkis.s_hausnummer_gebaeude AS 
 SELECT p.ogc_fid, p.beginnt, p.endet, l.hausnummer, p.drehwinkel * 57.296::double precision AS drehwinkel, p.wkb_geometry
   FROM alkis.ap_pto p
   JOIN alkis.ax_lagebezeichnungmithausnummer l (ON l.gml_id::text = ANY (p.dientzurdarstellungvon) AND l.endet IS NULL)
  WHERE p.art = 'HNR';

-- Sicht zur Darstellung der Nutzungsarten:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW alkis.lk_nutzungen AS 
SELECT n.oid, n.gml_id, n.beginnt, n.endet, n.werteart1, n.werteart2, n.info, n.zustand, n.name, n.bezeichnung, 
nas.nutzungsartengruppe::text||nas.nutzungsart::text||nas.untergliederung1::text||nas.untergliederung2::text as nutzungsartschluessel,
nag.bereich, nag.gruppe as nutzungsartengruppe, na.nutzungsart, nu1.untergliederung1, nu2.untergliederung2, 
nas.nutzungsartengruppe as nutzungsartengruppeschl,nas.nutzungsart as nutzungsartschl,nas.untergliederung1 as untergliederung1schl,nas.untergliederung2 as untergliederung2schl,
n.wkb_geometry as the_geom
FROM alkis.n_nutzung n 
LEFT JOIN alkis.n_nutzungsartenschluessel nas on n.nutzungsartengruppe = nas.nutzungsartengruppe and n.werteart1 = nas.werteart1 and n.werteart2 = nas.werteart2 
LEFT JOIN alkis.n_nutzungsartengruppe nag on nas.nutzungsartengruppe = nag.schluessel 
LEFT JOIN alkis.n_nutzungsart na on nas.nutzungsartengruppe = na.nutzungsartengruppe and nas.nutzungsart = na.schluessel 
LEFT JOIN alkis.n_untergliederung1 nu1 on nas.nutzungsartengruppe = nu1.nutzungsartengruppe and nas.nutzungsart = nu1.nutzungsart and nas.untergliederung1 = nu1.schluessel
LEFT JOIN alkis.n_untergliederung2 nu2 on nas.nutzungsartengruppe = nu2.nutzungsartengruppe and nas.nutzungsart = nu2.nutzungsart and nas.untergliederung1 = nu2.untergliederung1 and nas.untergliederung2 = nu2.schluessel;

-- Sicht zum Füllen der Tabelle pp_zourdungspfeilspitze_flurstueck:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW alkis.s_zuordungspfeilspitze_flurstueck AS 
SELECT l.ogc_fid,st_azimuth(st_pointn(l.wkb_geometry, 1), st_pointn(l.wkb_geometry, 2)) * (- 180::double precision) / pi() + 90::double precision AS winkel, l.beginnt,l.endet, f.abweichenderrechtszustand,st_startpoint(l.wkb_geometry) AS wkb_geometry
   FROM alkis.ap_lpo l
   JOIN alkis.ax_flurstueck f ON f.gml_id::text = ANY (l.dientzurdarstellungvon::text[])
  WHERE l.art::text = 'Pfeil'::text AND ('DKKM1000'::text ~~ ANY (l.advstandardmodell::text[]));

-- Sicht zur Darstellung der sonstigen Vermessungspunkte:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW alkis.lk_so_punkte AS 
 SELECT o.oid,o.beginnt,o.endet, o.punktkennung, o.sonstigeeigenschaft, o.vermarkung_marke, l.verm_bedeutung, p.genauigkeitsstufe, m.bedeutung AS punktgenauigkeit, p.vertrauenswuerdigkeit, n.bedeutung, n.bemerkung, p.wkb_geometry, st_astext(p.wkb_geometry) AS koord
   FROM alkis.ax_sonstigervermessungspunkt o
   LEFT JOIN alkis.ax_punktortau p ON p.istteilvon::text = o.gml_id::text
   LEFT JOIN alkis.lk_ax_marke l ON l.verm_attribut = o.vermarkung_marke
   LEFT JOIN alkis.lk_ax_genauigkeitsstufe_punktort m ON m.attributinhalt = p.genauigkeitsstufe
   LEFT JOIN alkis.lk_ax_vertrauenswuerdigkeit_punktort n ON n.attributinhalt = p.vertrauenswuerdigkeit;

-- Sicht zur Darstellung der Zugehörigkeitshaken:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW alkis.s_zugehoerigkeitshaken_flurstueck AS 
 SELECT p.ogc_fid, p.beginnt, p.endet, p.wkb_geometry, p.drehwinkel * 57.296::double precision AS drehwinkel, f.flurstueckskennzeichen, f.abweichenderrechtszustand
   FROM alkis.ap_ppo p
   JOIN alkis.ax_flurstueck f ON f.gml_id::text = ANY (p.dientzurdarstellungvon::text[])
  WHERE p.art::text = 'Haken'::text;

-- Sicht zur Darstellung der Zuorordnungspfeile:

SET search_path = alkis, public;
CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck AS 
 SELECT l.ogc_fid,l.beginnt,l.endet, f.abweichenderrechtszustand, l.wkb_geometry
   FROM ap_lpo l
   JOIN ax_flurstueck f ON f.gml_id = any(l.dientzurdarstellungvon)
  WHERE l.art::text = 'Pfeil'
  AND ('DKKM1000' ~~ ANY (l.advstandardmodell));