source: trunk/data/konvert/postnas_0.5/alkis_sichten.sql @ 60

Revision 60, 10.3 KB checked in by frank.jaeger, 11 years ago (diff)
Line 
1-- =====
2-- ALKIS
3-- =====
4
5--  PostNAS 0.3, 24.02.2009  R. Segsa, DT
6
7--  PostNAS 0.4, 02.04.2009
8
9--  PostNAS 0.5,
10--   06.01.2010  F, Jaeger, KRZ
11--   21.01.2010  F.J. ap-pto.art
12--   14.06.2010  F.J. GRANT entfernt
13--   24.09.2010  F.J. "s_flurstueck_nr" ersetzt "s_flurstuecksnummer_flurstueck" (Bruchnummer)
14--   01.12.2010  F.J. Gemeinde/Gemarkung
15
16--   Verbindungen werden seit PostNAS 0.5 nicht mehr nachtrÀglich mit einem Script generiert
17--   sondern vom Konverter PostNAS gesetzt.
18--   Jetzt zentrale Tabelle "alkis_beziehungen" statt der Felder (ForeignKey) in den einzelnen Tabellen.
19
20
21--  -----------------------------------------
22--  Sichten fuer Verwendung im mapfiles (wms)
23--  -----------------------------------------
24
25
26-- Layer "ag_t_flurstueck"
27-- -----------------------
28
29-- Die Geometrie befindet sich in "ap_pto", der Label in "ax_flurstueck"
30-- Die Verbindung erfolgt ÃŒber "alkis_beziehungen"
31
32-- PostNAS 0.5, September 2010:
33--   Musterdaten RLP: zaehler-nenner steht auch in Feld "ap_pto.schriftinhalt"
34--   Lippe NRW:       Feld "ap_pto.schriftinhalt" ist leer. Label aus Tabelle "ax_flurstueck" entnehmen
35
36
37-- In einigen Gebieten enthÀlt das Feld "ap_pto.art"
38-- nicht den Wert 'ZAE_NEN' sondern 'urn:adv:fachdatenverbindung'.
39-- Die FlurstÃŒcksnummer fehlt dann im WMS.
40-- Die Bedingung vorÌbergehend heraus nehmen. Ursache klÀren!
41
42
43-- Version "s_flurstuecksnummer_flurstueck" bis 24.09.2010,
44-- wird ersetzt durch "s_flurstueck_nr"
45
46--CREATE OR REPLACE VIEW s_flurstuecksnummer_flurstueck
47--AS
48-- SELECT ap_pto.ogc_fid,
49--        ap_pto.wkb_geometry,
50--        ax_flurstueck.flurstueckskennzeichen,
51--        ax_flurstueck.zaehler,                 -- umn: LABELITEM
52--        ax_flurstueck.nenner
53--   FROM ap_pto
54--   JOIN alkis_beziehungen
55--     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
56--   JOIN ax_flurstueck
57--     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
58--  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
59
60
61-- Bruchnummerierung erzeugen
62-- (ersetzt s_flurstuecksnummer_flurstueck ab Sept. 2010)
63--DROP VIEW s_flurstueck_nr;
64CREATE OR REPLACE VIEW s_flurstueck_nr
65AS
66 SELECT ap_pto.ogc_fid,
67        ap_pto.wkb_geometry,   -- Position des Textes
68    --  ax_flurstueck.flurstueckskennzeichen,   -- am Stueck, aufgefuellt, unpraktisch
69    --  ax_flurstueck.gemarkungsnummer,  -- integer
70    --  ax_flurstueck.flurnummer,        -- integer
71    --  ax_flurstueck.zaehler,           -- integer
72    --  ax_flurstueck.nenner,            -- integer oder NULL
73        ax_flurstueck.zaehler::text || COALESCE ('/' || ax_flurstueck.nenner::text, '') AS fsnum
74   FROM ap_pto
75   JOIN alkis_beziehungen
76     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
77   JOIN ax_flurstueck
78     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
79  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'
80  --AND ap_pto.art = 'ZAE_NEN'
81  ;
82
83COMMENT ON VIEW s_flurstueck_nr IS 'fuer Kartendarstellung: Bruchnummerierung FlurstÃŒck';
84
85
86-- Layer "ag_t_gebaeude"
87-- ---------------------
88
89--CREATE OR REPLACE VIEW s_hausnummer_gebaeude
90--AS
91-- SELECT ap_pto.ogc_fid,
92--        ap_pto.wkb_geometry,
93--        ap_pto.drehwinkel * 57.296 AS drehwinkel,   -- umn: ANGLE [drehwinkel]
94--        ax_lagebezeichnungmithausnummer.hausnummer  -- umn: LABELITEM
95--   FROM ap_pto
96--   JOIN alkis_beziehungen
97--     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
98--   JOIN ax_lagebezeichnungmithausnummer
99--     ON alkis_beziehungen.beziehung_zu  = ax_lagebezeichnungmithausnummer.gml_id
100--  WHERE ap_pto.art = 'HNR'  -- Hausnummer
101--     AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
102
103
104-- In einigen Gebieten in Lippe enthÀlt das Feld "ap_pto.art"
105-- nicht den Wert 'HNR'. Die Hausnummer fehlt dann im WMS.
106-- Die Bedingung vorÌbergehend heraus nehmen. Ursache klÀren!
107
108
109CREATE OR REPLACE VIEW s_hausnummer_gebaeude
110AS
111 SELECT ap_pto.ogc_fid,
112        ap_pto.wkb_geometry,
113        ap_pto.drehwinkel * 57.296 AS drehwinkel,   -- umn: ANGLE [drehwinkel]
114        ax_lagebezeichnungmithausnummer.hausnummer  -- umn: LABELITEM
115   FROM ap_pto
116   JOIN alkis_beziehungen
117     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
118   JOIN ax_lagebezeichnungmithausnummer
119     ON alkis_beziehungen.beziehung_zu  = ax_lagebezeichnungmithausnummer.gml_id
120  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
121
122COMMENT ON VIEW s_hausnummer_gebaeude IS 'fuer Kartendarstellung: Hausnummern HauptgebÀude';
123
124
125
126
127-- Layer "ag_p_flurstueck"
128-- -----------------------
129
130CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck
131AS
132 SELECT ap_ppo.ogc_fid,
133        ap_ppo.wkb_geometry,
134        ap_ppo.drehwinkel * 57.296 + 90 AS drehwinkel,
135        ax_flurstueck.flurstueckskennzeichen
136   FROM ap_ppo
137   JOIN alkis_beziehungen
138     ON ap_ppo.gml_id = alkis_beziehungen.beziehung_von
139   JOIN ax_flurstueck
140     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
141  WHERE ap_ppo.art = 'Haken'
142    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
143
144COMMENT ON VIEW s_zugehoerigkeitshaken_flurstueck IS 'fuer Kartendarstellung';
145
146
147-- Layer "s_zuordungspfeil_flurstueck"
148-- -----------------------------------
149
150CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck
151AS
152 SELECT ap_lpo.ogc_fid,
153        ap_lpo.wkb_geometry
154   FROM ap_lpo
155   JOIN alkis_beziehungen
156     ON ap_lpo.gml_id = alkis_beziehungen.beziehung_von
157   JOIN ax_flurstueck
158     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
159  WHERE ap_lpo.art = 'Pfeil'
160    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
161
162COMMENT ON VIEW s_zuordungspfeil_flurstueck IS 'fuer Kartendarstellung';
163
164
165-- Layer NAME "ap_pto" GROUP "praesentation"
166-- ----------------------------------------
167-- Texte, die nicht schon in einem anderen Layer ausgegeben werden
168
169
170CREATE OR REPLACE VIEW s_beschriftung
171AS
172  SELECT ap_pto.ogc_fid,
173      -- ap_pto.gml_id,
174         ap_pto.schriftinhalt,
175         ap_pto.art,
176         ap_pto.drehwinkel * 57.296 AS winkel, -- * 180 / Pi
177         ap_pto.wkb_geometry
178    FROM ap_pto
179   WHERE not ap_pto.schriftinhalt IS NULL
180     AND art NOT IN ('ZAE_NEN', 'HNR')
181   ;
182--  IN ('FKT', 'Friedhof', 'urn:adv:fachdatenv')
183
184-- Diese IN-Liste fortschreiben bei Erweiterungen des Mapfiles
185
186-- Lippe: Der Wert 'ZAE_NEN' fehlt. Diese FÀlle anders identifizieren?
187
188GRANT SELECT ON TABLE s_beschriftung                    TO ms5;
189
190COMMENT ON VIEW s_beschriftung IS 'ap_pto, die noch nicht in anderen Layern angezeigt werden';
191
192--  ------------------------------------------
193--  Sichten fuer Fehlersuche und Daten-Analyse
194--  ------------------------------------------
195
196
197-- Zeigt die Texte an, die nicht in einem der Mapfile-Views verarbeitet werden
198CREATE OR REPLACE VIEW s_allgemeine_texte
199AS
200 SELECT ap_pto.ogc_fid,
201      --ap_pto.wkb_geometry,
202      --ap_pto.gml_id,
203        ap_pto.art,
204        ap_pto.drehwinkel * 57.296 AS drehwinkel,   -- * 180 / Pi
205        ap_pto.schriftinhalt
206   FROM ap_pto
207  WHERE NOT ap_pto.art = 'ZAE_NEN'
208    AND NOT ap_pto.art = 'HNR'
209    AND NOT ap_pto.art = 'FKT'
210    AND NOT ap_pto.art = 'Friedhof'
211    AND ap_pto.schriftinhalt IS NOT NULL;
212
213
214
215-- Analyse zu o.g. Fehler:
216--  Welche Inhalte kommen im Feld ap_pto.art vor?
217CREATE OR REPLACE VIEW ap_pto_arten
218AS
219  SELECT DISTINCT art
220    FROM ap_pto;
221
222
223-- Umbruch im Label?
224-- z.B. "Schwimm-/nbecken"
225-- Sind 2 Buchstaben in Mapfile bei "WRAP" möglich?
226CREATE OR REPLACE VIEW texte_mit_umbruch
227AS
228 SELECT ogc_fid, schriftinhalt, art
229   FROM ap_pto
230  WHERE not schriftinhalt is null
231    AND schriftinhalt like '%/n%';
232
233-- ... schriftinhalt like '%/%';
234-- RLP: FlurstÌcks-Bruchnummer art='ZAE_NEN' als Schriftinhalt (2 FÀlle)
235
236
237
238CREATE OR REPLACE VIEW s_allgemeine_texte_arten
239AS
240 SELECT DISTINCT art
241   FROM s_allgemeine_texte;
242
243-- dies liefert die Werte:
244--  Bahnverkehr, BWF, FKT_LGT, Fliessgewaesser, FreierText, Gewanne, NAM, Platz,
245--  StehendesGewaesser, Strasse, urn:adv:fachdatenv, Weg, ZNM
246
247
248
249-- EXTENT fÃŒr Mapfile eines Mandenten ermitteln
250
251CREATE OR REPLACE VIEW flurstuecks_minmax AS
252 SELECT min(st_xmin(wkb_geometry)) AS r_min,
253        min(st_ymin(wkb_geometry)) AS h_min,
254        max(st_xmax(wkb_geometry)) AS r_max,
255        max(st_ymax(wkb_geometry)) AS h_max
256   FROM public.ax_flurstueck;
257
258COMMENT ON VIEW flurstuecks_minmax IS 'Maximale Ausdehnung von ax_flurstueck fuer EXTENT-Angabe im Mapfile';
259
260
261
262-- Nach Laden der Keytables:
263
264
265-- MAP ALT:
266-- DATA "wkb_geometry from (SELECT ogc_fid, gml_id, artderfestlegung, name, bezeichnung, stelle, wkb_geometry FROM ax_bauraumoderbodenordnungsrecht) as foo using unique ogc_fid using SRID=25832"
267
268CREATE VIEW baurecht
269AS
270  SELECT r.ogc_fid,
271         r.wkb_geometry,
272         r.gml_id,
273         r.artderfestlegung as adfkey, -- Art der Festlegung - Key
274         r."name",                     -- Eigenname des Gebietes
275         r.stelle,                     -- Stelle Key
276         r.bezeichnung AS rechtbez,    -- Verfahrensnummer
277         a.bezeichner  AS adfbez,      -- Art der Festlegung - Bezeichnung
278         d.bezeichnung AS stellbez     -- Stelle Bezeichnung
279      -- , d.stellenart  --- weiter entschluesseln?
280    FROM ax_bauraumoderbodenordnungsrecht r
281    LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a
282      ON r.artderfestlegung = a.wert
283    LEFT JOIN ax_dienststelle d
284      ON r.land = d.land AND r.stelle = d.stelle
285 ;
286
287-- MAP NEU:
288-- DATA "wkb_geometry from (SELECT ogc_fid, gml_id, adfkey, name, stelle, rechtbez, adfbez, stellbez, wkb_geometry FROM baurecht) as foo using unique ogc_fid using SRID=25832" # gespeicherter View
289
290
291-- Man glaubt es kaum, aber im ALKIS haben Gemeinde und Gemarkung keinerlei Beziehung miteinander
292-- Nur durch Auswertung der FlurstÃŒcke kann man ermitteln, in welcher Gemeinde eine Gemarkung liegt.
293
294CREATE VIEW gemeinde_in_gemarkung
295AS
296  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
297  FROM            ax_flurstueck
298  ORDER BY        land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
299;
300
301COMMENT ON VIEW gemeinde_in_gemarkung IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.';
302
303
304-- Untersuchen, welche Geometrie-Typen vorkommen
305
306CREATE VIEW arten_von_flurstuecksgeometrie
307AS
308 SELECT   count(gml_id) as anzahl,
309          st_geometrytype(wkb_geometry)
310 FROM     ax_flurstueck
311 GROUP BY st_geometrytype(wkb_geometry);
312
313-- Lage
314--   256 ST_MultiPolygon
315-- 23377 ST_Polygon
316
317-- RLP
318--    2 ST_MultiPolygon
319-- 2367 ST_Polygon
320
321
322
323-- END --
324
Note: See TracBrowser for help on using the repository browser.