source: trunk/import/nutzungsart_laden.sql @ 314

Revision 298, 13.1 KB checked in by frank.jaeger, 10 years ago (diff)

Metadatentabelle zu Nutzungsarten bekommt 0-Inhalte. Neue Views. Neuer WMS "Flurstücke kommunal".

Line 
1--
2-- ALKIS PostNAS 0.7
3--
4-- ======================================================
5-- Zusammenfassung der Tabellen der tatsÀchlichen Nutzung
6-- ======================================================
7--
8-- Um bei einer Feature.Info (Welche Nutzung an dieser Stelle?)
9-- oder einer Verschneidung (Welche Nutzungen auf dem FlurstÃŒck?)
10-- nicht 26 verschiedene Tabellen abfragen zu mÃŒssen, werden die wichtigsten
11-- Felder dieser Tabellen zusammen gefasst.
12--
13-- Teil 3: Laden der (redundanten) Tabelle "nutzung", notwendig nach jeder FortfÃŒhrung.
14--
15-- Stand
16--
17--  2012-02-10 PostNAS 07, Umbenennung
18--  2012-04-24 keine historischen Flaechen (..WHERE endet IS NULL),
19--             Feld 'beginnt' mitnehmen wegen Doppelbelegung gml_id (noch klÀren)
20--  2013-11-18 - Spalte nutzung.class mit Wert 0 fÃŒllen wenn Quellspalte NULL ist.
21--             - Korrektur der SchlÃŒsseltabelle "nutzung_class":
22--               Fehlende Werte aus konvertierten Daten ergÀnzen. Wenn dies in der Praxis wirklich
23--               vorkommt, sollte das Lade-Script "nutzungsart_metadaten.sql" ergÀnzt werden.
24
25
26SET client_encoding = 'UTF-8';
27
28
29-- Tabelle  l e e r e n
30-- --------------------
31DELETE FROM nutzung;
32
33
34-- Tabelle  l a d e n
35-- --------------------
36
37-- Welche Felder der Ursprungstabellen in die Zielfelder "class" und "info" geladen werden,
38-- wird dokumentiert ÃŒber die Tabelle "nutzung_meta" im Script "alkis_nutzungsart_meta.sql".
39
40
41-- ****  Objektbereich: TatsÀchliche Nutzung  ****
42
43-- ** Objektartengruppe: Siedlung **
44
45-- 01 REO: ax_Wohnbauflaeche
46INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                       info, zustand, name, bezeichnung, wkb_geometry)
47  SELECT             gml_id, beginnt, 1,       coalesce(artderbebauung, 0), null ,zustand, name, null,        wkb_geometry
48  FROM ax_wohnbauflaeche
49  WHERE endet IS NULL
50    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
51
52
53-- 02 REO: ax_IndustrieUndGewerbeflaeche
54-- -------------------------------------
55INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
56  SELECT             gml_id, beginnt, 2,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry
57  FROM ax_industrieundgewerbeflaeche
58  WHERE endet IS NULL
59    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
60
61
62-- 03 REO: ax_Halde
63-- -------------------------------------
64INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
65  SELECT             gml_id, beginnt, 3,       coalesce(lagergut, 0), null, zustand, name, null,        wkb_geometry
66  FROM ax_halde
67  WHERE endet IS NULL
68    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
69
70
71-- 04 ax_Bergbaubetrieb
72-- -------------------------------------
73INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
74  SELECT             gml_id, beginnt, 4,       coalesce(abbaugut, 0), null, zustand, name, null,        wkb_geometry
75  FROM ax_bergbaubetrieb
76  WHERE endet IS NULL
77    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
78
79
80-- 05 REO: ax_TagebauGrubeSteinbruch
81-- -------------------------------------
82INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
83  SELECT             gml_id, beginnt, 5,       coalesce(abbaugut, 0), null, zustand, name, null,        wkb_geometry
84  FROM ax_tagebaugrubesteinbruch
85  WHERE endet IS NULL
86    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
87
88
89-- 06 REO: ax_FlaecheGemischterNutzung
90-- -------------------------------------
91INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
92  SELECT             gml_id, beginnt, 6,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry
93  FROM ax_flaechegemischternutzung
94  WHERE endet IS NULL
95    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
96
97
98-- 07 REO: ax_FlaecheBesondererFunktionalerPraegung
99-- -------------------------------------
100INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,           zustand, name, bezeichnung, wkb_geometry)
101  SELECT             gml_id, beginnt, 7,       coalesce(funktion, 0), artderbebauung, zustand, name, null,        wkb_geometry
102  FROM ax_flaechebesondererfunktionalerpraegung
103  WHERE endet IS NULL
104    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
105
106
107-- 08 REO: ax_SportFreizeitUndErholungsflaeche
108-- -------------------------------------
109INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
110  SELECT             gml_id, beginnt, 8,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry
111  FROM ax_sportfreizeitunderholungsflaeche
112  WHERE endet IS NULL
113    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
114-- weiteres Feld: name char(20)?
115
116
117-- 09 REO: ax_Friedhof
118-- -------------------------------------
119INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
120  SELECT             gml_id, beginnt, 9,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry
121  FROM ax_friedhof
122  WHERE endet IS NULL
123    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
124
125
126-- ** Objektartengruppe: Verkehr **
127
128-- 10 ax_Strassenverkehr
129-- -------------------------------------
130INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,   zustand, name, bezeichnung, wkb_geometry)
131  SELECT             gml_id, beginnt, 10,      coalesce(funktion, 0), null,   zustand, name, zweitname,   wkb_geometry
132  FROM ax_strassenverkehr
133  WHERE endet IS NULL
134    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
135
136
137-- 11 ax_Weg
138-- -------------------------------------
139INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,  zustand, name, bezeichnung, wkb_geometry)
140  SELECT             gml_id, beginnt, 11,      coalesce(funktion, 0), null,  null,    name, bezeichnung, wkb_geometry
141  FROM ax_weg
142  WHERE endet IS NULL;
143
144
145-- 12 ax_Platz
146-- -------------------------------------
147INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
148  SELECT             gml_id, beginnt, 12,      coalesce(funktion, 0), null, null,    name, zweitname,   wkb_geometry
149  FROM ax_platz
150  WHERE endet IS NULL
151    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
152
153
154-- 13 ax_Bahnverkehr
155-- -------------------------------------
156INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,          zustand, name,        bezeichnung, wkb_geometry)
157  SELECT             gml_id, beginnt, 13,      coalesce(funktion, 0), bahnkategorie, zustand, bezeichnung, null,        wkb_geometry
158  FROM ax_bahnverkehr
159  WHERE endet IS NULL
160    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
161-- bahnkategorie ist alternativ ein geeignetes class-Feld
162
163
164-- 14 ax_Flugverkehr
165-- -------------------------------------
166INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,  zustand, name, bezeichnung, wkb_geometry)
167  SELECT             gml_id, beginnt, 14,      coalesce(art, 0),      null,  zustand, name, bezeichnung, wkb_geometry
168  FROM ax_flugverkehr
169  WHERE endet IS NULL
170    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
171
172
173-- 15 ax_Schiffsverkehr
174-- -------------------------------------
175INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
176  SELECT             gml_id, beginnt, 15,      coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry
177  FROM ax_schiffsverkehr
178  WHERE endet IS NULL
179    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
180
181
182-- ** Objektartengruppe: Vegetation **
183
184-- 16 ax_Landwirtschaft
185-- -------------------------------------
186INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                           info, zustand, name, bezeichnung, wkb_geometry)
187  SELECT             gml_id, beginnt, 16,      coalesce(vegetationsmerkmal, 0), null, null,    name, null,        wkb_geometry
188  FROM ax_landwirtschaft
189  WHERE endet IS NULL
190    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
191
192
193-- 17 ax_Wald
194-- -------------------------------------
195INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                           info, zustand, name, bezeichnung, wkb_geometry)
196  SELECT             gml_id, beginnt, 17,      coalesce(vegetationsmerkmal, 0), null, null,    name, bezeichnung, wkb_geometry
197  FROM ax_wald
198  WHERE endet IS NULL
199    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
200
201
202-- 18 ax_Gehoelz
203-- -------------------------------------
204INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,  zustand, name, bezeichnung, wkb_geometry)
205  SELECT             gml_id, beginnt, 18,      coalesce(funktion, 0), vegetationsmerkmal, null,    null, null,        wkb_geometry
206  FROM ax_gehoelz
207  WHERE endet IS NULL
208    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
209
210
211-- 19 ax_Heide
212-- -------------------------------------
213INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,  info, zustand, name, bezeichnung, wkb_geometry)
214  SELECT             gml_id, beginnt, 19,      0,      null, null,    name, null,        wkb_geometry
215  FROM ax_heide
216  WHERE endet IS NULL
217    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
218
219
220-- 20 ax_Moor
221-- -------------------------------------
222INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,  info, zustand, name, bezeichnung, wkb_geometry)
223  SELECT             gml_id, beginnt, 20,          0,  null, null,    name, null,        wkb_geometry
224  FROM ax_moor
225  WHERE endet IS NULL
226    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
227
228
229-- 21 ax_Sumpf
230-- -------------------------------------
231INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,  info, zustand, name, bezeichnung, wkb_geometry)
232  SELECT             gml_id, beginnt, 21,          0,  null, null,    name, null,        wkb_geometry
233  FROM ax_sumpf
234  WHERE endet IS NULL
235    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
236
237
238-- 22 ax_UnlandVegetationsloseFlaeche
239-- -------------------------------------
240INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,                 zustand, name, bezeichnung, wkb_geometry)
241  SELECT             gml_id, beginnt, 22,      coalesce(funktion, 0), oberflaechenmaterial, null,    name, null,        wkb_geometry
242  FROM ax_unlandvegetationsloseflaeche
243  WHERE endet IS NULL
244    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
245
246-- (23 NummerierungslÃŒcke)
247
248-- ** Objektartengruppe: GewÀsser **
249
250-- 24 ax_Fliessgewaesser
251-- -------------------------------------
252INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand,  name, bezeichnung, wkb_geometry)
253  SELECT             gml_id, beginnt, 24,      coalesce(funktion, 0), null, zustand,  name, null,        wkb_geometry
254  FROM ax_fliessgewaesser
255  WHERE endet IS NULL
256    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
257
258
259-- 25 ax_Hafenbecken
260-- -------------------------------------
261INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,    zustand,   name, bezeichnung, wkb_geometry)
262  SELECT             gml_id, beginnt, 25,      coalesce(funktion, 0), nutzung, null,      name, null,        wkb_geometry
263  FROM ax_hafenbecken
264  WHERE endet IS NULL
265    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
266
267
268-- 26 ax_StehendesGewaesser
269-- -------------------------------------
270INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung,         wkb_geometry)
271  SELECT             gml_id, beginnt, 26,      coalesce(funktion, 0), null, null,    name, gewaesserkennziffer, wkb_geometry
272  FROM ax_stehendesgewaesser
273  WHERE endet IS NULL
274    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
275
276
277-- 27 ax_Meer
278-- -------------------------------------
279INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
280  SELECT             gml_id, beginnt, 27,      coalesce(funktion, 0), null, null,    name, bezeichnung, wkb_geometry
281  FROM ax_meer
282  WHERE endet IS NULL
283    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
284
285
286-- Ergaenzung der SchlÃŒsseltabelle
287-- -------------------------------
288
289-- Fehlende EintrÀge in der manuell gefÌllten Tabelle "nutzung_class" (Theorie, aus GeoInfoDok)
290-- durch EintrÀge aus der zusammen gefassten Tabelle "nutzung" ergÀnzen (Praxis).
291
292-- Wenn in der Praxis weitere SchlÃŒssel vorkommen, die in der Tabelle "nutzung_class" noch nicht
293-- enthalten sind, dann kann das bei Equivalenz-Abfragen (INNER JOIN) dazu fÃŒhren, dass die
294-- Nutzungsarten-Abschnitte mit den dort fehlenden SchlÃŒsseln ausgelassen werden.
295
296INSERT INTO  nutzung_class ( nutz_id, class, label, blabla )
297  SELECT DISTINCT
298         n.nutz_id,
299         n.class,
300        '(unbekannt)' AS label,
301        'SchlÃŒssel wurde im PostProcessing aus der Tabelle "nutzung" ergÀnzt' AS blabla
302     FROM nutzung n  -- Daten aus Konverter -- die Praxis
303     WHERE NOT EXISTS
304     ( SELECT c.class
305         FROM nutzung_class c -- vorbereitete Metadaten aus GeoInfoDok  -- die Theorie
306        WHERE n.nutz_id = c.nutz_id
307          AND n.class = c.class
308      )
309      ORDER BY n.nutz_id, n.class ;
310
311-- END --
Note: See TracBrowser for help on using the repository browser.