Changeset 294 for trunk/import/pp_praesentation_action.sql
- Timestamp:
- 10/17/13 15:28:48 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
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
Note: See TracChangeset
for help on using the changeset viewer.