- Timestamp:
- 10/17/13 15:28:48 (11 years ago)
- Location:
- trunk/import
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/import/datenbank_anlegen.sh
r276 r294 9 9 ## 2013-01-15 Zwischenstopp um Meldungen lesen zu können bevor, sie aus dem Scrollbereich verschwinden 10 10 ## 2013-04-16 Vers.-Nr. "0.7" aus dem Dateinamen von Schema und Keytable entfernt, sichten_wms.sql 11 ## 2013-10-16 F.J. krz: Neues Sript "pp_praesentation_sichten.sql" für Reparatur Präsentationsobjekte Straßennamen 11 12 12 13 POSTNAS_HOME=$(dirname $0) … … 97 98 ## Nur die benoetigten Tabellen fuer die Buchauskunft 98 99 psql $con -U ${DBUSER} -f alkis_PostNAS_keytables.sql >$MANDANT_HOME/log/keytables.log 100 99 101 echo " " 100 102 echo "** Anlegen Optimierung Nutzungsarten (nutzungsart_definition.sql)" 101 103 psql $con -U ${DBUSER} -f nutzungsart_definition.sql 104 102 105 echo " " 103 106 echo "** Laden NUA-Metadaten (nutzungsart_metadaten.sql) Protokoll siehe log" 104 107 psql $con -U ${DBUSER} -f nutzungsart_metadaten.sql >$MANDANT_HOME/log/meta.log 108 105 109 echo " " 106 echo "** Anlegen Post Processing (pp_definition.sql)"110 echo "** Anlegen Post Processing Tabellen (pp_definition.sql)" 107 111 psql $con -U ${DBUSER} -f pp_definition.sql >$MANDANT_HOME/log/pp_definition.log 112 113 echo " " 114 echo "** Anlegen Post Processing Views (pp_praesentation_sichten.sql)" 115 psql $con -U ${DBUSER} -f pp_praesentation_sichten.sql >$MANDANT_HOME/log/pp_praesentation_sichten.log 116 108 117 echo " " 109 118 echo "** Definition von Views (sichten_wms.sql)" 110 119 psql $con -U ${DBUSER} -f sichten_wms.sql >$MANDANT_HOME/log/sichten_wms.log 120 111 121 echo " " 112 122 echo "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.7';" | psql -p 5432 -d ${DBNAME} -U ${DBUSER} 113 123 echo " " 124 114 125 echo "** Berechtigung (grant.sql) Protokoll siehe log" 115 126 psql $con -U ${DBUSER} -f grant.sql >$MANDANT_HOME/log/log_grant.log -
trunk/import/konv_batch.sh
r215 r294 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 der 30 ## Präsentationsobjekte Straßenname im Post-Processing 29 31 ## 30 32 ## ToDo: Option "-skipfailures" nach Test entfernen ? … … 86 88 fi 87 89 # Fehlerprotokoll: 88 errprot= '$POSTNAS_HOME/log/postnas_err_'$DBNAME'.prot'90 errprot=${POSTNAS_HOME}'/log/postnas_err_'$DBNAME'.prot' 89 91 # 90 92 # DB-Connection … … 144 146 else 145 147 echo "** Post-Processing (Nacharbeiten zur Konvertierung)" 148 146 149 echo "** - Optimierte Nutzungsarten neu Laden:" 147 150 (cd $POSTNAS_HOME; psql -p 5432 -d ${DBNAME} -f nutzungsart_laden.sql) 148 ## 151 152 149 153 echo "** - Fluren / Gemarkungen / Gemeinden neu Laden:" 150 154 (cd $POSTNAS_HOME; psql -p 5432 -d ${DBNAME} -f pp_laden.sql) 155 156 157 echo "** - Präsentationsobjekte generieren:" 158 (cd $POSTNAS_HOME; psql -p 5432 -d ${DBNAME} -f pp_praesentation_action.sql) 159 151 160 fi 152 161 # 153 162 if [ "$(readlink $POSTNAS_HOME/alkis-trigger.sql)" = "alkis-trigger-kill.sql" ]; then 154 163 # Durch Einfuegen in Tabelle 'delete' werden Loeschungen anderer Tabellen getriggert … … 167 176 #echo " ... geendete Objekte entfernen wurde fuer Test dektiviert." 168 177 #echo " Bitte manuell ausfuehren: SELECT alkis_delete_all_endet(); " 169 #170 echo "Das Fehler-Protokoll wurde ausgegeben in die Datei $errprot"171 #echo "HINWEIS: -skipfailures fuer Produktion wieder einschalten."172 178 fi 179 echo "Das Fehler-Protokoll wurde ausgegeben in die Datei $errprot" 180 #echo "HINWEIS: -skipfailures fuer Produktion wieder einschalten." -
trunk/import/pp_praesentation_action.sql
r293 r294 4 4 -- Post Processing (pp_) Teil 3: PrÀsentationsobjekte ergÀnzen / reparieren 5 5 6 -- Dies Script "pp_praesentation_action.sql" dient der Reparatur von fehlenden PrÀsentationsobjekten. 7 -- Voraussetzung ist, dass vorher das Script "pp_praesentation_sichten.sql" verarbeitet wurde. 8 6 -- Dies Script "pp_praesentation_action.sql" dient der Reparatur von fehlenden Texten in PrÀsentationsobjekten. 9 7 -- Dies Script muss im Rahmen des Post-Processing nach jeder Konvertierung laufen. 10 -- Das Sichten-Sript muss nur beim Anlegen der Datenbank einmalig verarbeitet werden8 -- Kommantare und ErlÀuterungen siehe in "pp_praesentation_sichten.sql". 11 9 12 10 -- Stand 13 11 -- 2013-10-16 F.J. krz: StraÃennamen fehlen in den PrÀsentationsobjekten, Tabelle "ap_pto" 12 -- 2013-10-17 F.J. krz: Relation "dientZurDarstellungVon" macht es einfacher 13 14 -- ToDo: 15 -- Konverter-Tabelle ap_pto unberÃŒhrt lassen. 16 -- Besser aus ap_pto und den ErgÀnzungen eine PrÀsentationstabelle fÃŒr StraÃen fÃŒr den WMS exportieren. 17 -- Es besteht sonst die Gefahr, dass Ãnderungen im Katalog nicht in PTO ÃŒbernommen werden (nur bei: WHERE .. IS NULL) 14 18 15 19 -- ======================================== … … 17 21 -- ======================================== 18 22 19 --20 -- Weitere Kommantare und ErlÀuterungen siehe in "pp_praesentation_sichten.sql".21 --22 23 -- Reparatur Sonderfall24 -- ====================25 26 -- Gibt es FÀlle, wo der Label in einem benachbarten FS liegt?27 -- Hat er dann einen Zuordnungspfeil?28 -- Dann mÃŒssten diese SonderfÀlle zuerst gefÃŒllt werden.29 30 31 32 -- Reparatur Normalfall33 -- ====================34 35 -- Label >liegt in> FlurstÃŒck >zeigtAuf> Lage o.H. --> Katalog36 -- (Geometrisch) (Alkis_Beziehung) (JOIN)37 38 23 -- N a m e n 39 24 UPDATE ap_pto p -- PrÀsentationsobjekte Punktförmig 40 25 SET schriftinhalt = -- Hier fehlt der Label 41 26 -- Subquery "Gib mir den StraÃennamen": 42 -- Diese Subquery darf nur eine einzige Zeile liefern damit der Inhalt in eine Spalte passt. 43 (SELECT k.bezeichnung -- StraÃenname ... 44 FROM ax_lagebezeichnungkatalogeintrag k -- .. aus Katalog 45 JOIN ax_lagebezeichnungohnehausnummer l -- wobei dieser Katalogeintrag 46 ON k.land=l.land 47 AND k.regierungsbezirk=l.regierungsbezirk 48 AND k.kreis=l.kreis 49 AND k.gemeinde=l.gemeinde 50 AND k.lage=l.lage 51 JOIN alkis_beziehungen b ON l.gml_id = b.beziehung_zu -- in Beziehung steht 52 JOIN ax_flurstueck f ON f.gml_id = b.beziehung_von -- zu dem FlurstÃŒck 53 WHERE b.beziehungsart = 'zeigtAuf' 54 AND ST_Within(p.wkb_geometry, f.wkb_geometry) -- in dessen FlÀche der Label liegt 55 --LIMIT 1 -- siehe unten ! 56 ) 57 WHERE p.art = 'Strasse' -- Filter 27 ( SELECT k.bezeichnung -- StraÃenname .. 28 FROM ax_lagebezeichnungkatalogeintrag k -- .. aus Katalog 29 JOIN ax_lagebezeichnungohnehausnummer l -- verwendet als Lage o.H. 30 ON (k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk 31 AND k.kreis=l.kreis AND k.gemeinde=l.gemeinde AND k.lage=l.lage ) 32 JOIN alkis_beziehungen x ON l.gml_id = x.beziehung_zu -- Relation zum PrÀsentationsobjekt 33 WHERE p.gml_id = x.beziehung_von 34 AND x.beziehungsart = 'dientZurDarstellungVon' 35 -- LIMIT 1 -- war in einem Fall notwendig, wo 2mal der gleiche Text zugeordnet war, Ursache? 36 ) 37 WHERE p.art = 'Strasse' -- Filter 58 38 AND p.schriftinhalt IS NULL 59 AND NOT p.wkb_geometry IS NULL 60 -- Die ap_pto zunÀchst auslassen, zu dessen FlurstÃŒcken es mehrere Lagebezeichnungen gibt. 61 AND p.gml_id NOT IN (SELECT * FROM pp_praes_strassen_name_ausnahmen); -- siehe unten ! 39 AND NOT p.wkb_geometry IS NULL; 62 40 63 41 64 -- "LIMIT 1" wozu? 65 66 -- Es wird möglicherweise mal mehr als 1 Wert je Subquery geliefert. 67 -- Dann ist dies SQL nicht ausfÃŒhrbar und bricht ab. 68 69 -- In den Testdaten "Mustermonzel" sind Name und Klassifikation nicht unterscheidbar weil 70 -- die Klassifikation nicht als art='BezKlassifizierungStrasse' sondern auch als art='strasse' 71 -- eingetragen ist. Dann werden 2 Zeilen geliefert, die AusfÃŒhrung bricht ab. 72 73 -- In aktuellen Daten ist diese Ursache ausgeschaltet. 74 -- Es gibt trotzdem SonderfÀlle, bei dem mehrere Werte geliefert werden. 75 -- Wenn das ÃŒber die Verschneidung gefundene FlurstÃŒcke mehrer "Lagebezeichnung ohne Hausnummer" hat, 76 -- dann kann zur Zeit nicht jedes dieser Label der passenden Position aus ap_pto zugewiesen weden. 77 -- Die obige Lösung funktioniert nur bei 1:1-Konstallationen. 78 79 -- Welcher Label gehört dann zu welcher Position? 80 -- Es gibt keine Verbindung (alkis_beziehung) zwischen "ap_pto" und "lagebezeichnung*". 81 82 -- Die Lösung ÃŒber "LIMIT 1" macht die Query ausfÃŒhrbar, fÃŒhrt aber dazu, dass nur einer der 83 -- mehrfachen Label an allen Positionen angezeigt wird, was falsch ist. 84 85 -- Die alternative Lösung ÃŒber 86 -- "p.gml_id NOT IN (SELECT * FROM pp_praes_strassen_name_ausnahmen)" 87 -- lÀsst die Label dagegen zunÀchst leer. 88 -- Diese FÀlle bleiben dann durch obigen Views weiterhin erkennbar. 89 90 91 -- K l a s s i f i k a t i o n e n 92 -- (analog zu strassen) 42 -- K l a s s i f i k a t i o n e n (analog zu Strassen) 93 43 UPDATE ap_pto p -- PrÀsentationsobjekte Punktförmig 94 44 SET schriftinhalt = -- Hier fehlt der Label 95 -- Subquery "Gib mir die StraÃen-Klassifikation": 96 -- Diese Subquery darf nur eine einzige Zeile liefern damit der Inhalt in eine Spalte passt. 97 (SELECT k.bezeichnung -- StraÃenname ... 98 FROM ax_lagebezeichnungkatalogeintrag k -- .. aus Katalog 99 JOIN ax_lagebezeichnungohnehausnummer l -- wobei dieser Katalogeintrag 100 ON k.land=l.land 101 AND k.regierungsbezirk=l.regierungsbezirk 102 AND k.kreis=l.kreis 103 AND k.gemeinde=l.gemeinde 104 AND k.lage=l.lage 105 JOIN alkis_beziehungen b ON l.gml_id = b.beziehung_zu -- in Beziehung steht 106 JOIN ax_flurstueck f ON f.gml_id = b.beziehung_von -- zu dem FlurstÃŒck 107 WHERE b.beziehungsart = 'zeigtAuf' 108 AND ST_Within(p.wkb_geometry, f.wkb_geometry) -- in dessen FlÀche der Label liegt 109 -- LIMIT 1 110 ) 45 ( SELECT k.bezeichnung -- Klassifikation "B nnn", "L nnn", "K nnn" 46 FROM ax_lagebezeichnungkatalogeintrag k -- .. aus Katalog 47 JOIN ax_lagebezeichnungohnehausnummer l -- verwendet als Lage o.H. 48 ON (k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk 49 AND k.kreis=l.kreis AND k.gemeinde=l.gemeinde AND k.lage=l.lage ) 50 JOIN alkis_beziehungen x ON l.gml_id = x.beziehung_zu -- Relation zum PrÀsentationsobjekt 51 WHERE p.gml_id = x.beziehung_von 52 AND x.beziehungsart = 'dientZurDarstellungVon' 53 ) 111 54 WHERE p.art = 'BezKlassifizierungStrasse' -- Filter 112 55 AND p.schriftinhalt IS NULL -
trunk/import/pp_praesentation_sichten.sql
r293 r294 4 4 -- Post Processing (pp_) Teil 3: PrÀsentationsobjekte ergÀnzen / reparieren 5 5 6 -- Dies Script "pp_praesentation_sichten.sql" dient der Vor bereitungder Reparatur,6 -- Dies Script "pp_praesentation_sichten.sql" dient der Vorschau der Reparatur, 7 7 -- die mit dem Script "pp_praesentation_action.sql" durchgefÃŒhrt wird. 8 8 9 -- Dies Script mussbeim Anlegen der Datenbank verarbeitet werden und wenn sich die Sichten verÀndert haben.9 -- Dies Script kann beim Anlegen der Datenbank verarbeitet werden und wenn sich die Sichten verÀndert haben. 10 10 -- Das Action-Script muss im Rahmen des Post-Processing nach jeder Konvertierung laufen. 11 11 12 12 -- Stand 13 13 -- 2013-10-16 F.J. krz: StraÃennamen fehlen in den PrÀsentationsobjekten, Tabelle "ap_pto" 14 -- 2013-10-17 F.J. krz: Relation "dientZurDarstellungVon" macht es einfacher 14 15 15 16 … … 40 41 -- FÃŒr die Darstellung im Kartenbild ist der gleiche Name oder eine Variante davon (AbkÃŒrzung, getrennt-Schreibung) 41 42 -- auch in jedem PrÀsentationsobjekt noch einmal abgelegt. 42 -- Diese Redundanz fÃŒhrt bei einer Ãnderung des Namens zu einem erhöhten Aufwand .43 -- Diese Redundanz fÃŒhrt bei einer Ãnderung des Namens zu einem erhöhten Aufwand, weil er an mehreren Stellen geÀndrt werden muss.. 43 44 -- Ziel ist es daher, die identischen Kopien des Namens-Textes in "ap_pto" nicht mehr zu fÃŒhren. 44 -- Dort ist nur noch dann ein Eintrag zu finden, wenn Text (oder Signaturnummer?) nicht identisch sind.45 -- Dort ist nur noch dann ein Eintrag zu finden, wenn der Text nicht identisch sind (AbkÃŒrzung, Getrennt-Schreibung). 45 46 46 -- Signaturnummern werden auch nur noch dannerfasst, wenn mehrere Werte möglich sind.47 -- Signaturnummern werden in ap_pto nur noch erfasst, wenn mehrere Werte möglich sind. 47 48 48 49 -- In Niedersachsen wurde oder wird das Löschen der identischen Texte in ap_pto möglicherweise als Nachmigration gezielt … … 52 53 53 54 54 -- Es soll versucht werden, dies Label durch die Zuordnung der Schrift-Position55 -- in einem FlurstÃŒck und ÃŒber dessen Lagebezeichnung zu rekonstruieren.56 57 -- "Label" >liegt in> "FlurstÃŒck" >hat Lagebezeichnung> "StraÃenname"58 -- (geometrische (Beziehung)59 -- Verschniedung)60 61 62 55 -- Simulation der Fehlersituation in einem TEST-Bestand 63 56 -- ---------------------------------------------------- 64 65 57 -- VORSICHT! - Nur in einer Test-Kopie ausfÃŒhren. Löscht Daten! 66 67 58 -- UPDATE ap_pto SET schriftinhalt = NULL WHERE art = 'Strasse'; 68 59 -- UPDATE ap_pto SET schriftinhalt = NULL WHERE art = 'BezKlassifizierungStrasse'; … … 73 64 74 65 -- Diese Views ermitteln, ob der Fall im vorliegenden Datenbestand vorkommt. 75 -- Dies ist in zunehmend in Niedersachsen der Fall.76 66 77 -- In NRW-Daten wurden weniger FÀlle gefunden. 67 -- Dies ist in zunehmend in Niedersachsen der Fall. 68 -- In NRW-Daten wurden weniger FÀlle gefunden. Dann ist jeweils auch die Signaturnummer leer. 69 -- Daher sollte "signaturnummer" nicht als Filter bei der "Reparatur" verwendet werden. 78 70 79 -- Dann ist jeweils auch die Signaturnummer leer. 80 -- Daher sollte "signaturnummer" nicht als Filter bei der "Reparatur" verwendet werden. 71 72 -- Aus VorgÀngerversion, nicht mehr relevant: 73 -- DROP VIEW pp_praes_strassen_name_ausnahmen; 74 -- DROP VIEW pp_praes_strassen_name_mehrfach; 81 75 82 76 … … 107 101 108 102 109 -- Diese Views sollen zeigen, welche Namen in ap_pto.schriftinhalteingesetzt werden,103 -- Diese Views sollen zeigen, welche Namen in "ap_pto.schriftinhalt" eingesetzt werden, 110 104 -- wenn die nachfolgenden update-Befehle ausgefÃŒhrt werden. 111 105 112 106 -- Dies dient wÀhrend der Entwicklung zu manuellen Vorab-Kontrolle. 113 107 -- Wenn hier keine Zeilen ausgegeben werden, kann die AusfÃŒhrung dieses Scriptes im Workflow ausgeschaltet werden. 114 -- Dann sind (Bundesland-spezifisch) die Namen bereits gefÃŒllt und brauchen nicht 115 -- auf diese Weise rekonstruiert werden. 116 117 -- An einem Referenzbestand (amtliche Karte?) kann/sollte kontrolliert werden, 118 -- ob die richtigen Namen zugeordnet werden. 108 -- Dann sind die Namen noch gefÃŒllt und brauchen nicht auf diese Weise rekonstruiert werden. 119 109 120 110 121 --DROP VIEW pp_praes_strassen_name_update_vorschau;111 DROP VIEW pp_praes_strassen_name_update_vorschau; 122 112 CREATE OR REPLACE VIEW pp_praes_strassen_name_update_vorschau 123 113 AS 124 SELECT f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler || '/' || 125 coalesce(cast(f.nenner as character varying), '') AS fskennz, -- FlurstÃŒckskennzeichen zur Eingabe in Navigation 126 f.gml_id AS gml_fs, -- ID des FlurstÃŒcks zum Nachsehen in der Auskunft (PHP/HTML) 127 -- p.gml_id AS gml_pto, 128 k.bezeichnung, -- der Name aus dem Katalog, der nach ap_pto kopiert wird 129 st_asewkt(p.wkb_geometry) AS label_geom -- Lesbare Koordinaten: Wo liegt der Label? 130 FROM ax_lagebezeichnungkatalogeintrag k -- Katalog enthÀlt den StraÃennamen 131 JOIN ax_lagebezeichnungohnehausnummer l -- Diese Eintrag ist dem FlurstÃŒck als Lage o. HsNr. zugeordnet 132 ON ( k.land=l.land 133 AND k.regierungsbezirk=l.regierungsbezirk 134 AND k.kreis=l.kreis 135 AND k.gemeinde=l.gemeinde 136 AND k.lage=l.lage ) 137 JOIN alkis_beziehungen b ON l.gml_id = b.beziehung_zu 138 JOIN ax_flurstueck f ON f.gml_id = b.beziehung_von -- FlurstÃŒck .. 139 JOIN ap_pto p ON ST_Within(p.wkb_geometry, f.wkb_geometry) -- in dessen FlÀche die Label-Position liegt 140 WHERE p."art" = 'Strasse' -- Filter 141 AND p.schriftinhalt IS NULL -- Text fehlt in ap_pto 142 AND NOT (p.wkb_geometry IS NULL) -- hat aber eine Position in ap_pto 143 AND b.beziehungsart = 'zeigtAuf' -- Relation FlurstÃŒck - Lage o.HsNr 144 -- AND k.bezeichnung = 'Unter der Treff' -- kleiner Test in Mustermonzel Testdaten 145 ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner; 114 SELECT -- p.gml_id AS gml_pto, 115 k.bezeichnung, -- der Name aus dem Katalog, der nach ap_pto kopiert wird 116 st_asewkt(p.wkb_geometry) AS label_geom -- Lesbare Koordinaten: Wo liegt der Label? 117 FROM ax_lagebezeichnungkatalogeintrag k -- Katalog enthÀlt den StraÃennamen 118 JOIN ax_lagebezeichnungohnehausnummer l -- dient als Lage ohne HsNr. 119 ON ( k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk 120 AND k.kreis=l.kreis AND k.gemeinde=l.gemeinde AND k.lage=l.lage ) 121 JOIN alkis_beziehungen x ON l.gml_id = x.beziehung_zu -- Relation .. 122 JOIN ap_pto p ON p.gml_id = x.beziehung_von -- .. zum PrÀsentationsobjekt 123 WHERE p."art" = 'Strasse' -- Filter 124 AND p.schriftinhalt IS NULL -- Text fehlt in ap_pto 125 AND NOT (p.wkb_geometry IS NULL) -- hat aber eine Position in ap_pto 126 AND x.beziehungsart = 'dientZurDarstellungVon'; -- Relation PTO - Lage o.HsNr 146 127 147 128 COMMENT ON VIEW pp_praes_strassen_name_update_vorschau … … 149 130 150 131 151 -- Werden hier zu einem PTO möglicherweise mal mehrere Werte geliefert? 152 -- In diesen Problem-FÀllen liefert die Subquery im Update (ohne Limit 1) mehrere Zeilen fÃŒr ein Feld. 153 154 --DROP VIEW pp_praes_strassen_name_mehrfach; 155 CREATE OR REPLACE VIEW pp_praes_strassen_name_mehrfach 156 AS 157 SELECT p.gml_id, p.advstandardmodell, 158 st_asewkt(p.wkb_geometry) AS label_geom, -- Wo liegt der Label? 159 (SELECT f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler || '/' || 160 coalesce(cast(f.nenner as character varying), '') AS fskennz -- FlurstÃŒckskennzeichen zur Eingabe in Navigation 161 FROM ax_flurstueck f 162 WHERE ST_Within(p.wkb_geometry, f.wkb_geometry) 163 ) AS flurstueck 164 FROM ap_pto p 165 WHERE p.art = 'Strasse' 166 AND p.schriftinhalt IS NULL 167 AND NOT p.wkb_geometry IS NULL 168 AND (SELECT count(k.bezeichnung) AS anzahl_label -- die Subquery aus dem Update 169 FROM ax_lagebezeichnungkatalogeintrag k 170 JOIN ax_lagebezeichnungohnehausnummer l 171 ON k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk AND k.kreis=l.kreis 172 AND k.gemeinde=l.gemeinde AND k.lage=l.lage 173 JOIN alkis_beziehungen b ON l.gml_id = b.beziehung_zu 174 JOIN ax_flurstueck f ON f.gml_id = b.beziehung_von 175 WHERE b.beziehungsart = 'zeigtAuf' 176 AND ST_Within(p.wkb_geometry, f.wkb_geometry) 177 ) > 1 178 ORDER BY p.gml_id, p.advstandardmodell; 179 180 COMMENT ON VIEW pp_praes_strassen_name_mehrfach 181 IS 'PrÀsentationsobjekt zu StraÃen. Zu einem PTO werden ÃŒber das FlurstÃŒck mehrere Texte gefunden.'; 182 183 184 -- Work-Arround, bis die eindeutige Zuordnung von "ap_pto" zu "lagebezeichnung*" geklÀrt ist. 185 186 -- Wie "pp_praes_strassen_name_mehrfach" aber nur eine Liste der gml_id liefern um 187 -- diese beim Update (vorlÀufig) auszuschlieÃen. 188 189 --DROP VIEW pp_praes_strassen_name_ausnahmen; 190 CREATE OR REPLACE VIEW pp_praes_strassen_name_ausnahmen 191 AS 192 SELECT p.gml_id 193 FROM ap_pto p 194 WHERE p.art = 'Strasse' 195 AND p.schriftinhalt IS NULL 196 AND NOT p.wkb_geometry IS NULL 197 AND (SELECT count(k.bezeichnung) AS anzahl_label -- die Subquery aus dem Update 198 FROM ax_lagebezeichnungkatalogeintrag k 199 JOIN ax_lagebezeichnungohnehausnummer l 200 ON k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk AND k.kreis=l.kreis 201 AND k.gemeinde=l.gemeinde AND k.lage=l.lage 202 JOIN alkis_beziehungen b ON l.gml_id = b.beziehung_zu 203 JOIN ax_flurstueck f ON f.gml_id = b.beziehung_von 204 WHERE b.beziehungsart = 'zeigtAuf' 205 AND ST_Within(p.wkb_geometry, f.wkb_geometry) 206 ) > 1; 207 208 COMMENT ON VIEW pp_praes_strassen_name_ausnahmen 209 IS 'PrÀsentationsobjekt zu StraÃen. Zu einem PTO werden ÃŒber das FlurstÃŒck mehrere Texte gefunden. Liefert Liste der gml_is, die beim Update ausgenommen werden mÃŒssen.'; 210 211 212 --DROP VIEW pp_praes_strassen_klass_update_vorschau; 132 DROP VIEW pp_praes_strassen_klass_update_vorschau; 213 133 CREATE OR REPLACE VIEW pp_praes_strassen_klass_update_vorschau 214 134 AS 215 SELECT p.gml_id, -- ID des FlurstÃŒcks zum Nachsehen in der Auskunft (PHP/HTML) 216 f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler || '/' || 217 coalesce(cast(f.nenner as character varying), '') AS fskennz, -- FlurstÃŒckskennzeichen zur Eingabe in Navigation 218 k.bezeichnung, -- der Name aus dem Katalog, der nach ap_pto kopiert wird 219 st_asewkt(p.wkb_geometry) AS label_geom -- Lesbare Koordinaten: Wo liegt der Label? 220 FROM ax_lagebezeichnungkatalogeintrag k -- Katalog enthÀlt den StraÃennamen 221 JOIN ax_lagebezeichnungohnehausnummer l -- Diese Eintrag ist dem FlurstÃŒck als Lage o. HsNr. zugeordnet 222 ON (k.land=l.land 223 AND k.regierungsbezirk=l.regierungsbezirk 224 AND k.kreis=l.kreis 225 AND k.gemeinde=l.gemeinde 226 AND k.lage=l.lage) 227 JOIN alkis_beziehungen b ON l.gml_id = b.beziehung_zu 228 JOIN ax_flurstueck f ON f.gml_id = b.beziehung_von -- FlurstÃŒck .. 229 JOIN ap_pto p ON ST_Within(p.wkb_geometry, f.wkb_geometry) -- in dessen FlÀche die Label-Position liegt 230 WHERE p."art" = 'BezKlassifizierungStrasse' -- Filter 231 AND p.schriftinhalt IS NULL -- Text fehlt in ap_pto 232 AND NOT (p.wkb_geometry IS NULL) -- hat aber eine Position in ap_pto 233 AND b.beziehungsart = 'zeigtAuf' -- Relation FlurstÃŒck - Lage o.HsNr 234 ORDER BY f.flurnummer, f.zaehler, f.nenner; 135 SELECT -- p.gml_id AS gml_pto, 136 k.bezeichnung, -- der Name aus dem Katalog, der nach ap_pto kopiert wird 137 st_asewkt(p.wkb_geometry) AS label_geom -- Lesbare Koordinaten: Wo liegt der Label? 138 FROM ax_lagebezeichnungkatalogeintrag k -- Katalog enthÀlt den StraÃennamen 139 JOIN ax_lagebezeichnungohnehausnummer l -- dient als Lage ohne HsNr. 140 ON ( k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk 141 AND k.kreis=l.kreis AND k.gemeinde=l.gemeinde AND k.lage=l.lage ) 142 JOIN alkis_beziehungen x ON l.gml_id = x.beziehung_zu -- Relation .. 143 JOIN ap_pto p ON p.gml_id = x.beziehung_von -- .. zum PrÀsentationsobjekt 144 WHERE p."art" = 'BezKlassifizierungStrasse' -- Filter 145 AND p.schriftinhalt IS NULL -- Text fehlt in ap_pto 146 AND NOT (p.wkb_geometry IS NULL) -- hat aber eine Position in ap_pto 147 AND x.beziehungsart = 'dientZurDarstellungVon'; -- Relation PTO - Lage o.HsNr 235 148 236 149 COMMENT ON VIEW pp_praes_strassen_klass_update_vorschau 237 150 IS 'PrÀsentationsobjekt zu StraÃen. Vorschau zum Update der Klassifikation der in ap_pto.'; 238 151 239 240 152 -- ENDE --
Note: See TracChangeset
for help on using the changeset viewer.