1 | |
---|
2 | -- ALKIS PostNAS 0.7 |
---|
3 | |
---|
4 | -- Post Processing (pp_) Teil 3: PrÀsentationsobjekte ergÀnzen / reparieren |
---|
5 | |
---|
6 | -- Dies Script "pp_praesentation_sichten.sql" dient der Vorschau der Reparatur, |
---|
7 | -- die mit dem Script "pp_praesentation_action.sql" durchgefÃŒhrt wird. |
---|
8 | |
---|
9 | -- Dies Script kann beim Anlegen der Datenbank verarbeitet werden und wenn sich die Sichten verÀndert haben. |
---|
10 | -- Das Action-Script muss im Rahmen des Post-Processing nach jeder Konvertierung laufen. |
---|
11 | |
---|
12 | -- Stand |
---|
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 |
---|
15 | |
---|
16 | |
---|
17 | -- ======================================== |
---|
18 | -- StraÃen-Namen und StraÃen-Klassifikation |
---|
19 | -- ======================================== |
---|
20 | |
---|
21 | -- Bei den NAS-Daten, die vom Land Niedersachsen an die Kommunen abgegeben werden, |
---|
22 | -- tritt in zunehmenden Umfang folgendes Problem auf (Stand Oktober 2013): |
---|
23 | |
---|
24 | -- Die Namen und Klassifikationen der StraÃen fehlen in der Tabelle "ap_pto". |
---|
25 | -- Somit fehlt das Label fÃŒr die Darstellung des StraÃennamens in der Karte. |
---|
26 | -- Position und Drehwinkel sind dort aber noch vorhanden. |
---|
27 | |
---|
28 | -- Der Name, der in anderen Tabellen vorhanden ist, muss nach "ap_pto" kopiert werden, |
---|
29 | -- damit die WMS-Kartendarstellung wieder komplett ist. |
---|
30 | |
---|
31 | -- Tabelle: ap_pto |
---|
32 | -- Spalten: |
---|
33 | -- art: 'strasse', 'BezKlassifizierungStrasse' |
---|
34 | -- schriftinhalt: leer |
---|
35 | -- signaturnummer: ?? |
---|
36 | -- drehwinkel und wkb_geometry: gefÃŒllt |
---|
37 | |
---|
38 | -- Hintergrund: |
---|
39 | -- Der StraÃenname ist nach der Migration der ALKIS-Daten aus ALB und ALK zunÀchst redundant gespeichert worden. |
---|
40 | -- Er befindet sich "im Original" in "ax_lagebezeichnungkatalogeintrag.bezeichnung". |
---|
41 | -- FÃŒr die Darstellung im Kartenbild ist der gleiche Name oder eine Variante davon (AbkÃŒrzung, getrennt-Schreibung) |
---|
42 | -- auch in jedem PrÀsentationsobjekt noch einmal abgelegt. |
---|
43 | -- Diese Redundanz fÃŒhrt bei einer Ãnderung des Namens zu einem erhöhten Aufwand, weil er an mehreren Stellen geÀndrt werden muss.. |
---|
44 | -- Ziel ist es daher, die identischen Kopien des Namens-Textes in "ap_pto" nicht mehr zu fÃŒhren. |
---|
45 | -- Dort ist nur noch dann ein Eintrag zu finden, wenn der Text nicht identisch sind (AbkÃŒrzung, Getrennt-Schreibung). |
---|
46 | |
---|
47 | -- Signaturnummern werden in ap_pto nur noch erfasst, wenn mehrere Werte möglich sind. |
---|
48 | |
---|
49 | -- In Niedersachsen wurde oder wird das Löschen der identischen Texte in ap_pto möglicherweise als Nachmigration gezielt |
---|
50 | -- durchgefÌhrt. Die Mehrzahl der Texte ist bereits gelöscht! |
---|
51 | -- In NRW tritt dies erst seit dem letzten Update der EQK (ibR, Stand Oktober 2013) zunÀchst bei den FÀllen auf, |
---|
52 | -- die seit dem Update fortgefÃŒhrt wurden. Eine groÃflÀchige gezielte Entfernung wurde nicht bemerkt. |
---|
53 | |
---|
54 | |
---|
55 | -- Simulation der Fehlersituation in einem TEST-Bestand |
---|
56 | -- ---------------------------------------------------- |
---|
57 | -- VORSICHT! - Nur in einer Test-Kopie ausfÌhren. Löscht Daten! |
---|
58 | -- UPDATE ap_pto SET schriftinhalt = NULL WHERE art = 'Strasse'; |
---|
59 | -- UPDATE ap_pto SET schriftinhalt = NULL WHERE art = 'BezKlassifizierungStrasse'; |
---|
60 | |
---|
61 | |
---|
62 | -- Anzeige der leeren SÀtze |
---|
63 | -- --------------------------------------- |
---|
64 | |
---|
65 | -- Diese Views ermitteln, ob der Fall im vorliegenden Datenbestand vorkommt. |
---|
66 | |
---|
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. |
---|
70 | |
---|
71 | |
---|
72 | -- Aus VorgÀngerversion, nicht mehr relevant: |
---|
73 | -- DROP VIEW pp_praes_strassen_name_ausnahmen; |
---|
74 | -- DROP VIEW pp_praes_strassen_name_mehrfach; |
---|
75 | |
---|
76 | |
---|
77 | -- DROP VIEW pp_praes_strassen_name_leer; |
---|
78 | CREATE OR REPLACE VIEW pp_praes_strassen_name_leer |
---|
79 | AS |
---|
80 | SELECT gml_id, schriftinhalt, signaturnummer, art, drehwinkel |
---|
81 | FROM ap_pto |
---|
82 | WHERE schriftinhalt IS NULL |
---|
83 | AND art = 'Strasse' |
---|
84 | -- AND (signaturnummer = '4107' OR signaturnummer = '8113') -- char |
---|
85 | ; |
---|
86 | COMMENT ON VIEW pp_praes_strassen_name_leer |
---|
87 | IS 'Es fehlt der Name der StraÃe in der PrÀsentationstabelle ap_pto.'; |
---|
88 | |
---|
89 | |
---|
90 | --DROP VIEW pp_praes_strassen_klass_leer; |
---|
91 | CREATE OR REPLACE VIEW pp_praes_strassen_klass_leer |
---|
92 | AS |
---|
93 | SELECT gml_id, schriftinhalt, signaturnummer, art, drehwinkel |
---|
94 | FROM ap_pto |
---|
95 | WHERE schriftinhalt IS NULL -- oder '' ? |
---|
96 | AND art = 'BezKlassifizierungStrasse' |
---|
97 | -- AND (signaturnummer = '4080' OR signaturnummer = '4140' OR signaturnummer = '8115') |
---|
98 | ; |
---|
99 | COMMENT ON VIEW pp_praes_strassen_klass_leer |
---|
100 | IS 'Es fehlt die Klassifikation der StraÃe in der PrÀsentationstabelle ap_pto.'; |
---|
101 | |
---|
102 | |
---|
103 | -- Diese Views sollen zeigen, welche Namen in "ap_pto.schriftinhalt" eingesetzt werden, |
---|
104 | -- wenn die nachfolgenden update-Befehle ausgefÃŒhrt werden. |
---|
105 | |
---|
106 | -- Dies dient wÀhrend der Entwicklung zu manuellen Vorab-Kontrolle. |
---|
107 | -- Wenn hier keine Zeilen ausgegeben werden, kann die AusfÃŒhrung dieses Scriptes im Workflow ausgeschaltet werden. |
---|
108 | -- Dann sind die Namen noch gefÃŒllt und brauchen nicht auf diese Weise rekonstruiert werden. |
---|
109 | |
---|
110 | |
---|
111 | --DROP VIEW pp_praes_strassen_name_update_vorschau; |
---|
112 | CREATE OR REPLACE VIEW pp_praes_strassen_name_update_vorschau |
---|
113 | AS |
---|
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 |
---|
127 | |
---|
128 | COMMENT ON VIEW pp_praes_strassen_name_update_vorschau |
---|
129 | IS 'PrÀsentationsobjekt zu StraÃen. Vorschau zum Update des Namens der in ap_pto.'; |
---|
130 | |
---|
131 | |
---|
132 | --DROP VIEW pp_praes_strassen_klass_update_vorschau; |
---|
133 | CREATE OR REPLACE VIEW pp_praes_strassen_klass_update_vorschau |
---|
134 | AS |
---|
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 |
---|
148 | |
---|
149 | COMMENT ON VIEW pp_praes_strassen_klass_update_vorschau |
---|
150 | IS 'PrÀsentationsobjekt zu StraÃen. Vorschau zum Update der Klassifikation der in ap_pto.'; |
---|
151 | |
---|
152 | -- ENDE -- |
---|