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".

RevLine 
[298]1--
[162]2-- ALKIS PostNAS 0.7
[298]3--
[162]4-- ======================================================
5-- Zusammenfassung der Tabellen der tatsÀchlichen Nutzung
6-- ======================================================
[298]7--
[162]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.
[298]12--
[162]13-- Teil 3: Laden der (redundanten) Tabelle "nutzung", notwendig nach jeder FortfÃŒhrung.
[298]14--
[162]15-- Stand
[298]16--
[162]17--  2012-02-10 PostNAS 07, Umbenennung
[178]18--  2012-04-24 keine historischen Flaechen (..WHERE endet IS NULL),
19--             Feld 'beginnt' mitnehmen wegen Doppelbelegung gml_id (noch klÀren)
[298]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.
[162]24
[298]25
[162]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
[298]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
[178]48  FROM ax_wohnbauflaeche
49  WHERE endet IS NULL
50    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]51
52
53-- 02 REO: ax_IndustrieUndGewerbeflaeche
54-- -------------------------------------
[298]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
[178]57  FROM ax_industrieundgewerbeflaeche
58  WHERE endet IS NULL
59    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]60
61
62-- 03 REO: ax_Halde
63-- -------------------------------------
[298]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
[178]66  FROM ax_halde
67  WHERE endet IS NULL
68    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]69
70
71-- 04 ax_Bergbaubetrieb
72-- -------------------------------------
[298]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
[178]75  FROM ax_bergbaubetrieb
76  WHERE endet IS NULL
77    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]78
79
80-- 05 REO: ax_TagebauGrubeSteinbruch
81-- -------------------------------------
[298]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
[178]84  FROM ax_tagebaugrubesteinbruch
85  WHERE endet IS NULL
86    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]87
88
89-- 06 REO: ax_FlaecheGemischterNutzung
90-- -------------------------------------
[298]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
[178]93  FROM ax_flaechegemischternutzung
94  WHERE endet IS NULL
95    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]96
97
98-- 07 REO: ax_FlaecheBesondererFunktionalerPraegung
99-- -------------------------------------
[298]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
[178]102  FROM ax_flaechebesondererfunktionalerpraegung
103  WHERE endet IS NULL
104    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]105
106
107-- 08 REO: ax_SportFreizeitUndErholungsflaeche
108-- -------------------------------------
[298]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
[178]111  FROM ax_sportfreizeitunderholungsflaeche
112  WHERE endet IS NULL
113    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]114-- weiteres Feld: name char(20)?
115
116
117-- 09 REO: ax_Friedhof
118-- -------------------------------------
[298]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
[178]121  FROM ax_friedhof
122  WHERE endet IS NULL
123    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]124
125
126-- ** Objektartengruppe: Verkehr **
127
128-- 10 ax_Strassenverkehr
129-- -------------------------------------
[298]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
[178]132  FROM ax_strassenverkehr
133  WHERE endet IS NULL
134    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]135
136
137-- 11 ax_Weg
138-- -------------------------------------
[298]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
[178]141  FROM ax_weg
142  WHERE endet IS NULL;
[162]143
144
145-- 12 ax_Platz
146-- -------------------------------------
[298]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
[178]149  FROM ax_platz
150  WHERE endet IS NULL
151    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]152
153
154-- 13 ax_Bahnverkehr
155-- -------------------------------------
[298]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
[178]158  FROM ax_bahnverkehr
159  WHERE endet IS NULL
160    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]161-- bahnkategorie ist alternativ ein geeignetes class-Feld
162
163
164-- 14 ax_Flugverkehr
165-- -------------------------------------
[298]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
[178]168  FROM ax_flugverkehr
169  WHERE endet IS NULL
170    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]171
172
173-- 15 ax_Schiffsverkehr
174-- -------------------------------------
[298]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
[178]177  FROM ax_schiffsverkehr
178  WHERE endet IS NULL
179    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]180
181
182-- ** Objektartengruppe: Vegetation **
183
184-- 16 ax_Landwirtschaft
185-- -------------------------------------
[298]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
[178]188  FROM ax_landwirtschaft
189  WHERE endet IS NULL
190    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]191
192
193-- 17 ax_Wald
194-- -------------------------------------
[298]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
[178]197  FROM ax_wald
198  WHERE endet IS NULL
199    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]200
201
202-- 18 ax_Gehoelz
203-- -------------------------------------
[298]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
[178]206  FROM ax_gehoelz
207  WHERE endet IS NULL
208    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]209
210
211-- 19 ax_Heide
212-- -------------------------------------
[298]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
[178]215  FROM ax_heide
216  WHERE endet IS NULL
217    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]218
219
220-- 20 ax_Moor
221-- -------------------------------------
[298]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
[178]224  FROM ax_moor
225  WHERE endet IS NULL
226    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]227
228
229-- 21 ax_Sumpf
230-- -------------------------------------
[298]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
[178]233  FROM ax_sumpf
234  WHERE endet IS NULL
235    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]236
237
238-- 22 ax_UnlandVegetationsloseFlaeche
239-- -------------------------------------
[298]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
[178]242  FROM ax_unlandvegetationsloseflaeche
243  WHERE endet IS NULL
244    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]245
246-- (23 NummerierungslÃŒcke)
247
248-- ** Objektartengruppe: GewÀsser **
249
250-- 24 ax_Fliessgewaesser
251-- -------------------------------------
[298]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
[178]254  FROM ax_fliessgewaesser
255  WHERE endet IS NULL
256    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]257
258
259-- 25 ax_Hafenbecken
260-- -------------------------------------
[298]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
[178]263  FROM ax_hafenbecken
264  WHERE endet IS NULL
265    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]266
267
268-- 26 ax_StehendesGewaesser
269-- -------------------------------------
[298]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
[178]272  FROM ax_stehendesgewaesser
273  WHERE endet IS NULL
274    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]275
276
277-- 27 ax_Meer
278-- -------------------------------------
[298]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
[178]281  FROM ax_meer
282  WHERE endet IS NULL
283    AND st_geometrytype(wkb_geometry) = 'ST_Polygon';
[162]284
285
[298]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
[162]311-- END --
Note: See TracBrowser for help on using the repository browser.