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; |
---|
64 | CREATE OR REPLACE VIEW s_flurstueck_nr |
---|
65 | AS |
---|
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 | |
---|
83 | COMMENT 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 | |
---|
109 | CREATE OR REPLACE VIEW s_hausnummer_gebaeude |
---|
110 | AS |
---|
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 | |
---|
122 | COMMENT ON VIEW s_hausnummer_gebaeude IS 'fuer Kartendarstellung: Hausnummern HauptgebÀude'; |
---|
123 | |
---|
124 | |
---|
125 | |
---|
126 | |
---|
127 | -- Layer "ag_p_flurstueck" |
---|
128 | -- ----------------------- |
---|
129 | |
---|
130 | CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck |
---|
131 | AS |
---|
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 | |
---|
144 | COMMENT ON VIEW s_zugehoerigkeitshaken_flurstueck IS 'fuer Kartendarstellung'; |
---|
145 | |
---|
146 | |
---|
147 | -- Layer "s_zuordungspfeil_flurstueck" |
---|
148 | -- ----------------------------------- |
---|
149 | |
---|
150 | CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck |
---|
151 | AS |
---|
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 | |
---|
162 | COMMENT 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 | |
---|
170 | CREATE OR REPLACE VIEW s_beschriftung |
---|
171 | AS |
---|
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 | |
---|
188 | GRANT SELECT ON TABLE s_beschriftung TO ms5; |
---|
189 | |
---|
190 | COMMENT 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 |
---|
198 | CREATE OR REPLACE VIEW s_allgemeine_texte |
---|
199 | AS |
---|
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? |
---|
217 | CREATE OR REPLACE VIEW ap_pto_arten |
---|
218 | AS |
---|
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? |
---|
226 | CREATE OR REPLACE VIEW texte_mit_umbruch |
---|
227 | AS |
---|
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 | |
---|
238 | CREATE OR REPLACE VIEW s_allgemeine_texte_arten |
---|
239 | AS |
---|
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 | |
---|
251 | CREATE 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 | |
---|
258 | COMMENT 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 | |
---|
268 | CREATE VIEW baurecht |
---|
269 | AS |
---|
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 | |
---|
294 | CREATE VIEW gemeinde_in_gemarkung |
---|
295 | AS |
---|
296 | SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer |
---|
297 | FROM ax_flurstueck |
---|
298 | ORDER BY land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer |
---|
299 | ; |
---|
300 | |
---|
301 | COMMENT 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 | |
---|
306 | CREATE VIEW arten_von_flurstuecksgeometrie |
---|
307 | AS |
---|
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 | |
---|