source: branches/0.7/import/pp_praesentation_sichten.sql @ 329

Revision 296, 7.4 KB checked in by frank.jaeger, 10 years ago (diff)

PostProcesssing? Straßen-Namen, Tab pp_strassenname ersetzt ap_pto_stra

  • Property svn:keywords set to Id
Line 
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;
78CREATE OR REPLACE VIEW pp_praes_strassen_name_leer
79AS
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;
86COMMENT 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;
91CREATE OR REPLACE VIEW pp_praes_strassen_klass_leer
92AS
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;
99COMMENT 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;
112CREATE OR REPLACE VIEW pp_praes_strassen_name_update_vorschau
113AS
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
128COMMENT 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;
133CREATE OR REPLACE VIEW pp_praes_strassen_klass_update_vorschau
134AS
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
149COMMENT 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 --
Note: See TracBrowser for help on using the repository browser.