source: trunk/data/konvert/postnas_0.6/sichten.sql @ 156

Revision 156, 23.9 KB checked in by frank.jaeger, 8 years ago (diff)

Mapfile und Views angepasst an PostNAS 0.6 = gdal/org 1.8

Line 
1-- =====
2-- ALKIS
3-- =====
4
5--  PostNAS 0.6
6
7--  2011-07-25 PostNAS 06, Umbenennung
8--  2011-10-20 Nummer NebengebÀude und Zuordnungspfeile fuer GebÀude
9--  2011-12-08 umbenannt "gemeinde_in_gemarkung" -> "gemarkung_in_gemeinde"
10--  2012-01-16 Feinheiten
11--  2012-02-06 VIEW s_beschriftung: Wert "ZAE_NEN" kommt nicht mehr vor
12
13--  -----------------------------------------
14--  Sichten fuer Verwendung im mapfiles (wms)
15--  -----------------------------------------
16
17
18-- Layer "ag_t_flurstueck"
19-- -----------------------
20
21-- Die Geometrie befindet sich in "ap_pto", der Label in "ax_flurstueck"
22-- Die Verbindung erfolgt ÃŒber "alkis_beziehungen"
23
24
25-- Bruchnummerierung erzeugen
26CREATE OR REPLACE VIEW s_flurstueck_nr
27AS
28 SELECT ap_pto.ogc_fid,
29        ap_pto.wkb_geometry,   -- Position des Textes
30    --  ax_flurstueck.flurstueckskennzeichen,   -- am Stueck, aufgefuellt, unpraktisch
31    --  ax_flurstueck.gemarkungsnummer,  -- integer
32    --  ax_flurstueck.flurnummer,        -- integer
33    --  ax_flurstueck.zaehler,           -- integer
34    --  ax_flurstueck.nenner,            -- integer oder NULL
35        ax_flurstueck.zaehler::text || COALESCE ('/' || ax_flurstueck.nenner::text, '') AS fsnum
36   FROM ap_pto
37   JOIN alkis_beziehungen
38     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
39   JOIN ax_flurstueck
40     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
41  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'
42  ;
43
44COMMENT ON VIEW s_flurstueck_nr IS 'fuer Kartendarstellung: Bruchnummerierung FlurstÃŒck';
45
46
47-- Layer "ag_t_gebaeude"
48-- ---------------------
49
50-- Problem: Zu einigen GebÀuden gibt es mehrere Hausnummern.
51-- Diese unterscheiden sich im Feld ap-pto.advstandardmodell
52-- z.B. 3 verschiedene EintrÀge mit <NULL>, {DKKM500}, {DKKM1000}, (Beispiel; Lage, Lange Straße 15 c)
53
54
55CREATE OR REPLACE VIEW s_hausnummer_gebaeude
56AS
57 SELECT ap_pto.ogc_fid,
58        ap_pto.wkb_geometry, -- Point
59        ap_pto.drehwinkel * 57.296 AS drehwinkel,   -- umn: ANGLE [drehwinkel]
60        ax_lagebezeichnungmithausnummer.hausnummer  -- umn: LABELITEM
61   FROM ap_pto
62   JOIN alkis_beziehungen
63     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
64   JOIN ax_lagebezeichnungmithausnummer
65     ON alkis_beziehungen.beziehung_zu  = ax_lagebezeichnungmithausnummer.gml_id
66  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
67
68COMMENT ON VIEW s_hausnummer_gebaeude IS 'fuer Kartendarstellung: Hausnummern HauptgebÀude';
69
70
71-- Layer "ag_t_nebengeb"
72-- ---------------------
73
74CREATE OR REPLACE VIEW s_nummer_nebengebaeude
75AS
76 SELECT ap_pto.ogc_fid,
77        ap_pto.wkb_geometry,
78        ap_pto.drehwinkel * 57.296 AS drehwinkel,        -- umn: ANGLE [drehwinkel]
79     -- alkis_beziehungen.beziehungsart,                 -- TEST
80     -- ax_lagebezeichnungmitpseudonummer.pseudonummer,  -- die HsNr des zugehoerigen Hauptgebaeudes
81        ax_lagebezeichnungmitpseudonummer.laufendenummer -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes
82   FROM ap_pto
83   JOIN alkis_beziehungen
84     ON ap_pto.gml_id = alkis_beziehungen.beziehung_von
85   JOIN ax_lagebezeichnungmitpseudonummer
86     ON alkis_beziehungen.beziehung_zu  = ax_lagebezeichnungmitpseudonummer.gml_id
87  WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'
88;
89
90COMMENT ON VIEW s_nummer_nebengebaeude IS 'fuer Kartendarstellung: Hausnummern NebengebÀude';
91
92
93-- Layer "ag_p_flurstueck"
94-- -----------------------
95
96CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck
97AS
98 SELECT ap_ppo.ogc_fid,
99        ap_ppo.wkb_geometry,
100        ap_ppo.drehwinkel * 57.296 AS drehwinkel,
101        ax_flurstueck.flurstueckskennzeichen
102   FROM ap_ppo
103   JOIN alkis_beziehungen
104     ON ap_ppo.gml_id = alkis_beziehungen.beziehung_von
105   JOIN ax_flurstueck
106     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
107  WHERE ap_ppo.art = 'Haken'
108    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
109
110COMMENT ON VIEW s_zugehoerigkeitshaken_flurstueck IS 'fuer Kartendarstellung';
111
112
113-- Layer "s_zuordungspfeil_flurstueck"
114-- -----------------------------------
115
116CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck
117AS
118 SELECT ap_lpo.ogc_fid,
119        ap_lpo.wkb_geometry
120   FROM ap_lpo
121   JOIN alkis_beziehungen
122     ON ap_lpo.gml_id = alkis_beziehungen.beziehung_von
123   JOIN ax_flurstueck
124     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
125  WHERE ap_lpo.art = 'Pfeil'
126    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'
127    AND ('DKKM1000' ~~ ANY (ap_lpo.advstandardmodell));
128
129COMMENT ON VIEW s_zuordungspfeil_flurstueck IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer';
130
131
132CREATE OR REPLACE VIEW s_zuordungspfeilspitze_flurstueck
133AS
134 SELECT ap_lpo.ogc_fid, (((st_azimuth(st_pointn(ap_lpo.wkb_geometry, 1),
135        st_pointn(ap_lpo.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel,
136        st_startpoint(ap_lpo.wkb_geometry) AS wkb_geometry
137   FROM ap_lpo
138   JOIN alkis_beziehungen
139     ON ap_lpo.gml_id = alkis_beziehungen.beziehung_von
140   JOIN ax_flurstueck
141     ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id
142  WHERE ap_lpo.art = 'Pfeil'
143    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'
144    AND ('DKKM1000' ~~ ANY (ap_lpo.advstandardmodell));
145
146COMMENT ON VIEW s_zuordungspfeilspitze_flurstueck IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer, Spitze';
147
148
149
150-- Layer NAME "ap_pto" GROUP "praesentation"
151-- ----------------------------------------
152-- Texte, die nicht schon in einem anderen Layer ausgegeben werden
153
154CREATE OR REPLACE VIEW s_beschriftung
155AS
156  SELECT ap_pto.ogc_fid,
157         ap_pto.schriftinhalt,
158         ap_pto.art,
159         ap_pto.drehwinkel * 57.296 AS winkel, -- * 180 / Pi
160         ap_pto.wkb_geometry
161    FROM ap_pto
162   WHERE not ap_pto.schriftinhalt IS NULL
163     AND art NOT IN ('HNR', 'PNR');
164
165-- Feb. 2012 PostNAS 0.6: 'ZAE_NEN' kommt nicht mehr vor!
166
167-- Diese 'IN'-Liste fortschreiben bei Erweiterungen des Mapfiles
168-- Wenn ein Text zum fachlich passenden Layer angezeigt wird, dann hier ausblenden,
169-- d.h. die Kennung in die Klammer eintragen.
170
171-- Werte in ap_pto.art:
172-- 'HNR'  = Hausnummer
173-- 'PNR'  = Pseudo-Nummer = laufende Nummer NebengebÀude
174
175-- Ermittlung der vorkommenden Arten mit:
176--   SELECT DISTINCT art FROM ap_pto ORDER BY art;
177
178-- Noch nicht berÃŒcksichtigt:
179   
180--"AGT""ART""ATP""BBD""BezKlassifizierungStrasse""BSA""BWF""BWF_ZUS""FKT""Fliessgewaesser""FreierText"
181--"Friedhof""Gewanne""GFK""Halde_LGT""HHO""NAM""PKN""Platz""PRO""SPG""SPO""StehendesGewaesser"
182--"Strasse""VEG""Vorratsbehaelter""Weg""Weitere Höhe""ZNM""<NULL>"
183
184COMMENT ON VIEW s_beschriftung IS 'ap_pto, die noch nicht in anderen Layern angezeigt werden';
185
186
187-- Layer "s_zuordungspfeil_gebaeude"
188-- -----------------------------------
189
190CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude
191AS
192 SELECT ap_lpo.ogc_fid,
193     -- alkis_beziehungen.beziehungsart, -- TEST
194     -- ap_lpo.art, -- TEST
195        ap_lpo.wkb_geometry
196   FROM ap_lpo
197   JOIN alkis_beziehungen
198     ON ap_lpo.gml_id = alkis_beziehungen.beziehung_von
199   JOIN ax_gebaeude
200     ON alkis_beziehungen.beziehung_zu = ax_gebaeude.gml_id
201  WHERE ap_lpo.art = 'Pfeil'
202    AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon';
203
204COMMENT ON VIEW s_zuordungspfeil_gebaeude IS 'fuer Kartendarstellung: Zuordnungspfeil fÌr GebÀude-Nummer';
205
206
207-- Sichten vom OBK (Oberbergischer Kreis)
208-- --------------------------------------
209
210-- Dazu notwendig: Feld "ax_besondereflurstuecksgrenze.artderflurstuecksgrenze" als Array "integer[]" !
211-- Anpassung DB-Schema erfolgte am 18.09.2011
212
213
214CREATE VIEW sk2004_zuordnungspfeil
215AS
216 SELECT ap.ogc_fid, ap.wkb_geometry
217 FROM ap_lpo ap
218 WHERE ((ap.signaturnummer = 2004)
219   AND ('DKKM1000'::text ~~ ANY ((ap.advstandardmodell)::text[])));
220
221COMMENT ON VIEW sk2004_zuordnungspfeil IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer"';
222-- krz: ap.signaturnummer is NULL in allen SÀtzen
223--      Siehe s_zuordungspfeil_flurstueck
224
225CREATE VIEW sk2004_zuordnungspfeil_spitze
226AS
227 SELECT ap.ogc_fid, (((st_azimuth(st_pointn(ap.wkb_geometry, 1),
228        st_pointn(ap.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel,
229        st_startpoint(ap.wkb_geometry) AS wkb_geometry
230 FROM ap_lpo ap
231 WHERE ((ap.signaturnummer = 2004)
232   AND ('DKKM1000'::text ~~ ANY ((ap.advstandardmodell)::text[])));
233-- krz: ap.signaturnummer is NULL in allen SÀtzen
234
235
236CREATE OR REPLACE VIEW sk2012_flurgrenze
237AS
238 SELECT fg.ogc_fid, fg.wkb_geometry
239   FROM ax_besondereflurstuecksgrenze fg
240  WHERE (3000 = ANY (fg.artderflurstuecksgrenze))
241    AND fg.advstandardmodell ~~ 'DLKM'::text;
242
243COMMENT ON VIEW sk2012_flurgrenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Flurgrenze"';
244
245
246CREATE OR REPLACE VIEW sk2014_gemarkungsgrenze
247AS
248 SELECT gemag.ogc_fid, gemag.wkb_geometry
249   FROM ax_besondereflurstuecksgrenze gemag
250  WHERE (7003 = ANY (gemag.artderflurstuecksgrenze))
251    AND gemag.advstandardmodell ~~ 'DLKM'::text;
252
253COMMENT ON VIEW sk2014_gemarkungsgrenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemarkungsgrenze"';
254
255
256CREATE OR REPLACE VIEW sk2018_bundeslandgrenze
257AS
258 SELECT blg.ogc_fid, blg.wkb_geometry
259   FROM ax_besondereflurstuecksgrenze blg
260  WHERE (7102 = ANY (blg.artderflurstuecksgrenze))
261    AND blg.advstandardmodell ~~ 'DLKM'::text;
262
263COMMENT ON VIEW sk2018_bundeslandgrenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Bundeslandgrenze"';
264
265
266CREATE OR REPLACE VIEW sk2020_regierungsbezirksgrenze
267AS
268 SELECT rbg.ogc_fid, rbg.wkb_geometry
269   FROM ax_besondereflurstuecksgrenze rbg
270  WHERE (7103 = ANY (rbg.artderflurstuecksgrenze))
271    AND rbg.advstandardmodell ~~ 'DLKM'::text;
272
273COMMENT ON VIEW sk2020_regierungsbezirksgrenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Regierungsbezirksgrenze"';
274
275
276CREATE OR REPLACE VIEW sk2022_gemeindegrenze
277AS
278 SELECT gemg.ogc_fid, gemg.wkb_geometry
279   FROM ax_besondereflurstuecksgrenze gemg
280  WHERE (7106 = ANY (gemg.artderflurstuecksgrenze))
281    AND gemg.advstandardmodell ~~ 'DLKM'::text;
282
283COMMENT ON VIEW sk2022_gemeindegrenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemeindegrenze"';
284
285
286-- Zusammenfassung "Politische Grenzen"  Art= 7102, 7103, 7104, 7106
287
288-- Grenze der Bundesrepublik Deutschland 7101 (G)
289-- Grenze des Bundeslandes 7102 (G)
290-- Grenze des Regierungsbezirks 7103 (G)
291-- Grenze des Landkreises 7104 (G)
292-- Grenze der Gemeinde 7106
293-- Grenze des Gemeindeteils 7107
294-- Grenze der Verwaltungsgemeinschaft 7108
295
296CREATE OR REPLACE VIEW sk201x_politische_grenze
297AS
298 SELECT ogc_fid, artderflurstuecksgrenze as art, wkb_geometry
299   FROM ax_besondereflurstuecksgrenze
300
301-- WHERE ( ANY (artderflurstuecksgrenze) IN (7102,7103,7104,7106) )
302
303  WHERE (7102 = ANY (artderflurstuecksgrenze)
304     OR  7102 = ANY (artderflurstuecksgrenze)
305     OR  7103 = ANY (artderflurstuecksgrenze)
306     OR  7104 = ANY (artderflurstuecksgrenze)
307     OR  7106 = ANY (artderflurstuecksgrenze)
308    )
309    AND advstandardmodell ~~ 'DLKM'::text;
310
311COMMENT ON VIEW sk201x_politische_grenze IS 'fuer Kartendarstellung: besondere FlurstÃŒcksgrenze Politische Grenzen (Bund, Land, Kreis, Gemeinde)';
312-- GefÀllt mir nicht!
313-- Array-Felder eignen sich nicht als Filter. Optimierung: in Tabelle speichern
314
315
316--  ------------------------------------------
317--  Sichten fuer Fehlersuche und Daten-Analyse
318--  ------------------------------------------
319
320-- Zeigt die Texte an, die nicht in einem der Mapfile-Views verarbeitet werden
321CREATE OR REPLACE VIEW s_allgemeine_texte
322AS
323 SELECT ap_pto.ogc_fid,
324      --ap_pto.wkb_geometry,
325      --ap_pto.gml_id,
326        ap_pto.art,
327        ap_pto.drehwinkel * 57.296 AS drehwinkel,   -- * 180 / Pi
328        ap_pto.schriftinhalt
329   FROM ap_pto
330  WHERE NOT ap_pto.art = 'ZAE_NEN'
331    AND NOT ap_pto.art = 'HNR'
332    AND NOT ap_pto.art = 'FKT'
333    AND NOT ap_pto.art = 'Friedhof'
334    AND ap_pto.schriftinhalt IS NOT NULL;
335
336
337-- Analyse zu o.g. Fehler:
338--  Welche Inhalte kommen im Feld ap_pto.art vor?
339CREATE OR REPLACE VIEW ap_pto_arten
340AS
341  SELECT DISTINCT art
342    FROM ap_pto;
343
344
345-- Umbruch im Label?
346-- z.B. "Schwimm-/nbecken"
347-- Sind 2 Buchstaben in Mapfile bei "WRAP" möglich?
348CREATE OR REPLACE VIEW texte_mit_umbruch
349AS
350 SELECT ogc_fid, schriftinhalt, art
351   FROM ap_pto
352  WHERE not schriftinhalt is null
353    AND schriftinhalt like '%/n%';
354
355-- ... schriftinhalt like '%/%';
356-- RLP: FlurstÌcks-Bruchnummer art='ZAE_NEN' als Schriftinhalt (2 FÀlle)
357
358
359
360CREATE OR REPLACE VIEW s_allgemeine_texte_arten
361AS
362 SELECT DISTINCT art
363   FROM s_allgemeine_texte;
364
365-- dies liefert die Werte:
366--  Bahnverkehr, BWF, FKT_LGT, Fliessgewaesser, FreierText, Gewanne, NAM, Platz,
367--  StehendesGewaesser, Strasse, urn:adv:fachdatenv, Weg, ZNM
368
369
370
371-- EXTENT fÃŒr Mapfile eines Mandenten ermitteln
372
373CREATE OR REPLACE VIEW flurstuecks_minmax AS
374 SELECT min(st_xmin(wkb_geometry)) AS r_min,
375        min(st_ymin(wkb_geometry)) AS h_min,
376        max(st_xmax(wkb_geometry)) AS r_max,
377        max(st_ymax(wkb_geometry)) AS h_max
378   FROM public.ax_flurstueck;
379
380COMMENT ON VIEW flurstuecks_minmax IS 'Maximale Ausdehnung von ax_flurstueck fuer EXTENT-Angabe im Mapfile';
381
382
383
384-- Nach Laden der Keytables:
385
386-- MAP ALT:
387-- 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"
388
389CREATE OR REPLACE VIEW baurecht
390AS
391  SELECT r.ogc_fid,
392         r.wkb_geometry,
393         r.gml_id,
394         r.artderfestlegung as adfkey, -- Art der Festlegung - Key
395         r."name",                     -- Eigenname des Gebietes
396         r.stelle,                     -- Stelle Key
397         r.bezeichnung AS rechtbez,    -- Verfahrensnummer
398         a.bezeichner  AS adfbez,      -- Art der Festlegung - Bezeichnung
399         d.bezeichnung AS stellbez     -- Stelle Bezeichnung
400      -- , d.stellenart                -- weiter entschluesseln?
401    FROM ax_bauraumoderbodenordnungsrecht r
402    LEFT JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a
403      ON r.artderfestlegung = a.wert
404    LEFT JOIN ax_dienststelle d
405      ON r.land = d.land AND r.stelle = d.stelle
406 ;
407
408-- MAP NEU:
409-- 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
410
411
412-- Man glaubt es kaum, aber im ALKIS haben Gemeinde und Gemarkung keinerlei Beziehung miteinander
413-- Nur durch Auswertung der FlurstÃŒcke kann man ermitteln, in welcher Gemeinde eine Gemarkung liegt.
414
415-- 2011-12-08 umbenannt
416
417CREATE OR REPLACE VIEW gemarkung_in_gemeinde
418AS
419  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
420  FROM            ax_flurstueck
421  ORDER BY        land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
422;
423
424COMMENT ON VIEW gemarkung_in_gemeinde IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.';
425
426
427-- Untersuchen, welche Geometrie-Typen vorkommen
428
429CREATE OR REPLACE VIEW arten_von_flurstuecksgeometrie
430AS
431 SELECT   count(gml_id) as anzahl,
432          st_geometrytype(wkb_geometry)
433 FROM     ax_flurstueck
434 GROUP BY st_geometrytype(wkb_geometry);
435
436
437-- A d r e s s e n
438
439-- Verschluesselte Lagebezeichnung (Strasse und Hausnummer) fuer eine Gemeinde
440-- Schluessel der Gemeinde nach Bedarf anpassen!
441
442--  FEHLER: Funktion to_char(character varying, unknown) existiert nicht
443
444
445CREATE VIEW  adressen_hausnummern
446AS
447    SELECT
448        s.bezeichnung AS strassenname,
449         g.bezeichnung AS gemeindename,
450         l.land,
451         l.regierungsbezirk,
452         l.kreis,
453         l.gemeinde,
454         l.lage        AS strassenschluessel,
455         l.hausnummer
456    FROM   ax_lagebezeichnungmithausnummer l 
457    JOIN   ax_gemeinde g
458      ON l.kreis=g.kreis
459     AND l.gemeinde=g.gemeinde
460    JOIN   ax_lagebezeichnungkatalogeintrag s
461      ON l.kreis=s.kreis
462     AND l.gemeinde=s.gemeinde
463     AND l.lage = s.lage        -- ab PostNAS 0.6
464    WHERE     l.gemeinde = 40;  -- "40" = Stadt Lage
465
466
467-- Zuordnung dieser Adressen zu Flurstuecken
468-- Schluessel der Gemeinde nach Bedarf anpassen!
469
470CREATE VIEW adressen_zum_flurstueck
471AS
472    SELECT
473           f.gemarkungsnummer,
474           f.flurnummer,
475           f.zaehler,
476           f.nenner,
477           g.bezeichnung AS gemeindename,
478           s.bezeichnung AS strassenname,
479           l.lage        AS strassenschluessel,
480           l.hausnummer
481      FROM   ax_flurstueck f
482      JOIN   alkis_beziehungen v
483        ON f.gml_id=v.beziehung_von
484      JOIN   ax_lagebezeichnungmithausnummer l 
485        ON l.gml_id=v.beziehung_zu
486      JOIN   ax_gemeinde g
487        ON l.kreis=g.kreis
488       AND l.gemeinde=g.gemeinde
489      JOIN   ax_lagebezeichnungkatalogeintrag s
490        ON l.kreis=s.kreis
491       AND l.gemeinde=s.gemeinde
492       AND l.lage = s.lage   -- ab PostNAS 0.6
493     WHERE v.beziehungsart='weistAuf'
494       AND l.gemeinde = 40  -- "40" = Stadt Lage
495     ORDER BY
496           f.gemarkungsnummer,
497           f.flurnummer,
498           f.zaehler,
499           f.nenner;
500
501
502-- FlurstÃŒcke eines EigentÃŒmers
503-- ----------------------------
504
505-- Dieser View liefert nur die (einfache) Buchungsart "GrundstÃŒck"
506-- Solche FÀlle wie "Erbbaurecht an GrundstÌck" oder "Wohnungs-/Teileigentum an aufgeteiltes GrundstÌck"
507-- oder "Miteigentum an aufteteiltes GrundstÃŒck" fehlen in deisere Auswertung.
508-- Dazu siehe: "rechte_eines_eigentuemers".
509
510-- Das Ergbenis ist gedacht fÃŒr den Export als CSV und Weiterverarbeitung mit einer Tabellenkalkulation
511-- oder einer einfachen Datenbank.
512
513-- Auch ein Export als Shape ist moeglich (dafuer: geom hinzugefuegt, Feldnamen gekuerzt)
514-- Kommando:
515--  pgsql2shp -h localhost -p 5432 -f "/data/.../alkis_fs_gemeinde.shp"  [db-name]  public.flurstuecke_eines_eigentuemers
516
517-- Übersicht der Tabellen:
518--
519-- Person <benennt< NamNum. >istBestandteilVon> Blatt <istBestandteilVon< Stelle >istGebucht> Flurstueck
520--                                              *-> Bezirk                *-> Buchungsart     *-> Gemarkung
521
522-- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx".
523
524CREATE VIEW flurstuecke_eines_eigentuemers
525AS
526   SELECT
527      k.bezeichnung                AS gemarkung,
528      k.gemarkungsnummer           AS gemkg_nr,
529      f.flurnummer                 AS flur,
530      f.zaehler                    AS fs_zaehler,
531      f.nenner                     AS fs_nenner,
532      f.amtlicheflaeche            AS flaeche,
533      f.wkb_geometry               AS geom,  -- fuer Export als Shape
534   -- g.bezirk,
535      b.bezeichnung                AS bezirkname,
536      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
537      g.blattart,
538      s.laufendenummer             AS bvnr,
539      art.bezeichner               AS buchgsart,
540   -- s.zaehler || '/' || s.nenner AS buchg_anteil,
541      n.laufendenummernachdin1421  AS name_num,
542   -- n.zaehler || '/' || n.nenner AS nam_anteil,
543      p.nachnameoderfirma          AS nachname --,
544   -- p.vorname
545   FROM       ax_person              p
546        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id
547        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id
548        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von
549        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id
550        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk
551        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id
552        JOIN  ax_buchungsstelle      s    ON s.gml_id = bgs.beziehung_von
553        JOIN  ax_buchungsstelle_buchungsart art ON s.buchungsart = art.wert
554        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = s.gml_id
555        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von
556        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer
557   WHERE p.nachnameoderfirma LIKE 'Gemeinde %'   -- ** Bei Bedarf anpassen!
558     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person
559     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch
560     AND bgs.beziehungsart = 'istBestandteilVon' -- Buchungs-Stelle >> Grundbuch
561     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> Buchungs-Stelle
562   ORDER BY   
563         k.bezeichnung,
564         f.flurnummer,
565         f.zaehler,
566         f.nenner,
567         g.bezirk,
568         g.buchungsblattnummermitbuchstabenerweiterung,
569         s.laufendenummer
570;
571
572
573-- Rechte eines EigentÃŒmers
574-- ------------------------
575
576-- Dieser View sucht speziell die FÀlle wo eine Buchungsstelle ein Recht "an" einer anderen Buchungsstelle hat.
577--  - "Erbbaurecht *an* GrundstÃŒck"
578--  - "Wohnungs-/Teileigentum *an* Aufgeteiltes GrundstÃŒck"
579--  - "Miteigentum *an* Aufteteiltes GrundstÃŒck"
580-- Suchkriterium ist der Name des EigentÃŒmers auf dem "herrschenden" Grundbuch, also dem Besitzer des Rechtes.
581
582-- Diese FÀlle fehlen im View "flurstuecke_eines_eigentuemers".
583
584-- Übersicht der Tabellen:
585--
586-- Person <benennt< NamNum. >istBestandteilVon> Blatt <istBestandteilVon< Stelle-h >an> Stelle-d >istGebucht> Flurstueck
587--
588
589-- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx".
590
591
592CREATE VIEW rechte_eines_eigentuemers
593AS
594   SELECT
595      k.bezeichnung                AS gemarkung,
596      k.gemarkungsnummer           AS gemkg_nr,
597      f.flurnummer                 AS flur,
598      f.zaehler                    AS fs_zaehler,
599      f.nenner                     AS fs_nenner,
600      f.amtlicheflaeche            AS flaeche,
601      f.wkb_geometry               AS geom,  -- fuer Export als Shape
602   -- g.bezirk,
603      b.bezeichnung                AS bezirkname,
604      g.buchungsblattnummermitbuchstabenerweiterung AS gb_blatt,
605   -- g.blattart,
606      sh.laufendenummer            AS bvnr_herr,
607      sh.zaehler || '/' || sh.nenner AS buchg_anteil_herr,
608      arth.bezeichner              AS buchgsa_herr,
609      bss.beziehungsart            AS bez_art,
610      artd.bezeichner              AS buchgsa_dien,
611      sd.laufendenummer            AS bvnr_dien,
612   -- sd.zaehler || '/' || sd.nenner AS buchg_anteil_dien,
613      n.laufendenummernachdin1421  AS name_num,
614   -- n.zaehler || '/' || n.nenner AS nam_anteil,
615      p.nachnameoderfirma          AS nachname --, 
616   -- p.vorname
617   FROM       ax_person              p
618        JOIN  alkis_beziehungen      bpn  ON bpn.beziehung_zu  = p.gml_id
619        JOIN  ax_namensnummer        n    ON bpn.beziehung_von =n.gml_id
620        JOIN  alkis_beziehungen      bng  ON n.gml_id = bng.beziehung_von
621        JOIN  ax_buchungsblatt       g    ON bng.beziehung_zu = g.gml_id
622        JOIN  ax_buchungsblattbezirk b    ON g.land = b.land AND g.bezirk = b.bezirk
623        JOIN  alkis_beziehungen      bgs  ON bgs.beziehung_zu = g.gml_id
624        JOIN  ax_buchungsstelle      sh   ON sh.gml_id = bgs.beziehung_von  -- herrschende Buchung
625        JOIN  ax_buchungsstelle_buchungsart arth ON sh.buchungsart = arth.wert
626        JOIN  alkis_beziehungen      bss  ON sh.gml_id = bss.beziehung_von
627        JOIN  ax_buchungsstelle      sd   ON sd.gml_id = bss.beziehung_zu   -- dienende Buchung
628        JOIN  ax_buchungsstelle_buchungsart artd ON sd.buchungsart = artd.wert
629        JOIN  alkis_beziehungen      bsf  ON bsf.beziehung_zu = sd.gml_id
630        JOIN  ax_flurstueck          f    ON f.gml_id = bsf.beziehung_von
631        JOIN  ax_gemarkung           k    ON f.land = k.land AND f.gemarkungsnummer = k.gemarkungsnummer
632   WHERE p.nachnameoderfirma LIKE 'Stadt %'   -- ** Bei Bedarf anpassen!
633     AND bpn.beziehungsart = 'benennt'           -- Namennummer     >> Person
634     AND bng.beziehungsart = 'istBestandteilVon' -- Namensnummer    >> Grundbuch
635     AND bgs.beziehungsart = 'istBestandteilVon' -- B-Stelle herr   >> Grundbuch
636     AND bss.beziehungsart in ('an','zu')        -- B-Stelle herr.  >> B-Stelle dien.
637     AND bsf.beziehungsart = 'istGebucht'        -- Flurstueck      >> B-Stelle dien
638   ORDER BY   
639         k.bezeichnung,
640         f.flurnummer,
641         f.zaehler,
642         f.nenner,
643         g.bezirk,
644         g.buchungsblattnummermitbuchstabenerweiterung,
645         sh.laufendenummer
646;
647
648-- END --
649
Note: See TracBrowser for help on using the repository browser.