Changeset 326 for Version-0.8
- Timestamp:
- 08/28/14 16:45:07 (9 years ago)
- Location:
- Version-0.8/import
- Files:
-
- 1 deleted
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
Version-0.8/import/alkis-functions.sql
r324 r326 180 180 EXECUTE sql; 181 181 182 -- CREATE UNIQUE INDEX vobjekte_gmlid ON vobjekte(gml_id,beginnt);183 -- CREATE INDEX vobjekte_table ON vobjekte(table_name);184 185 182 CREATE VIEW vbeziehungen AS 186 183 SELECT beziehung_von,(SELECT table_name FROM vobjekte WHERE gml_id=beziehung_von) AS typ_von … … 188 185 ,beziehung_zu,(SELECT table_name FROM vobjekte WHERE gml_id=beziehung_zu) AS typ_zu 189 186 FROM alkis_beziehungen; 190 191 -- CREATE INDEX vbeziehungen_von ON vbeziehungen(beziehung_von);192 -- CREATE INDEX vbeziehungen_vontyp ON vbeziehungen(typ_von);193 -- CREATE INDEX vbeziehungen_art ON vbeziehungen(beziehungsart);194 -- CREATE INDEX vbeziehungen_zu ON vbeziehungen(beziehung_zu);195 -- CREATE INDEX vbeziehungen_zutyp ON vbeziehungen(typ_zu);196 187 197 188 RETURN 'ALKIS-Views erzeugt.'; … … 384 375 -- Geaendert 2014-02-03 auf Vorschlag M.B. Krs. Unna 385 376 386 /*387 388 -- Diese Version arbeitet nur korrekt, wenn die Spalte gml_id im Format "character(16)" angelegt ist.389 390 CREATE OR REPLACE FUNCTION delete_feature_kill() RETURNS TRIGGER AS $$391 DECLARE392 query TEXT;393 begsql TEXT;394 aktbeg TEXT;395 gml_id TEXT;396 query_bez TEXT;397 BEGIN398 NEW.typename := lower(NEW.typename);399 NEW.context := lower(NEW.context);400 gml_id := substr(NEW.featureid, 1, 16);401 402 IF NEW.context IS NULL THEN403 NEW.context := 'delete';404 END IF;405 406 IF NEW.context='delete' THEN -- Ersatzloses Loeschen des Objektes407 -- In der Objekt-Tabelle408 EXECUTE 'DELETE FROM ' || NEW.typename || ' WHERE gml_id = ''' || gml_id || '''';409 -- Beziehungen von und zu dem Objekt sind hinfaellig410 EXECUTE 'DELETE FROM alkis_beziehungen WHERE beziehung_von = ''' || gml_id || ''' OR beziehung_zu = ''' || gml_id || '''';411 --RAISE NOTICE 'Lösche gml_id % in % und Beziehungen', gml_id, NEW.typename;412 413 ELSE -- Ersetzen eines Objektes (Replace). In der Objekt-Tabelle sind jetzt bereits 2 Objekte vorhanden (alt und neu).414 -- beginnt-Wert des aktuellen Objektes ermitteln415 begsql := 'SELECT max(beginnt) FROM ' || NEW.typename || ' WHERE gml_id = ''' || substr(NEW.replacedBy, 1, 16) || ''' AND endet IS NULL';416 EXECUTE begsql INTO aktbeg;417 -- Alte Objekte entfernen418 EXECUTE 'DELETE FROM ' || NEW.typename || ' WHERE gml_id = ''' || gml_id || ''' AND beginnt < ''' || aktbeg || '''';419 -- Beziehungen vom alten Objekt entfernen, die aus frueheren Importen stammen420 EXECUTE 'DELETE FROM alkis_beziehungen WHERE beziehung_von = ''' || gml_id || ''' AND import_id < (SELECT max(id) FROM import)';421 END IF;422 423 NEW.ignored := false;424 RETURN NEW;425 END;426 $$ LANGUAGE plpgsql;427 428 */429 430 377 -- 2014-08-27: Anpassung an vereinheitlichtes Datenbank-Schema. 431 378 -- Wenn die Spalte gml_id im Format "character varying" (ohne LÀngenbegrenzung) angelegt wird, -
Version-0.8/import/alkis_PostNAS_schema_ohneHist.sql
r324 r326 4 4 -- ***************************** 5 5 -- 6 -- Datenbankstruktur PostNAS 0. 76 -- Datenbankstruktur PostNAS 0.8 7 7 -- 8 8 … … 14 14 -- Dies setzt voraus, dass als Trigger-Function die Version "kill" eingerichtet wurde. 15 15 16 -- 2014-08-28 FJ: Version 0.8 - zunÀchst ÃŒbernommen, aber ... 17 -- Mittelfristig ÃŒberlegen, ob "delete_feature_hist" ohne "identifier" auskommt. 18 -- Der gleiche SchlÃŒssel steht auch in "gml_id". Dann gnz aus dem Schema entfernen. 16 19 17 20 -- Die Spalte identifier aus allen Tabellen entfernen. 18 21 -- Dies erledigt eine Function aus "alkis-functions.sql". 19 -- Diese Spalte wird (ausschlieÃlich?) vom Trigger fÃŒr Historie verwendet. 22 -- Diese Spalte wird (ausschlieÃlich) vom Trigger fÃŒr Historie verwendet. 23 20 24 SELECT alkis_drop_all_identifier(); 21 25 22 26 23 -- Diese Function kann nun nicht mehr ausgefÃŒhrt werden. 27 -- Die Function "delete_feature_hist" kann nun nicht mehr ausgefÃŒhrt werden. 28 24 29 DROP FUNCTION delete_feature_hist(); 25 30 26 31 -- 27 -- 32 -- THE (happy) END 28 33 -- -
Version-0.8/import/datenbank_anlegen.sh
r324 r326 6 6 ## 7 7 ## Stand: 8 ## 2012-02-10 PostNAS 07, Umbenennung9 ## 2013-01-15 Zwischenstopp um Meldungen lesen zu können bevor, sie aus dem Scrollbereich verschwinden10 ## 2013-04-16 Vers.-Nr. "0.7" aus dem Dateinamen von Schema und Keytable entfernt, sichten_wms.sql8 ## 2012-02-10 F.J. krz: PostNAS 07, Umbenennung 9 ## 2013-01-15 F.J. krz: Zwischenstopp um Meldungen lesen zu können bevor, sie aus dem Scrollbereich verschwinden 10 ## 2013-04-16 F.J. krz: Vers.-Nr. "0.7" aus dem Dateinamen von Schema und Keytable entfernt, sichten_wms.sql 11 11 ## 2013-10-16 F.J. krz: Neues Sript "pp_praesentation_sichten.sql" fÃŒr Reparatur PrÀsentationsobjekte StraÃennamen 12 12 ## 2013-12-03 F.J. krz: Script "sichten.sql" einbeziehen. Darin View "doppelverbindung" fuer WMS FS-Kommunal. 13 13 ## 2014-01-31 F.J. krz: Unterschiede der Datenbank-Struktur fÃŒr die Varianten MIT/OHNE Historie. 14 ## 2014-08-2 6 F.J. krz:Feinheiten, Kommentare14 ## 2014-08-28 F.J. krz: PostNAS 08 - Umbenennung, Feinheiten, Kommentare 15 15 16 16 POSTNAS_HOME=$(dirname $0) … … 48 48 done 49 49 } 50 # 50 51 51 ## aller Laster ANFANG 52 52 get_db_config; … … 88 88 89 89 echo " 90 ** Anlegen der Datenbank-Struktur fuer PostNAS (alkis_PostNAS_0.7_schema.sql)"90 ** Anlegen der Datenbank-Struktur fuer PostNAS 0.8 (alkis_PostNAS_schema.sql)" 91 91 psql $con -v alkis_epsg=$EPSG -U ${DBUSER} -f alkis_PostNAS_schema.sql >$MANDANT_HOME/log/schema.log 92 92 … … 105 105 106 106 ## Kommentar zur Datenbank (allgemein) 107 psql $con -U ${DBUSER} -c "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0. 7';"107 psql $con -U ${DBUSER} -c "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.8';" 108 108 109 109 ## Kann man das Ziel des Symlinks abfragen? Wenn Kill, dann ... … … 115 115 ## Import-ID: Tabelle und Spalte in "alkis_beziehungen" anlegen 116 116 117 #psql $con -U ${DBUSER} -f alkis_PostNAS_schema_ohneHist.sql >$MANDANT_HOME/log/schema.log118 # psql $con -U ${DBUSER} -c "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.7- Ohne Historie';"117 psql $con -U ${DBUSER} -f alkis_PostNAS_schema_ohneHist.sql >$MANDANT_HOME/log/schema.log 118 psql $con -U ${DBUSER} -c "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.8 - Ohne Historie';" 119 119 120 120 ## fi -
Version-0.8/import/konv_batch.sh
r318 r326 27 27 ## 2012-10-30 Umgebungsvariable setzen, delete-Tabelle am Ende fuer Analyse gefuellt lassen. 28 28 ## Test als 0.7a mit gepatchter gdal-Version (noch 2.0dev) 29 ## 2013-10-16 F.J. krz: Neues Script "pp_praesentation_action.sql" f ür Reparatur der30 ## Pr äsentationsobjekte Straßenname im Post-Processing31 ## 2013-10-24 F.J. krz: Zwischenl ösung "praesentation_action.sql" wieder deaktiviert.29 ## 2013-10-16 F.J. krz: Neues Script "pp_praesentation_action.sql" fÃŒr Reparatur der 30 ## PrÀsentationsobjekte StraÃenname im Post-Processing 31 ## 2013-10-24 F.J. krz: Zwischenlösung "praesentation_action.sql" wieder deaktiviert. 32 32 ## 2014-01-31 F.J. krz: Import Eintrag erzeugen (nach Vorschlag Marvin Brandt, Unna) 33 33 ## 2014-02-13 A.Emde WhereGroup: EinfÃŒhrung DBUSER, damit im Skript der Datenbankbenutzer angegeben werden kann 34 ## 34 ## 2014-05-12 F.J. krz: Unterschiedliche Pfade in Test (TRUNK) und Produktion (Rel. 1.11.0) 35 ## 2014-06-18 F.J. DB-User nicht "postgres" (in $con). 36 ## Konverter ind Nacharbeiten sonst mit unterschiedlichem User. 37 ## Abgleich Test/Prod-Version. 38 ## Entfernen der historischen Objekte nach Konvertierung. 39 ## 2014-08-28 F.J. krz: Parameter "--config PG_USE_COPY YES" zur Beschleunigung 40 35 41 ## ToDo: Option "-skipfailures" nach Test entfernen ? 36 ## 42 37 43 ## Koordinaten: EPSG:25832 UTM, Zone 32 38 44 ## -a_srs EPSG:25832 - bleibt im UTM-System (korrigierte Werte) … … 42 48 43 49 # Konverterpfad 44 PATH=/opt/gdal-2.0/bin:$PATH 50 51 # TRUNK-Version (immer letzter Stand der Entwicklung) 52 PATH=/opt/gdal-2.0/bin:$PATH 53 54 # Release GDAL 1.11.0 vom April 2014 55 # PATH=/opt/gdal-1.11/bin:$PATH 56 45 57 EPSG=25832 46 DBUSER=postgres 58 59 #DBUSER=postgres 60 DBUSER=b600352 47 61 48 62 if [ $DBUSER == "" ] … … 59 73 OGRPGUSER=" user=${DBUSER}" 60 74 fi 61 62 echo "********************************************** ****"63 echo "** K o n v e r t i e r u n g PostNAS 0.7a**"64 echo "********************************************** ****"75 76 echo "**********************************************" 77 echo "** K o n v e r t i e r u n g PostNAS **" 78 echo "**********************************************" 65 79 ## Parameter: 66 80 ORDNER=$1 … … 104 118 fi 105 119 fi 120 121 # 106 122 # Fehlerprotokoll: 123 # 107 124 errprot=${POSTNAS_HOME}'/log/postnas_err_'$DBNAME'.prot' 108 # 125 126 echo "GDAL/PostNAS Konverter-Version:" >> $errprot 127 ogr2ogr --version >> $errprot 128 109 129 # DB-Connection 110 130 con="${PGUSER} -p 5432 -d ${DBNAME} " … … 118 138 echo "POSTNAS_HOME ${POSTNAS_HOME}" 119 139 echo " " 120 # noch alte delete-Eintraege in DB? 140 141 # noch alte delete-Eintraege in DB? 121 142 echo "Leeren der delete-Tabelle" 122 143 echo 'TRUNCATE table "delete";' | psql $con … … 125 146 # Import Eintrag erzeugen 126 147 # 127 # Die dadurch erzeugte Import-ID dient zur Steuerung des L öschens alter Relationen im Trigger.148 # Die dadurch erzeugte Import-ID dient zur Steuerung des Löschens alter Relationen im Trigger. 128 149 # Wird die Datenbank MIT Historie geladen, muss die folgende Zeile auskommentiert werden. 129 150 echo "INSERT INTO import (datum,verzeichnis,importart) VALUES ('"$(date '+%Y-%m-%d %H:%M:%S')"','"${ORDNER}"','"${verarb}"');" | psql $con … … 166 187 echo " " 167 188 echo "** Ende Konvertierung Ordner ${ORDNER}" 189 168 190 # 169 191 # Post-Processing / Nacharbeiten … … 174 196 # Dies kann sinnvoll sein, wenn mehrere kleine Aktualisierungen hintereinander auf einem grossen Bestand laufen 175 197 # Der Aufwand fuer das Post-Processing ist dann nur bei der LETZTEN Aktualisierung notwendig. 198 176 199 else 200 177 201 echo "** Post-Processing (Nacharbeiten zur Konvertierung)" 178 202 179 203 echo "** - Optimierte Nutzungsarten neu Laden:" 180 204 (cd $POSTNAS_HOME; psql $con -f nutzungsart_laden.sql) 205 181 206 echo "-----------" 182 183 echo "** - Fluren / Gemarkungen / Gemeinden neu Laden:"207 208 echo "** - Fluren, Gemarkungen, Gemeinden und StraÃen-Namen neu Laden:" 184 209 (cd $POSTNAS_HOME; psql $con -f pp_laden.sql) 185 210 186 187 # echo "** - Präsentationsobjekte generieren:" 211 # echo "** - PrÀsentationsobjekte generieren:" 188 212 # (cd $POSTNAS_HOME; psql $con -f pp_praesentation_action.sql) 189 213 190 214 fi 191 # 215 192 216 if [ "$(readlink $POSTNAS_HOME/alkis-trigger.sql)" = "alkis-trigger-kill.sql" ]; then 193 # Durch Einfuegen in Tabelle 'delete' werden Loeschungen anderer Tabellen getriggert 194 echo "** delete-Tabelle enthaelt:"195 echo 'SELECT COUNT(featureid) AS delete_zeilen FROM "delete";' | psql $con196 #echo " delete-Tabelle loeschen:"197 #echo 'TRUNCATE table "delete";' | psql $con 198 # Fuer Analyse-Zwecke sollten die Delete-Eintraege erhalten bleiben bis zum naechsten Lauf.199 # TRUNCATE erfolgt VOR der Konnvertierung.200 # 201 # Wenn die Datenbank MIT Historie angelegtwurde, man diese aber gar nicht braucht,202 # dann hinterher aufraeumen der historischen Objekte203 #echo "** geendete Objekte entfernen:"204 # Function: 205 # echo 'SELECT alkis_delete_all_endet();' | psql $con206 #echo " ... geendete Objekte entfernen wurde fuer Test dektiviert."207 #echo " Bitte manuell ausfuehren: SELECT alkis_delete_all_endet(); " 217 218 # Durch Einfuegen in Tabelle 'delete' werden Loeschungen anderer Tabellen getriggert 219 echo "** delete-Tabelle enthaelt:" 220 psql $con -c 'SELECT COUNT(featureid) AS delete_zeilen FROM "delete";' 221 222 echo " delete-Tabelle loeschen:" 223 psql $con -c 'TRUNCATE table "delete";' 224 225 # Wenn die Datenbank MIT Historie geladen wurde, man diese aber gar nicht braucht, 226 # dann hinterher aufraeumen der historischen Objekte 227 echo "** geendete Objekte entfernen:" 228 229 # Function: 230 psql $con -c "SELECT alkis_delete_all_endet();" 231 208 232 fi 233 209 234 echo "Das Fehler-Protokoll wurde ausgegeben in die Datei $errprot" 210 235 #echo "HINWEIS: -skipfailures fuer Produktion wieder einschalten." 236 -
Version-0.8/import/sichten.sql
r324 r326 30 30 -- 2014-01-31 Kommentar 31 31 -- 2014-02-06 nachmigration_aehnliche_anschriften 32 -- 2014-08-2 7Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen.32 -- 2014-08-28 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen. 33 33 -- Relationen nun direkt ÃŒber neue Spalten in den Objekttabellen. 34 35 -- IN ARBEIT +++ erst teilweise umgestellt 34 36 35 37 … … 50 52 51 53 -- DROP VIEW public.doppelverbindung; 52 /* 53 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 54 CREATE OR REPLACE VIEW public.doppelverbindung 55 AS 56 SELECT v1.beziehung_von AS fsgml, -- gml_id auf FlurstÃŒck - Seite 57 v1.beziehung_zu AS bsgml, -- gml_id auf Buchungs - Seite 58 --'direkt' AS fall, 59 0 AS ba_dien 60 FROM alkis_beziehungen v1 61 WHERE v1.beziehungsart = 'istGebucht' -- FS --> Buchung 62 UNION 63 -- Buchungstelle >an> Buchungstelle >istBestandteilVon> BLATT 64 SELECT v2.beziehung_von AS fsgml, -- gml_id auf FlurstÃŒck - Seite 65 an.beziehung_von AS bsgml, -- gml_id auf Buchungs - Seite (herrschendes GB) 66 --'Recht an' AS fall, 67 dien.buchungsart AS ba_dien -- Ein Feld aus der Zwischen-Buchung zur Fall-Unterscheidung 68 FROM alkis_beziehungen v2 69 JOIN ax_buchungsstelle dien 70 ON v2.beziehung_zu = dien.gml_id 71 JOIN alkis_beziehungen an 72 ON dien.gml_id = an.beziehung_zu 73 WHERE v2.beziehungsart = 'istGebucht' -- FS --> Buchung 74 AND an.beziehungsart = 'an'; 75 */ 76 77 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 54 78 55 CREATE OR REPLACE VIEW public.doppelverbindung 79 56 AS … … 101 78 102 79 103 104 80 -- Ein View, der die Verbindung von FlurstÃŒck zur StraÃentabelle fÃŒr zwei verschiedene FÀlle herstellt. 105 81 -- Einmal ÃŒber die Lagebezeichnung MIT Hausnummer und einmal OHNE. … … 107 83 108 84 -- DROP VIEW public.flst_an_strasse; 109 /* 110 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 111 112 CREATE OR REPLACE VIEW public.flst_an_strasse 113 AS 114 SELECT vm.beziehung_von AS fsgml, -- Join auf "gml_id" aus "ax_flurstÃŒck" 115 sm.gml_id AS stgml, -- Filter: gml_id der StraÃe 116 -- sm.gemeinde, sm.lage, -- Gemeinde- und StraÃenschluessel als Filter? 117 'm' AS fall -- SÀtze unterschieden: Mit HsNr 118 FROM alkis_beziehungen vm -- Verbindung Mit 119 JOIN ax_lagebezeichnungmithausnummer lm -- Lage MIT 120 ON lm.gml_id=vm.beziehung_zu 121 AND vm.beziehungsart= 'weistAuf' 122 JOIN ax_lagebezeichnungkatalogeintrag sm -- Ausnahmsweise mal direkt und nicht ÃŒber die "alkis_beziehungen" 123 ON lm.land=sm.land 124 AND lm.regierungsbezirk=sm.regierungsbezirk 125 AND lm.kreis=sm.kreis 126 AND lm.gemeinde=sm.gemeinde 127 AND lm.lage=sm.lage 128 UNION 129 SELECT vo.beziehung_von AS fsgml, -- Join auf gml_id aus ax_flurstÃŒck 130 so.gml_id AS stgml, -- Filter: gml_id der StraÃe 131 -- so.gemeinde, so.lage -- Gemeinde- und StraÃenschluessel als Filter? 132 'o' AS fall -- SÀtze unterschieden: Ohne HsNr 133 FROM alkis_beziehungen vo -- Verbindung OHNE 134 JOIN ax_lagebezeichnungohnehausnummer lo -- Lage OHNE 135 ON lo.gml_id=vo.beziehung_zu 136 AND vo.beziehungsart= 'zeigtAuf' 137 JOIN ax_lagebezeichnungkatalogeintrag so -- StraÃe OHNE 138 ON lo.land=so.land 139 AND lo.regierungsbezirk=so.regierungsbezirk 140 AND lo.kreis=so.kreis 141 AND lo.gemeinde=so.gemeinde 142 AND lo.lage=so.lage; 143 144 */ 145 146 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 85 147 86 CREATE OR REPLACE VIEW public.flst_an_strasse 148 87 AS … … 200 139 /* 201 140 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 202 203 +++ HIER HIN KOPPIEREN ++++204 205 */206 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":207 -- +++ ToDo208 209 210 141 CREATE OR REPLACE VIEW exp_csv 211 142 AS … … 311 242 nn.laufendenummernachdin1421; 312 243 244 */ 245 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 246 -- +++ ToDo 247 248 249 CREATE OR REPLACE VIEW exp_csv 250 AS 251 SELECT 252 -- FlurstÃŒck 253 f.gml_id AS fsgml, -- möglicher Filter FlurstÃŒcks-GML-ID 254 f.flurstueckskennzeichen AS fs_kennz, 255 f.gemarkungsnummer, -- Teile des FS-Kennz. noch mal einzeln 256 f.flurnummer, f.zaehler, f.nenner, 257 f.amtlicheflaeche AS fs_flae, 258 g.bezeichnung AS gemarkung, 259 260 -- Grundbuch 261 gb.gml_id AS gbgml, -- möglicher Filter Grundbuch-GML-ID 262 gb.bezirk AS gb_bezirk, 263 gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 264 z.bezeichnung AS beznam, -- GB-Bezirks-Name 265 266 -- Buchungsstelle (GrundstÃŒck) 267 s.laufendenummer AS bu_lfd, -- BVNR 268 --s.zaehler, s.nenner, -- Anteil des GB am FS, einzelne Felder 269 '=' || s.zaehler || '/' || s.nenner AS bu_ant, -- als Excel-Formel (nur bei Wohnungsgrundbuch JOIN ÃŒber 'Recht an') 270 s.buchungsart, -- verschlÃŒsselt 271 b.bezeichner AS bu_art, -- Buchungsart entschlÃŒsselt 272 273 -- NamensNummer (Normalfall mit Person) 274 nn.laufendenummernachdin1421 AS nam_lfd, 275 '=' || nn.zaehler|| '/' || nn.nenner AS nam_ant, -- als Excel-Formel 276 277 -- Rechtsgemeinsachaft (Sonderfall von Namensnummer, ohne Person, ohne Nummer) 278 rg.artderrechtsgemeinschaft AS nam_adr, 279 rg.beschriebderrechtsgemeinschaft AS nam_bes, 280 281 -- Person 282 p.gml_id AS psgml, -- möglicher Filter Personen-GML-ID 283 p.anrede, 284 p.vorname, 285 p.namensbestandteil, 286 p.nachnameoderfirma, -- Familienname 287 p.geburtsdatum, 288 --p.geburtsname, p.akademischergrad 289 290 -- Adresse der Person 291 a.postleitzahlpostzustellung AS plz, 292 a.ort_post AS ort, -- Anschreifenzeile 1: PLZ+Ort 293 a.strasse, a.hausnummer, -- Anschriftenzeile 2: StraÃe+HsNr 294 a.bestimmungsland AS land 295 296 FROM ax_flurstueck f -- FlurstÃŒck 297 JOIN doppelverbindung d -- beide FÀlle ÃŒber Union-View: direkt und ÃŒber Recht von Buchung an Buchung 298 ON d.fsgml = f.gml_id 299 JOIN ax_gemarkung g -- entschlÃŒsseln 300 ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 301 JOIN ax_buchungsstelle s -- Buchungs-Stelle 302 ON d.bsgml = s.gml_id 303 JOIN ax_buchungsstelle_buchungsart b -- EnstschlÃŒsselung der Buchungsart 304 ON s.buchungsart = b.wert 305 JOIN ax_buchungsblatt gb -- Buchung >istBestandteilVon> Grundbuchblatt 306 ON gb.gml_id = s.istbestandteilvon 307 JOIN ax_buchungsblattbezirk z 308 ON gb.land=z.land AND gb.bezirk=z.bezirk 309 JOIN ax_namensnummer nn -- Blatt <istBestandteilVon< NamNum 310 ON gb.gml_id = nn.istbestandteilvon 311 JOIN ax_person p -- NamNum >benennt> Person 312 ON p.gml_id = nn.benennt 313 LEFT JOIN ax_anschrift a 314 ON a.gml_id = ANY (p.hat) 315 316 317 -- +++++ BIS HIER BEARBEITET (28.08.) - "alkis_beziehungen" entfernt - HIER Weiter !!!! 318 319 320 -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery: 321 -- Noch mal "GB -> NamNum", aber dieses Mal fÃŒr "Rechtsgemeinschaft". 322 -- Kommt max. 1 mal je GB vor und hat keine Relation auf Person. 323 LEFT JOIN 324 ( SELECT v7.beziehung_zu, 325 rg.artderrechtsgemeinschaft, 326 rg.beschriebderrechtsgemeinschaft 327 FROM ax_namensnummer rg 328 JOIN alkis_beziehungen v7 -- Blatt --> NamNum (Rechtsgemeinschaft) 329 ON v7.beziehung_von = rg.gml_id 330 WHERE v7.beziehungsart = 'istBestandteilVon' 331 AND NOT rg.artderrechtsgemeinschaft IS NULL 332 ) AS rg -- Rechtsgemeinschaft 333 ON rg.beziehung_zu = gb.gml_id -- zum GB 334 335 ORDER BY f.flurstueckskennzeichen, 336 gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer, 337 nn.laufendenummernachdin1421; 338 313 339 COMMENT ON VIEW exp_csv 314 340 IS 'View fÃŒr einen CSV-Export aus der Buchauskunft mit alkisexport.php. Generelle Struktur. FÃŒr eine bestimmte gml_id noch den Filter setzen.'; … … 326 352 /* 327 353 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 328 329 +++ HIER HIN KOPPIEREN ++++330 331 */332 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":333 -- +++ ToDo334 335 354 336 355 CREATE OR REPLACE VIEW exp_csv_str … … 443 462 nn.laufendenummernachdin1421; 444 463 464 */ 465 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 466 -- +++ ToDo 467 468 469 CREATE OR REPLACE VIEW exp_csv_str 470 AS 471 SELECT 472 l.stgml, -- Filter: StraÃen-GML-ID 473 474 -- FlurstÃŒck 475 f.gml_id AS fsgml, -- Gruppenwechsel fÃŒr "function lage_zum_fs" in alkisexport.php 476 f.flurstueckskennzeichen AS fs_kennz, 477 f.gemarkungsnummer, -- Teile des FS-Kennz. noch mal einzeln 478 f.flurnummer, f.zaehler, f.nenner, 479 f.amtlicheflaeche AS fs_flae, 480 g.bezeichnung AS gemarkung, 481 482 -- Grundbuch 483 --gb.gml_id AS gbgml, -- möglicher Filter Grundbuch-GML-ID 484 gb.bezirk AS gb_bezirk, 485 gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 486 z.bezeichnung AS beznam, -- GB-Bezirks-Name 487 488 -- Buchungsstelle (GrundstÃŒck) 489 s.laufendenummer AS bu_lfd, -- BVNR 490 --s.zaehler, s.nenner, -- Anteil des GB am FS, einzelne Felder 491 '=' || s.zaehler || '/' || s.nenner AS bu_ant, -- als Excel-Formel (nur bei Wohnungsgrundbuch JOIN ÃŒber 'Recht an') 492 s.buchungsart, -- verschlÃŒsselt 493 b.bezeichner AS bu_art, -- Buchungsart entschlÃŒsselt 494 495 -- NamensNummer (Normalfall mit Person) 496 nn.laufendenummernachdin1421 AS nam_lfd, 497 '=' || nn.zaehler|| '/' || nn.nenner AS nam_ant, -- als Excel-Formel 498 499 -- Rechtsgemeinsachaft (Sonderfall von Namensnummer, ohne Person, ohne Nummer) 500 rg.artderrechtsgemeinschaft AS nam_adr, 501 rg.beschriebderrechtsgemeinschaft AS nam_bes, 502 503 -- Person 504 --p.gml_id AS psgml, -- möglicher Filter Personen-GML-ID 505 p.anrede, 506 p.vorname, 507 p.namensbestandteil, 508 p.nachnameoderfirma, -- Familienname 509 p.geburtsdatum, 510 --p.geburtsname, p.akademischergrad 511 512 -- Adresse der Person 513 a.postleitzahlpostzustellung AS plz, 514 a.ort_post AS ort, -- Anschreifenzeile 1: PLZ+Ort 515 a.strasse, a.hausnummer, -- Anschriftenzeile 2: StraÃe+HsNr 516 a.bestimmungsland AS land 517 518 FROM ax_flurstueck f -- FlurstÃŒck 519 520 JOIN flst_an_strasse l -- Lage (hier zusÀtzlicher JOIN gegenÃŒber Version "exp_csv") 521 ON l.fsgml = f.gml_id 522 523 JOIN doppelverbindung d -- beide FÀlle ÃŒber Union-View: direkt und ÃŒber Recht von Buchung an Buchung 524 ON d.fsgml = f.gml_id 525 526 JOIN ax_gemarkung g -- entschlÃŒsseln 527 ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 528 529 JOIN ax_buchungsstelle s -- Buchungs-Stelle 530 ON d.bsgml = s.gml_id 531 JOIN ax_buchungsstelle_buchungsart b -- EnstschlÃŒsselung der Buchungsart 532 ON s.buchungsart = b.wert 533 534 JOIN alkis_beziehungen v3 -- Buchung --> Grundbuchblatt 535 ON s.gml_id = v3.beziehung_von AND v3.beziehungsart = 'istBestandteilVon' 536 JOIN ax_buchungsblatt gb 537 ON v3.beziehung_zu = gb.gml_id 538 539 JOIN ax_buchungsblattbezirk z 540 ON gb.land=z.land AND gb.bezirk=z.bezirk 541 542 JOIN alkis_beziehungen v4 -- Blatt --> NamNum 543 ON v4.beziehung_zu = gb.gml_id AND v4.beziehungsart = 'istBestandteilVon' 544 JOIN ax_namensnummer nn 545 ON v4.beziehung_von = nn.gml_id 546 547 JOIN alkis_beziehungen v5 -- NamNum --> Person 548 -- 2014-01-20: Mit LEFT ab hier werden auch NumNum-Zeilen mit "Beschreibung der Rechtsgemeinschaft" geliefert (ohne Person) 549 ON v5.beziehung_von = nn.gml_id AND v5.beziehungsart = 'benennt' 550 JOIN ax_person p 551 ON v5.beziehung_zu = p.gml_id 552 553 LEFT JOIN alkis_beziehungen v6 -- Person --> Anschrift 554 ON v6.beziehung_von = p.gml_id AND v6.beziehungsart = 'hat' 555 LEFT JOIN ax_anschrift a 556 ON v6.beziehung_zu = a.gml_id 557 558 -- 2mal "LEFT JOIN" verdoppelt die Zeile in der Ausgabe. Darum als Subquery: 559 560 -- Noch mal "GB -> NamNum", aber dieses Mal fÃŒr "Rechtsgemeinschaft". 561 -- Kommt max. 1 mal je GB vor und hat keine Relation auf Person. 562 LEFT JOIN 563 ( SELECT v7.beziehung_zu, 564 rg.artderrechtsgemeinschaft, 565 rg.beschriebderrechtsgemeinschaft 566 FROM ax_namensnummer rg 567 JOIN alkis_beziehungen v7 -- Blatt --> NamNum (Rechtsgemeinschaft) 568 ON v7.beziehung_von = rg.gml_id 569 WHERE v7.beziehungsart = 'istBestandteilVon' 570 AND NOT rg.artderrechtsgemeinschaft IS NULL 571 ) AS rg -- Rechtsgemeinschaft 572 ON rg.beziehung_zu = gb.gml_id -- zum GB 573 574 ORDER BY f.flurstueckskennzeichen, 575 gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer, 576 nn.laufendenummernachdin1421; 577 445 578 COMMENT ON VIEW exp_csv_str 446 579 IS 'View fÃŒr einen CSV-Export aus der Buchauskunft mit alkisexport.php. Liefert nur FlurstÃŒcke, die eine Lagebezeichnung MIT/OHNE Hausnummer haben. Dazu noch den Filter auf GML-ID der StraÃentabelle setzen.'; … … 460 593 /* 461 594 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 462 463 +++ HIER HIN KOPPIEREN ++++464 465 */466 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":467 -- +++ ToDo468 469 595 470 596 CREATE OR REPLACE VIEW rechtsgemeinschaften_zum_grundbuch … … 485 611 nn.laufendenummernachdin1421; 486 612 487 COMMENT ON VIEW rechtsgemeinschaften_zum_grundbuch488 IS 'Rechtsgemeinschaften zum Grundbuchblatt.';489 490 -- Schritt 2: Wo gibt es mehrere zu einem GB-Blatt491 492 /*493 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":494 495 +++ HIER HIN KOPPIEREN ++++496 497 613 */ 498 614 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 499 615 -- +++ ToDo 500 616 617 618 CREATE OR REPLACE VIEW rechtsgemeinschaften_zum_grundbuch 619 AS 620 SELECT 621 gb.gml_id, 622 gb.bezirk, 623 gb.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 624 nn.artderrechtsgemeinschaft, 625 nn.beschriebderrechtsgemeinschaft 626 FROM ax_buchungsblatt gb 627 JOIN alkis_beziehungen v 628 ON v.beziehung_zu = gb.gml_id AND v.beziehungsart = 'istBestandteilVon' 629 JOIN ax_namensnummer nn 630 ON v.beziehung_von = nn.gml_id 631 WHERE NOT nn.artderrechtsgemeinschaft IS NULL 632 ORDER BY gb.bezirk, gb.buchungsblattnummermitbuchstabenerweiterung, 633 nn.laufendenummernachdin1421; 634 635 COMMENT ON VIEW rechtsgemeinschaften_zum_grundbuch 636 IS 'Rechtsgemeinschaften zum Grundbuchblatt.'; 637 638 -- Schritt 2: Wo gibt es mehrere zu einem GB-Blatt 501 639 CREATE OR REPLACE VIEW rechtsgemeinschaften_zaehlen 502 640 AS … … 512 650 513 651 -- Schritt 3: alle vorhandenen Zeilen anzeigen zu den GB-BlÀttern, bei denen es mehrere gibt. 514 515 /*516 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":517 518 +++ HIER HIN KOPPIEREN ++++519 520 */521 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":522 -- +++ ToDo523 524 652 CREATE OR REPLACE VIEW rechtsgemeinschaften_mehrfachzeilen 525 653 AS … … 565 693 AND p.endet IS NULL 566 694 AND p.art IN ('AOG_AUG','PNR'); 695 567 696 COMMENT ON VIEW ap_pto_muell 568 697 IS 'Datenanalyse: Beschriftungen aus "ap_pto", die NICHT dargestellt werden sollen.'; … … 584 713 /* 585 714 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 586 587 +++ HIER HIN KOPPIEREN ++++588 589 */590 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":591 -- +++ ToDo592 593 715 594 716 CREATE OR REPLACE VIEW flstnr_ohne_position … … 603 725 --ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler 604 726 ; 727 728 */ 729 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 730 -- +++ ToDo 731 732 733 CREATE OR REPLACE VIEW flstnr_ohne_position 734 AS 735 SELECT f.gml_id, 736 f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS such -- Suchstring fÃŒr ALKIS-Navigation nach FS-Kennzeichen 737 FROM ax_flurstueck f 738 LEFT JOIN alkis_beziehungen v ON v.beziehung_zu = f.gml_id 739 --LEFT JOIN ap_pto p ON p.gml_id = v.beziehung_von 740 WHERE v.beziehungsart is NULL 741 AND f.endet IS NULL 742 --ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler 743 ; 744 605 745 COMMENT ON VIEW flstnr_ohne_position IS 'Sicht fÃŒr Datenanalyse: FlurstÃŒcke ohne manuell gesetzte Position fÃŒr die PrÀsentation der FS-Nr'; 746 606 747 607 748 -- Umbruch im Label? z.B. "Schwimm-/nbecken" … … 613 754 WHERE not schriftinhalt is null 614 755 AND schriftinhalt like '%/n%'; 756 615 757 COMMENT ON VIEW texte_mit_umbruch 616 758 IS 'Sicht fÃŒr Datenanalyse: Vorkommen eines Umbruchs im Label-Text.'; … … 624 766 FROM ax_flurstueck f 625 767 WHERE f.endet IS NULL; 768 626 769 COMMENT ON VIEW flurstuecks_minmax 627 770 IS 'Sicht fÃŒr Datenanalyse: Maximale Ausdehnung von ax_flurstueck fuer EXTENT-Angabe im Mapfile.'; … … 647 790 AND r.stelle = d.stelle 648 791 WHERE r.endet IS NULL AND d.endet IS NULL ; 792 649 793 COMMENT ON VIEW baurecht 650 794 IS 'Datenanalyse: EnstschlÃŒsselte Felder zu einer FlÀche des Baurechts.'; … … 658 802 WHERE endet IS NULL 659 803 ORDER BY land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer; 804 660 805 COMMENT ON VIEW gemarkung_in_gemeinde 661 806 IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.'; … … 670 815 WHERE endet IS NULL 671 816 GROUP BY st_geometrytype(wkb_geometry); 817 672 818 COMMENT ON VIEW arten_von_flurstuecksgeometrie IS 'Datenanalyse: vorkommende Geometry-Typen in Tabelle ax_flurstueck.'; 673 819 … … 697 843 AND l.lage = s.lage 698 844 WHERE l.gemeinde = 40; -- "40" = Stadt Lage 845 699 846 COMMENT ON VIEW adressen_hausnummern IS 'Datenanalyse: VerschlÃŒsselte Lagebezeichnung (StraÃe und Hausnummer) fÃŒr eine Gemeinde. SchlÃŒssel der Gemeinde nach Bedarf anpassen.'; 700 847 … … 704 851 /* 705 852 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 706 707 +++ HIER HIN KOPPIEREN ++++708 709 */710 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":711 -- +++ ToDo712 853 713 854 CREATE OR REPLACE VIEW adressen_zum_flurstueck … … 737 878 AND l.gemeinde = 40 -- "40" = Stadt Lage 738 879 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner; 880 881 */ 882 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 883 -- +++ ToDo 884 885 CREATE OR REPLACE VIEW adressen_zum_flurstueck 886 AS 887 SELECT 888 f.gemarkungsnummer, 889 f.flurnummer, 890 f.zaehler, 891 f.nenner, 892 g.bezeichnung AS gemeindename, 893 s.bezeichnung AS strassenname, 894 l.lage AS strassenschluessel, 895 l.hausnummer 896 FROM ax_flurstueck f 897 JOIN alkis_beziehungen v 898 ON f.gml_id=v.beziehung_von 899 JOIN ax_lagebezeichnungmithausnummer l 900 ON l.gml_id=v.beziehung_zu 901 JOIN ax_gemeinde g 902 ON l.kreis=g.kreis 903 AND l.gemeinde=g.gemeinde 904 JOIN ax_lagebezeichnungkatalogeintrag s 905 ON l.kreis=s.kreis 906 AND l.gemeinde=s.gemeinde 907 AND l.lage = s.lage 908 WHERE v.beziehungsart='weistAuf' 909 AND l.gemeinde = 40 -- "40" = Stadt Lage 910 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner; 911 739 912 COMMENT ON VIEW adressen_zum_flurstueck IS 'Datenanalyse: Zuordnung von Adressen zu Flurstuecken. SchlÃŒssel der Gemeinde nach Bedarf anpassen.'; 740 913 … … 809 982 /* 810 983 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 811 812 +++ HIER HIB KOPIEREN +++813 814 */815 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":816 -- +++ ToDo817 984 818 985 CREATE OR REPLACE VIEW flurstuecke_eines_eigentuemers … … 857 1024 AND s.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL 858 1025 ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer; 1026 1027 1028 */ 1029 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 1030 -- +++ ToDo 1031 1032 CREATE OR REPLACE VIEW flurstuecke_eines_eigentuemers 1033 AS 1034 SELECT 1035 k.bezeichnung AS gemarkung, 1036 k.gemarkungsnummer AS gemkg_nr, 1037 f.flurnummer AS flur, 1038 f.zaehler AS fs_zaehler, 1039 f.nenner AS fs_nenner, 1040 f.amtlicheflaeche AS flaeche, 1041 f.wkb_geometry AS geom, -- fuer Export als Shape 1042 -- g.bezirk, 1043 b.bezeichnung AS bezirkname, 1044 g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 1045 g.blattart, 1046 s.laufendenummer AS bvnr, 1047 art.bezeichner AS buchgsart, 1048 -- s.zaehler || '/' || s.nenner AS buchg_anteil, 1049 n.laufendenummernachdin1421 AS name_num, 1050 -- n.zaehler || '/' || n.nenner AS nam_anteil, 1051 p.nachnameoderfirma AS nachname --, 1052 -- p.vorname 1053 FROM ax_person p 1054 JOIN alkis_beziehungen bpn ON bpn.beziehung_zu = p.gml_id 1055 JOIN ax_namensnummer n ON bpn.beziehung_von =n.gml_id 1056 JOIN alkis_beziehungen bng ON n.gml_id = bng.beziehung_von 1057 JOIN ax_buchungsblatt g ON bng.beziehung_zu = g.gml_id 1058 JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk 1059 JOIN alkis_beziehungen bgs ON bgs.beziehung_zu = g.gml_id 1060 JOIN ax_buchungsstelle s ON s.gml_id = bgs.beziehung_von 1061 JOIN ax_buchungsstelle_buchungsart art ON s.buchungsart = art.wert 1062 JOIN alkis_beziehungen bsf ON bsf.beziehung_zu = s.gml_id 1063 JOIN ax_flurstueck f ON f.gml_id = bsf.beziehung_von 1064 JOIN ax_gemarkung k ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer 1065 WHERE p.nachnameoderfirma LIKE 'Gemeinde %' -- ** Bei Bedarf anpassen! 1066 AND bpn.beziehungsart = 'benennt' -- Namennummer >> Person 1067 AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer >> Grundbuch 1068 AND bgs.beziehungsart = 'istBestandteilVon' -- Buchungs-Stelle >> Grundbuch 1069 AND bsf.beziehungsart = 'istGebucht' -- Flurstueck >> Buchungs-Stelle 1070 AND p.endet IS NULL AND n.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL 1071 AND s.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL 1072 ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, s.laufendenummer; 1073 859 1074 COMMENT ON VIEW flurstuecke_eines_eigentuemers IS 'Muster fÃŒr Export: Suchkriteriumnach Bedarf anpassen.'; 860 1075 … … 876 1091 /* 877 1092 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 878 879 880 +++ HIER HIN KOIEREN881 882 */883 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":884 1093 885 1094 CREATE OR REPLACE VIEW rechte_eines_eigentuemers … … 932 1141 AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL 933 1142 ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, sh.laufendenummer; 1143 1144 1145 */ 1146 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 1147 1148 CREATE OR REPLACE VIEW rechte_eines_eigentuemers 1149 AS 1150 SELECT 1151 k.bezeichnung AS gemarkung, 1152 k.gemarkungsnummer AS gemkg_nr, 1153 f.flurnummer AS flur, 1154 f.zaehler AS fs_zaehler, 1155 f.nenner AS fs_nenner, 1156 f.amtlicheflaeche AS flaeche, 1157 f.wkb_geometry AS geom, -- fuer Export als Shape 1158 -- g.bezirk, 1159 b.bezeichnung AS bezirkname, 1160 g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt, 1161 -- g.blattart, 1162 sh.laufendenummer AS bvnr_herr, 1163 sh.zaehler || '/' || sh.nenner AS buchg_anteil_herr, 1164 arth.bezeichner AS buchgsa_herr, 1165 bss.beziehungsart AS bez_art, 1166 artd.bezeichner AS buchgsa_dien, 1167 sd.laufendenummer AS bvnr_dien, 1168 -- sd.zaehler || '/' || sd.nenner AS buchg_anteil_dien, 1169 n.laufendenummernachdin1421 AS name_num, 1170 -- n.zaehler || '/' || n.nenner AS nam_anteil, 1171 p.nachnameoderfirma AS nachname --, 1172 -- p.vorname 1173 FROM ax_person p 1174 JOIN alkis_beziehungen bpn ON bpn.beziehung_zu = p.gml_id 1175 JOIN ax_namensnummer n ON bpn.beziehung_von =n.gml_id 1176 JOIN alkis_beziehungen bng ON n.gml_id = bng.beziehung_von 1177 JOIN ax_buchungsblatt g ON bng.beziehung_zu = g.gml_id 1178 JOIN ax_buchungsblattbezirk b ON g.land = b.land AND g.bezirk = b.bezirk 1179 JOIN alkis_beziehungen bgs ON bgs.beziehung_zu = g.gml_id 1180 JOIN ax_buchungsstelle sh ON sh.gml_id = bgs.beziehung_von -- herrschende Buchung 1181 JOIN ax_buchungsstelle_buchungsart arth ON sh.buchungsart = arth.wert 1182 JOIN alkis_beziehungen bss ON sh.gml_id = bss.beziehung_von 1183 JOIN ax_buchungsstelle sd ON sd.gml_id = bss.beziehung_zu -- dienende Buchung 1184 JOIN ax_buchungsstelle_buchungsart artd ON sd.buchungsart = artd.wert 1185 JOIN alkis_beziehungen bsf ON bsf.beziehung_zu = sd.gml_id 1186 JOIN ax_flurstueck f ON f.gml_id = bsf.beziehung_von 1187 JOIN ax_gemarkung k ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer 1188 WHERE p.nachnameoderfirma LIKE 'Stadt %' -- ** Bei Bedarf anpassen! 1189 AND bpn.beziehungsart = 'benennt' -- Namennummer >> Person 1190 AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer >> Grundbuch 1191 AND bgs.beziehungsart = 'istBestandteilVon' -- B-Stelle herr >> Grundbuch 1192 AND bss.beziehungsart in ('an','zu') -- B-Stelle herr. >> B-Stelle dien. 1193 AND bsf.beziehungsart = 'istGebucht' -- Flurstueck >> B-Stelle dien 1194 AND p.endet IS NULL AND n.endet IS NULL AND g.endet IS NULL AND b.endet IS NULL 1195 AND sh.endet IS NULL AND sd.endet IS NULL AND f.endet IS NULL AND k.endet IS NULL 1196 ORDER BY k.bezeichnung, f.flurnummer, f.zaehler, f.nenner, g.bezirk, g.buchungsblattnummermitbuchstabenerweiterung, sh.laufendenummer; 1197 934 1198 COMMENT ON VIEW rechte_eines_eigentuemers IS 'Muster fÃŒr Export: Suchkriteriumnach Bedarf anpassen. Dies ergÀnzt "flurstuecke_eines_eigentuemers" um die FÀlle mit besonderen Buchungen.'; 935 1199 … … 981 1245 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 982 1246 983 +++ HIER HIN KOPPIEREN ++++984 985 */986 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":987 -- +++ ToDo988 989 1247 CREATE OR REPLACE VIEW mehrfache_buchung_zu_fs 990 1248 AS … … 997 1255 HAVING count(b.ogc_fid) > 1; 998 1256 1257 */ 1258 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 1259 -- +++ ToDo 1260 1261 CREATE OR REPLACE VIEW mehrfache_buchung_zu_fs 1262 AS 1263 SELECT f.gml_id, count(b.ogc_fid) AS anzahl 1264 FROM ax_flurstueck f 1265 JOIN alkis_beziehungen b 1266 ON f.gml_id = b.beziehung_von 1267 WHERE b.beziehungsart = 'istGebucht' 1268 GROUP BY f.gml_id 1269 HAVING count(b.ogc_fid) > 1; 1270 999 1271 -- Noch einfacher? - Auch ohne JOIN wird das selbe Ergebnis geliefert. 1000 1272 -- Doppelte Verweise zÀhlen ohne zu prÃŒfen, ob die gml_id in ax_flurstueck existiert. … … 1043 1315 /* 1044 1316 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 1045 1046 +++ HIER HIN +++1047 1048 */1049 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":1050 1317 1051 1318 CREATE OR REPLACE VIEW adressen_zu_gebauede_mit_mehreren_hausnummern … … 1064 1331 HAVING count(l.gml_id) > 1); 1065 1332 1333 */ 1334 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 1335 1336 CREATE OR REPLACE VIEW adressen_zu_gebauede_mit_mehreren_hausnummern 1337 AS 1338 SELECT l.gml_id, l.gemeinde, l.lage, l.hausnummer -- Anzeige der Adressfelder 1339 FROM ax_gebaeude g1 1340 JOIN alkis_beziehungen b ON b.beziehung_von = g1.gml_id 1341 JOIN ax_lagebezeichnungmithausnummer l ON b.beziehung_zu = l.gml_id 1342 WHERE b.beziehungsart = 'zeigtAuf' AND g1.gml_id IN -- Subquery sucht GebÀude mit meherern Hausnummen 1343 (SELECT g2.gml_id 1344 FROM ax_gebaeude g2 1345 JOIN alkis_beziehungen b ON b.beziehung_von = g2.gml_id 1346 JOIN ax_lagebezeichnungmithausnummer l ON b.beziehung_zu = l.gml_id 1347 WHERE b.beziehungsart = 'zeigtAuf' 1348 GROUP BY g2.gml_id 1349 HAVING count(l.gml_id) > 1); 1350 1066 1351 COMMENT ON VIEW adressen_zu_gebauede_mit_mehreren_hausnummern 1067 1352 IS 'GebÀude mit mehreren Hausnummern suchen (ist erlaubt) und dazu die Adressen anzeigen.'; … … 1135 1420 /* 1136 1421 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 1137 1138 +++ HIER HIN KOPIEREN +++1139 1140 */1141 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":1142 1422 1143 1423 CREATE OR REPLACE VIEW strasse_als_gewanne … … 1162 1442 ; 1163 1443 1444 */ 1445 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 1446 1447 CREATE OR REPLACE VIEW strasse_als_gewanne 1448 AS 1449 SELECT k.gemeinde, k.lage AS strassenschluessel, 1450 -- k.bezeichnung AS strassenname, 1451 o.unverschluesselt AS gewanne, 1452 count(fo.gml_id) AS anzahl_fs_gewanne 1453 FROM ax_lagebezeichnungkatalogeintrag k -- StraÃentabelle 1454 JOIN ax_lagebezeichnungohnehausnummer o -- Gewanne 1455 ON k.bezeichnung = o.unverschluesselt -- Gleiche Namen 1456 -- Join Gewanne auf FlurstÃŒcke um nur solche FÀlle anzuzeigen, die verwendet werden 1457 -- UND die auch in der gleichen Gemeinde liegen. 1458 -- Sonst könnte zufÀllige Namensgleichheiten aus verschiedenen Gemeinden geben. 1459 JOIN alkis_beziehungen vo 1460 ON o.gml_id=vo.beziehung_zu AND vo.beziehungsart= 'zeigtAuf' 1461 JOIN ax_flurstueck fo 1462 ON fo.gml_id=vo.beziehung_von 1463 WHERE fo.gemeinde = k.gemeinde -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraÃenschlÃŒssel 1464 GROUP BY k.gemeinde, k.lage, o.unverschluesselt --, k.bezeichnung 1465 ORDER BY k.gemeinde, k.lage, o.unverschluesselt --, k.bezeichnung 1466 ; 1467 1164 1468 COMMENT ON VIEW strasse_als_gewanne 1165 1469 IS 'Gewannenbezeichnungen, die auch als StraÃenname verwendet werden. Mit FlurstÃŒcks-ZÀhler.'; … … 1171 1475 /* 1172 1476 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 1173 1174 +++ HIER HIN KOPIEREN +++1175 1176 */1177 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":1178 1477 1179 1478 CREATE OR REPLACE VIEW strasse_als_gewanne_flst … … 1195 1494 ORDER BY fo.gemarkungsnummer, fo.flurnummer, fo.zaehler, k.gemeinde, k.bezeichnung; 1196 1495 1496 */ 1497 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 1498 1499 CREATE OR REPLACE VIEW strasse_als_gewanne_flst 1500 AS 1501 SELECT -- fo.gml_id, 1502 fo.gemarkungsnummer || '-' || fo.flurnummer || '-' || fo.zaehler::text || COALESCE ('/' || fo.nenner::text, '') AS flstkennz, 1503 k.gemeinde, 1504 o.unverschluesselt AS gewanne, 1505 -- k.bezeichnung AS strassenname, 1506 k.lage -- AS strassen_schluessel 1507 FROM ax_lagebezeichnungkatalogeintrag k -- StraÃentabelle 1508 JOIN ax_lagebezeichnungohnehausnummer o -- Gewanne 1509 ON k.bezeichnung = o.unverschluesselt -- Gleiche Namen 1510 JOIN alkis_beziehungen vo 1511 ON o.gml_id=vo.beziehung_zu AND vo.beziehungsart= 'zeigtAuf' 1512 JOIN ax_flurstueck fo 1513 ON fo.gml_id=vo.beziehung_von 1514 WHERE fo.gemeinde = k.gemeinde -- Gewanne wird fÃŒr ein Flst. in gleicher Gemeinde verwendet, wie der StraÃenschlÃŒssel 1515 ORDER BY fo.gemarkungsnummer, fo.flurnummer, fo.zaehler, k.gemeinde, k.bezeichnung; 1516 1197 1517 COMMENT ON VIEW strasse_als_gewanne_flst 1198 1518 IS 'FlurstÃŒcke mit Gewannenbezeichnungen, die auch als StraÃenname verwendet werden.'; … … 1206 1526 /* 1207 1527 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 1208 1209 +++ HIER HIN KOPIEREN +++1210 1211 */1212 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":1213 1528 1214 1529 CREATE OR REPLACE VIEW nachmigration_aehnliche_anschriften … … 1230 1545 ORDER BY p.nachnameoderfirma, p.vorname; 1231 1546 1547 */ 1548 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 1549 1550 CREATE OR REPLACE VIEW nachmigration_aehnliche_anschriften 1551 AS 1552 SELECT DISTINCT p.gml_id, p.nachnameoderfirma, p.vorname, 1553 a1.ort_post, a1.strasse AS strasse1, a2.strasse AS strasse2, a1.hausnummer 1554 -- , b1.import_id AS import1, b2.import_id AS import2 1555 FROM ax_person p 1556 JOIN alkis_beziehungen b1 ON b1.beziehung_von=p.gml_id 1557 JOIN ax_anschrift a1 ON a1.gml_id=b1.beziehung_zu 1558 JOIN alkis_beziehungen b2 ON b2.beziehung_von=p.gml_id 1559 JOIN ax_anschrift a2 ON a2.gml_id=b2.beziehung_zu 1560 WHERE b1.beziehungsart='hat' 1561 AND b2.beziehungsart='hat' 1562 AND a1.gml_id <> a2.gml_id 1563 AND a1.ort_post = a2.ort_post 1564 AND a1.strasse like trim(a2.strasse, '.') || '%' 1565 AND a1.hausnummer = a2.hausnummer 1566 ORDER BY p.nachnameoderfirma, p.vorname; 1567 1232 1568 COMMENT ON VIEW nachmigration_aehnliche_anschriften 1233 1569 IS 'Zu einer Person gibt es mehrere Anschriften, die in Ort und Hausnummer identisch sind und beim StraÃennemen entweder auch identisch sind oder eine AbkÃŒrzung mit Punkt enthalten.'; -
Version-0.8/import/sichten_wms.sql
r324 r326 3 3 -- ===== 4 4 5 -- PostNAS 5 -- PostNAS 0.8 6 6 7 7 -- ----------------------------------------- … … 24 24 -- 2014-02-24 Kein Filter auf advstandardmodell bei FlurstÃŒcks-Zuordnungspfeil 25 25 -- 2014-08-26 View "ap_lto_stra" analog "ap_pto_stra" fÃŒr StraÃennamen auf Linien-Geometrie 26 27 -- 2014-08-27 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen. 26 -- 2014-08-28 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen. 28 27 -- Relationen nun direkt ÃŒber neue Spalten in den Objekttabellen. 29 28 … … 38 37 -- Wenn der nicht gefÃŒllt ist, wird statt dessen die Nummer aus der verknÃŒpften Labebezeichnung verwendet. 39 38 40 41 /* 42 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 43 44 CREATE OR REPLACE VIEW s_hausnummer_gebaeude 45 AS 46 SELECT p.ogc_fid, 47 p.wkb_geometry, -- Point 48 p.drehwinkel * 57.296 AS drehwinkel, -- umn: ANGLE 49 -- p.art, 50 -- p.advstandardmodell AS modell, -- TEST 51 -- p.horizontaleausrichtung AS hor, -- = 'zentrisch' 52 -- p.vertikaleausrichtung AS ver, -- = 'Basis' (oft), "Mitte" (selten) 53 -- p.schriftinhalt, -- WMS: das bessere LABELITEM, kann aber leer sein 54 -- l.hausnummer, -- WMS: LABELITEM default/native 55 COALESCE(p.schriftinhalt, l.hausnummer) AS hausnummer 56 FROM ap_pto p 57 JOIN alkis_beziehungen v 58 ON p.gml_id = v.beziehung_von 59 JOIN ax_lagebezeichnungmithausnummer l 60 ON v.beziehung_zu = l.gml_id 61 WHERE p.art = 'HNR' 62 AND 'DKKM1000' = ANY (p.advstandardmodell) -- erste NÀherungslösung um Redundanzen zu unterdrÃŒcken 63 AND v.beziehungsart = 'dientZurDarstellungVon' 64 AND p.endet IS NULL 65 AND l.endet IS NULL; 66 67 */ 68 69 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 39 -- DROP VIEW IF EXISTS s_hausnummer_gebaeude; 40 70 41 CREATE OR REPLACE VIEW s_hausnummer_gebaeude 71 42 AS … … 96 67 -- ax_gebaeude >hat> ax_lagebezeichnungmitpseudonummer, kein Drehwinkel. 97 68 98 /* 99 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 100 101 CREATE OR REPLACE VIEW lfdnr_nebengebaeude 102 AS 103 SELECT g.ogc_fid, 104 g.wkb_geometry, 105 -- l.pseudonummer, -- TEST die HsNr des zugehoerigen Hauptgebaeudes 106 l.laufendenummer -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes 107 FROM ax_gebaeude g 108 JOIN alkis_beziehungen v 109 ON g.gml_id = v.beziehung_von 110 JOIN ax_lagebezeichnungmitpseudonummer l 111 ON v.beziehung_zu = l.gml_id 112 WHERE v.beziehungsart = 'hat' 113 AND g.endet IS NULL 114 AND l.endet IS NULL; 115 116 */ 117 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 69 -- DROP VIEW IF EXISTS lfdnr_nebengebaeude; 70 118 71 CREATE OR REPLACE VIEW lfdnr_nebengebaeude 119 72 AS … … 131 84 -- GebÀude-Text 132 85 -- ------------ 86 87 -- DROP VIEW IF EXISTS gebaeude_txt; 88 133 89 CREATE OR REPLACE VIEW gebaeude_txt 134 90 AS … … 149 105 -- ----------------------- 150 106 151 /* 152 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 153 CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck 154 AS 155 SELECT p.ogc_fid, 156 p.wkb_geometry, 157 p.drehwinkel * 57.296 AS drehwinkel, 158 f.flurstueckskennzeichen 159 FROM ap_ppo p 160 JOIN alkis_beziehungen v 161 ON p.gml_id = v.beziehung_von 162 JOIN ax_flurstueck f 163 ON v.beziehung_zu = f.gml_id 164 WHERE p.art = 'Haken' 165 AND v.beziehungsart = 'dientZurDarstellungVon' 166 AND f.endet IS NULL 167 AND p.endet IS NULL; 168 169 */ 170 171 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 107 -- DROP VIEW IF EXISTS s_zugehoerigkeitshaken_flurstueck; 108 172 109 CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck 173 110 AS … … 188 125 -- ----------------------------------- 189 126 190 /* 191 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 192 193 CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck 194 AS 195 SELECT l.ogc_fid, 196 l.wkb_geometry 197 FROM ap_lpo l 198 JOIN alkis_beziehungen v 199 ON l.gml_id = v.beziehung_von 200 JOIN ax_flurstueck f 201 ON v.beziehung_zu = f.gml_id 202 WHERE l.art = 'Pfeil' 203 AND v.beziehungsart = 'dientZurDarstellungVon' 204 AND f.endet IS NULL 205 AND l.endet IS NULL; 206 207 */ 208 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 127 -- DROP VIEW IF EXISTS s_zuordungspfeil_flurstueck; 128 209 129 CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck 210 130 AS … … 221 141 IS 'Sicht fÃŒr Kartendarstellung: Zuordnungspfeil zur FlurstÃŒcksnummer, Liniengeometrie.'; 222 142 223 /* 224 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 225 CREATE OR REPLACE VIEW s_zuordungspfeilspitze_flurstueck 226 AS 227 SELECT l.ogc_fid, 228 (((st_azimuth(st_pointn(l.wkb_geometry, 1), 229 st_pointn(l.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel, 230 st_startpoint(l.wkb_geometry) AS wkb_geometry 231 FROM ap_lpo l 232 JOIN alkis_beziehungen v 233 ON l.gml_id = v.beziehung_von 234 JOIN ax_flurstueck f 235 ON v.beziehung_zu = f.gml_id 236 WHERE l.art = 'Pfeil' 237 AND v.beziehungsart = 'dientZurDarstellungVon' 238 AND f.endet IS NULL 239 AND l.endet IS NULL; 240 241 */ 242 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 143 144 -- DROP VIEW IF EXISTS s_zuordungspfeilspitze_flurstueck; 145 243 146 CREATE OR REPLACE VIEW s_zuordungspfeilspitze_flurstueck 244 147 AS … … 263 166 -- ---------------------------------------------------- 264 167 265 /*266 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":267 CREATE OR REPLACE VIEW s_zuordungspfeil_bodensch268 AS269 SELECT l.ogc_fid,270 l.wkb_geometry271 FROM ap_lpo l272 JOIN alkis_beziehungen v273 ON l.gml_id = v.beziehung_von274 JOIN ax_bodenschaetzung b275 ON v.beziehung_zu = b.gml_id276 WHERE l.art = 'Pfeil'277 AND v.beziehungsart = 'dientZurDarstellungVon'278 AND ('DKKM1000' ~~ ANY (l.advstandardmodell))279 AND b.endet IS NULL280 AND l.endet IS NULL;281 282 */283 284 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":285 168 CREATE OR REPLACE VIEW s_zuordungspfeil_bodensch 286 169 AS … … 299 182 300 183 301 /* 302 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 303 304 CREATE OR REPLACE VIEW s_zuordungspfeilspitze_bodensch 305 AS 306 SELECT l.ogc_fid, 307 (((st_azimuth(st_pointn(l.wkb_geometry, 1), 308 st_pointn(l.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel, 309 st_startpoint(l.wkb_geometry) AS wkb_geometry 310 FROM ap_lpo l 311 JOIN alkis_beziehungen v 312 ON l.gml_id = v.beziehung_von 313 JOIN ax_bodenschaetzung b 314 ON v.beziehung_zu = b.gml_id 315 WHERE l.art = 'Pfeil' 316 AND v.beziehungsart = 'dientZurDarstellungVon' 317 AND ('DKKM1000' ~~ ANY (l.advstandardmodell)) 318 AND b.endet IS NULL 319 AND l.endet IS NULL; 320 321 */ 322 323 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 184 -- DROP VIEW IF EXISTS s_zuordungspfeilspitze_bodensch; 185 324 186 CREATE OR REPLACE VIEW s_zuordungspfeilspitze_bodensch 325 187 AS … … 348 210 -- Auch Zeilen mit leerem Schriftinhalt verwenden. Das wird im PostProcessing noch ergÀnzt. 349 211 350 -- DROP VIEW ap_pto_stra; 351 352 /* 353 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 354 355 CREATE OR REPLACE VIEW ap_pto_stra 356 AS 357 SELECT p.ogc_fid, 358 l.gml_id, -- wird im PP zum Nachladen aus Katalog gebraucht 359 -- p.advstandardmodell AS modell, -- TEST 360 -- l.unverschluesselt, l.lage AS schluessel, -- zur Lage TEST 361 p.schriftinhalt, -- WMS: LABELITEM 362 p.art, -- WMS: CLASSITEM 363 p.horizontaleausrichtung AS hor, -- Verfeinern der Text-Position .. 364 p.vertikaleausrichtung AS ver, -- .. durch Klassifizierung hor/ver 365 p.drehwinkel * 57.296 AS winkel, -- * 180 / Pi 366 p.wkb_geometry 367 FROM ap_pto p 368 JOIN alkis_beziehungen v -- Relation zur Lagebezeichnung o. HsNr. 369 ON p.gml_id = v.beziehung_von 370 JOIN ax_lagebezeichnungohnehausnummer l 371 ON v.beziehung_zu = l.gml_id 372 WHERE -- NOT p.schriftinhalt IS NULL AND 373 p.endet IS NULL -- nichts historisches 374 AND p.art IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- Diese Werte als CLASSES in LAYER behandeln. 375 AND v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 376 377 AND ( 'DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 378 OR 'DLKM' = ANY (p.advstandardmodell) -- oder auch Kataster allgemein 379 -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 380 OR (p.advstandardmodell IS NULL 381 AND (SELECT s.ogc_fid -- irgend ein Feld 382 FROM ap_pto s -- eines anderen Textes (suchen) 383 JOIN alkis_beziehungen vs -- zur gleichen Lage o.HsNr 384 ON s.gml_id = vs.beziehung_von 385 JOIN ax_lagebezeichnungohnehausnummer ls 386 ON vs.beziehung_zu = ls.gml_id 387 WHERE ls.gml_id = l.gml_id 388 AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 389 AND NOT s.advstandardmodell IS NULL 390 LIMIT 1 -- einer reicht als Beweis 391 ) IS NULL 392 ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 393 ) 394 ; 395 396 */ 397 398 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 212 -- DROP VIEW IF EXISTS ap_pto_stra; 213 399 214 CREATE OR REPLACE VIEW ap_pto_stra 400 215 AS … … 434 249 Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe. Dient im Script pp_laden.sql zum ersten FÃŒllen der Tabelle "pp_strassenname_p".'; 435 250 436 -- 2013-10-26:Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in den Tabellen "pp_strassenname" und "pp_strassenklas".251 -- Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in den Tabellen "pp_strassenname" und "pp_strassenklas". 437 252 -- Der View ÃŒbernimmt die Auswahl des passenden advstandardmodell und rechnet den Winkel passend um, 438 253 -- In der Tabelle werden dann die leer gebliebenen Label aus dem Katalog noch ergÀnzt. 439 254 440 -- DROP VIEW ap_lto_stra; 441 442 /* 443 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 444 445 CREATE OR REPLACE VIEW ap_lto_stra 446 AS 447 SELECT p.ogc_fid, 448 l.gml_id, -- wird im PP zum Nachladen aus Katalog gebraucht 449 p.schriftinhalt, -- WMS: LABELITEM 450 p.art, -- WMS: CLASSITEM 451 p.horizontaleausrichtung AS hor, -- Verfeinern der Text-Position .. 452 p.vertikaleausrichtung AS ver, -- .. durch Klassifizierung hor/ver 453 p.wkb_geometry 454 FROM ap_lto p 455 JOIN alkis_beziehungen v -- Relation zur Lagebezeichnung o. HsNr. 456 ON p.gml_id = v.beziehung_von 457 JOIN ax_lagebezeichnungohnehausnummer l 458 ON v.beziehung_zu = l.gml_id 459 WHERE p.endet IS NULL -- nichts historisches 460 AND p.art IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- Diese Werte als CLASSES in LAYER behandeln. 461 AND v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 462 AND ( 'DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 463 OR 'DLKM' = ANY (p.advstandardmodell) -- oder auch Kataster allgemein? 464 -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 465 OR (p.advstandardmodell IS NULL 466 AND (SELECT s.ogc_fid -- irgend ein Feld 467 FROM ap_lto s -- eines anderen Textes (suchen) 468 JOIN alkis_beziehungen vs -- zur gleichen Lage o.HsNr 469 ON s.gml_id = vs.beziehung_von 470 JOIN ax_lagebezeichnungohnehausnummer ls 471 ON vs.beziehung_zu = ls.gml_id 472 WHERE ls.gml_id = l.gml_id 473 AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 474 AND NOT s.advstandardmodell IS NULL 475 LIMIT 1 -- einer reicht als Beweis 476 ) IS NULL 477 ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 478 ) 479 ; 480 481 */ 482 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 255 -- DROP VIEW IF EXISTS ap_lto_stra; 256 483 257 CREATE OR REPLACE VIEW ap_lto_stra 484 258 AS … … 532 306 -- ODER trennen nach fachlichen Ebenen wie "Nutzung" und "GebÀude" und .... 533 307 534 /* 535 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 536 537 CREATE OR REPLACE VIEW ap_pto_nam 538 AS 539 SELECT p.ogc_fid, 540 -- p.advstandardmodell AS modell, -- TEST 541 p.schriftinhalt, -- WMS: LABELITEM 542 p.art, -- WMS: CLASSITEM 543 p.horizontaleausrichtung AS hor, -- Verfeinern der Text-Position .. 544 p.vertikaleausrichtung AS ver, -- .. durch Klassifizierung hor/ver 545 p.drehwinkel * 57.296 AS winkel, -- * 180 / Pi 546 p.wkb_geometry 547 FROM ap_pto p 548 JOIN alkis_beziehungen v 549 ON p.gml_id = v.beziehung_von 550 --JOIN nutzung l -- Im PostProcessing zusammen gefasste Nutzungsarten-Abschnitte 551 -- ON v.beziehung_zu = l.gml_id 552 WHERE NOT p.schriftinhalt IS NULL 553 AND p.endet IS NULL -- nichts historisches 554 AND p.art IN ('NAM','ZNM') -- Diese Werte als CLASSES in LAYER behandeln. 555 AND v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 556 AND ('DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 557 -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 558 OR (p.advstandardmodell IS NULL 559 AND (SELECT vs.beziehung_zu -- irgend ein Feld 560 FROM ap_pto s -- eines anderen Textes (suchen) 561 JOIN alkis_beziehungen vs -- zur gleichen ?irgendwas? 562 ON s.gml_id = vs.beziehung_von 563 WHERE vs.beziehung_zu = v.beziehung_zu 564 AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 565 AND NOT s.advstandardmodell IS NULL 566 LIMIT 1 -- einer reicht als Beweis 567 ) IS NULL 568 ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 569 ) 570 ; 571 572 */ 573 574 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 308 -- DROP VIEW IF EXISTS ap_pto_nam; 309 575 310 CREATE OR REPLACE VIEW ap_pto_nam 576 311 AS … … 613 348 -- Doppelte Darstellung aufgrund verschiedener "advstandardmodell" zum Objekt unterdrÃŒcken analog ap_pto_stra und ap_pto_nam 614 349 615 /* 616 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 617 618 +++ HIER HIN KOPIEREN +++ 619 620 */ 621 622 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 623 -- ToDo 624 CREATE OR REPLACE VIEW ap_pto_rest 350 -- DROP VIEW IF EXISTS ap_pto_rest; 351 352 CREATE OR REPLACE VIEW ap_pto_rest 625 353 AS 626 354 SELECT p.ogc_fid, … … 630 358 p.wkb_geometry 631 359 FROM ap_pto p 632 JOIN alkis_beziehungen v -- Relation zur ?irgendwas? 633 ON p.gml_id = v.beziehung_von 634 WHERE not p.schriftinhalt IS NULL 360 WHERE NOT p.schriftinhalt IS NULL 361 AND NOT p.dientzurdarstellungvon IS NULL 635 362 AND p.endet IS NULL 636 363 AND p.art NOT IN ('PNR','HNR','Strasse','Weg','Platz','BezKlassifizierungStrasse','AOG_AUG') -- 'PNR', 637 364 -- Diese 'IN'-Liste fortschreiben bei Erweiterungen des Mapfiles 638 365 -- 'PNR' = Pseudonummer (lfd.-Nr.-NebengebÀude), Inhalte wie "(1)" oder "P50" - kommt nicht mehr vor, oder? 639 AND v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht640 366 AND ('DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 641 -- Ersatzweise auch "keine Angabe" (nul) akzeptieren, aber nur wenn es keinen besseren Text zu ?irgendwas? gibt 642 -- Es wird hier nur bis zur Verbindungstabelle "alkis_beziehungen" gesucht, ob am anderen Ende die gleiche gml_id verlinkt ist. 643 -- Diese gml_id können dann zu verschiedenen, unbekannten Objekttabellen linken. 367 -- Ersatzweise auch "keine Angabe" (null) akzeptieren, aber nur wenn ... 644 368 OR (p.advstandardmodell IS NULL 645 AND (SELECT vs.beziehung_zu -- irgend ein Feld 646 FROM ap_pto s -- eines anderen Textes (suchen) 647 JOIN alkis_beziehungen vs -- zur gleichen ?irgendwas? 648 ON s.gml_id = vs.beziehung_von 649 WHERE vs.beziehung_zu = v.beziehung_zu 650 AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 651 AND NOT s.advstandardmodell IS NULL 369 AND ( SELECT s.ogc_fid -- irgend ein Feld 370 FROM ap_pto s 371 WHERE p.dientzurdarstellungvon = s.dientzurdarstellungvon -- gleiches PrÀsentationsobj. 372 AND NOT s.advstandardmodell IS NULL -- Irgend eine Angabe 652 373 LIMIT 1 -- einer reicht als AusschluÃkriterium 653 374 ) IS NULL 654 375 ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 655 376 ); 377 656 378 COMMENT ON VIEW ap_pto_rest 657 379 IS 'Sicht fÃŒr Kartendarstellung: Beschriftungen aus "ap_pto", die noch nicht in anderen Layern angezeigt werden.'; … … 664 386 -- Layer "s_zuordungspfeil_gebaeude" 665 387 -- ----------------------------------- 666 667 /* 668 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 669 670 +++ HIER HIN KOPIEREN +++ 671 672 */ 673 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 674 -- ToDo 675 676 CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude 388 -- DROP VIEW IF EXISTS s_zuordungspfeil_gebaeude; 389 390 CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude 677 391 AS 678 392 SELECT l.ogc_fid, 679 -- alkis_beziehungen.beziehungsart, -- TEST680 393 -- ap_lpo.art, -- TEST 681 394 l.wkb_geometry 682 395 FROM ap_lpo l 683 JOIN alkis_beziehungen v684 ON l.gml_id = v.beziehung_von685 396 JOIN ax_gebaeude g 686 ON v.beziehung_zu = g.gml_id397 ON g.gml_id = ANY(l.dientzurdarstellungvon) 687 398 WHERE l.art = 'Pfeil' 688 AND v.beziehungsart = 'dientZurDarstellungVon'689 399 AND g.endet IS NULL 690 400 AND l.endet IS NULL; 401 691 402 COMMENT ON VIEW s_zuordungspfeil_gebaeude 692 403 IS 'Sicht fÃŒr Kartendarstellung: Zuordnungspfeil fÃŒr GebÀude-Nummer (NebengebÀude). Wird wahrscheinlich nicht mehr benötigt.'; … … 695 406 -- Grenzpunkte 696 407 -- ----------- 697 -- ax_punktortta >zeigtAuf?> AX_Grenzpunkt698 408 -- Zum Punktort des Grenzpunktes auch eine Information zur Vermarkung holen 699 700 /* 701 -- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 702 703 +++ HIER HIN KOPIEREN +++ 704 705 */ 706 -- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 707 -- ToDo 409 -- DROP VIEW IF EXISTS grenzpunkt; 708 410 709 411 CREATE OR REPLACE VIEW grenzpunkt … … 712 414 o.wkb_geometry, 713 415 -- g.punktkennung, -- ggf spÀter als labelitem "rrrrrhhhhAnnnnn" "32483 5751 0 02002" 714 g.abmarkung_marke, -- steuert die Darstellung >9000 = unvermarkt 715 v.beziehungsart 416 g.abmarkung_marke -- steuert die Darstellung >9000 = unvermarkt 716 417 FROM ax_punktortta o 717 JOIN alkis_beziehungen v718 ON o.gml_id = v.beziehung_von719 418 JOIN ax_grenzpunkt g 720 ON v.beziehung_zu = g.gml_id 721 WHERE v.beziehungsart = 'istTeilVon' 722 AND g.endet IS NULL 419 ON o.istteilvon = g.gml_id 420 WHERE g.endet IS NULL 723 421 AND g.endet IS NULL; 422 724 423 COMMENT ON VIEW grenzpunkt 725 424 IS 'Sicht fÃŒr Kartendarstellung: ZusammenfÃŒhrung von Punktort (Geometrie) und AX_Grenzpunkt (Eigenschaften)'; … … 735 434 WHERE 3000 = ANY (fg.artderflurstuecksgrenze) 736 435 AND 'DLKM' = ANY (fg.advstandardmodell); 436 737 437 COMMENT ON VIEW sk2012_flurgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Flurgrenze"'; 738 438 … … 743 443 WHERE 7003 = ANY (gemag.artderflurstuecksgrenze) 744 444 AND 'DLKM' = ANY (gemag.advstandardmodell); 445 745 446 COMMENT ON VIEW sk2014_gemarkungsgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemarkungsgrenze"'; 746 447 … … 751 452 WHERE 7102 = ANY (blg.artderflurstuecksgrenze) 752 453 AND 'DLKM' = ANY (blg.advstandardmodell); 454 753 455 COMMENT ON VIEW sk2018_bundeslandgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Bundeslandgrenze"'; 754 456 … … 759 461 WHERE 7103 = ANY (rbg.artderflurstuecksgrenze) 760 462 AND 'DLKM' = ANY (rbg.advstandardmodell); 463 761 464 COMMENT ON VIEW sk2020_regierungsbezirksgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Regierungsbezirksgrenze"'; 762 465 … … 767 470 WHERE 7106 = ANY (gemg.artderflurstuecksgrenze) 768 471 AND 'DLKM' = ANY (gemg.advstandardmodell); 472 769 473 COMMENT ON VIEW sk2022_gemeindegrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemeindegrenze"'; 770 474 … … 817 521 -- so2.bezeichner AS sonst2, -- immer leer? 818 522 bs.jahreszahl -- integer 819 FROM ax_bodenschaetzung bs523 FROM ax_bodenschaetzung bs 820 524 LEFT JOIN ax_bodenschaetzung_kulturart ka ON bs.kulturart = ka.wert 821 525 LEFT JOIN ax_bodenschaetzung_bodenart ba ON bs.bodenart = ba.wert … … 828 532 --LEFT JOIN ax_bodenschaetzung_sonstigeangaben so2 ON bs.sonstigeangaben[2] = so2.wert -- [2] fast nie 829 533 WHERE bs.endet IS NULL; 534 830 535 COMMENT ON VIEW s_bodensch_ent IS 'Sicht fÃŒr Feature-Info: BodenschÀtzung, mit Langtexten entschlÃŒsselt'; 831 536 … … 838 543 SELECT bs.ogc_fid, 839 544 bs.wkb_geometry, 840 -- bs.advstandardmodell, -- NUR TEST545 -- bs.advstandardmodell, -- NUR TEST 841 546 -- bs.entstehungsartoderklimastufewasserverhaeltnisse AS entstehart, -- Array der Keys, NUR TEST 842 547 ka.kurz AS kult, -- Kulturart, CLASSITEM, steuert die Farbe 843 548 -- Viele Felder zusammen packen zu einem kompakten Zwei-Zeilen-Label: 844 ba.kurz || -- Bodenart845 zs.kurz || -- Zustandsstufe846 ea1.kurz || -- Entstehungsart oder Klimastufe, Wasserverhaeltnisse ist ein Array mit 1 bis 2 Elementen549 ba.kurz || -- Bodenart 550 zs.kurz || -- Zustandsstufe 551 ea1.kurz || -- Entstehungsart oder Klimastufe, Wasserverhaeltnisse ist ein Array mit 1 bis 2 Elementen 847 552 coalesce (ea2.kurz, '') -- NULL vermeiden! 848 || ' ' || -- Zeilenwechsel im Label (UMN: WRAP)553 || ' ' || -- Zeilenwechsel im Label (UMN: WRAP) 849 554 bs.bodenzahlodergruenlandgrundzahl || '/' || 850 555 bs.ackerzahlodergruenlandzahl 851 AS derlabel -- LABELITEM Umbruch am Blank852 FROM ax_bodenschaetzung bs556 AS derlabel -- LABELITEM Umbruch am Blank 557 FROM ax_bodenschaetzung bs 853 558 LEFT JOIN ax_bodenschaetzung_kulturart ka ON bs.kulturart = ka.wert 854 559 LEFT JOIN ax_bodenschaetzung_bodenart ba ON bs.bodenart = ba.wert … … 859 564 ON bs.entstehungsartoderklimastufewasserverhaeltnisse[2] = ea2.wert -- [2] manchmal gefÃŒllt 860 565 WHERE bs.endet IS NULL; 566 861 567 COMMENT ON VIEW s_bodensch_wms IS 'Sicht fÃŒr Kartendarstellung: BodenschÀtzung mit kompakten Informationen fÃŒr Label.'; 862 568 … … 873 579 FROM ax_bodenschaetzung 874 580 WHERE endet IS NULL; 581 875 582 COMMENT ON VIEW s_bodensch_po IS 'Sicht fÃŒr Kartendarstellung: KlassenflÀche der BodenschÀtzung ohne Label.'; 876 583 … … 896 603 bs.ackerzahlodergruenlandzahl 897 604 AS derlabel -- LABELITEM, Umbruch am Leerzeichen 898 FROM ap_pto p 899 JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von 900 JOIN ax_bodenschaetzung bs ON v.beziehung_zu = bs.gml_id 605 FROM ap_pto p 606 JOIN ax_bodenschaetzung bs ON bs.gml_id = ANY(p.dientzurdarstellungvon) 901 607 LEFT JOIN ax_bodenschaetzung_kulturart ka ON bs.kulturart = ka.wert 902 608 LEFT JOIN ax_bodenschaetzung_bodenart ba ON bs.bodenart = ba.wert … … 906 612 LEFT JOIN ax_bodenschaetzung_entstehungsartoderklimastufe ea2 907 613 ON bs.entstehungsartoderklimastufewasserverhaeltnisse[2] = ea2.wert 908 WHERE -- v.beziehungsart = 'dientZurDarstellungVon' AND 909 p.endet IS NULL 614 WHERE p.endet IS NULL 910 615 AND bs.endet IS NULL; 911 COMMENT ON VIEW s_bodensch_tx IS 'Sicht fÃŒr Kartendarstellung: Kompakter Label zur KlassenflÀche der BodenschÀtzung an manueller Position. Der Label wird zusammengesetzt aus: Bodenart, Zustandsstufe, Entstehungsart oder Klimastufe/WasserverhÀltnisse, Bodenzahl oder GrÃŒnlandgrundzahl und Ackerzahl oder GrÃŒnlandzahl.'; 616 617 COMMENT ON VIEW s_bodensch_tx IS 'Sicht fÃŒr Kartendarstellung: Kompakter Label zur KlassenflÀche der BodenschÀtzung an manueller Position. 618 Der Label wird zusammengesetzt aus: Bodenart, Zustandsstufe, Entstehungsart oder Klimastufe/WasserverhÀltnisse, Bodenzahl oder GrÃŒnlandgrundzahl und Ackerzahl oder GrÃŒnlandzahl.'; 912 619 913 620 -- Redundanz suchen:
Note: See TracChangeset
for help on using the changeset viewer.