Changeset 140 for trunk/data/konvert
- Timestamp:
- 12/09/11 14:29:57 (12 years ago)
- Location:
- trunk/data/konvert/postnas_0.6
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/konvert/postnas_0.6/gemeinden_definition.sql
r105 r140 1 1 2 2 -- ALKIS PostNAS 0.6 3 4 5 -- Teil 1: Anlegen der Tabellen 6 7 8 -- Stand 9 10 -- 2011-07-25 PostNAS 06, Umbenennung 11 -- 2011-12-08 Person -> Gemeinde 12 13 SET client_encoding = 'UTF-8'; 14 15 -- Alles auf Anfang! 16 17 -- DROP VIEW gemeinde_person_typ1; 18 -- DROP VIEW gemeinde_person_typ2; 19 20 -- DROP TABLE gemeinde_gemarkung; 21 3 22 4 23 -- ======================================================= … … 12 31 -- Da nicht stÀndig mit 'SELECT DISTINCT' sÀmtliche FlurstÃŒcke durchsucht werden können, 13 32 -- muss diese Information als (redundante) Tabelle nach dem Laden zwischengespeichert werden. 14 15 16 -- Teil 1: Anlegen der Tabelle17 18 -- Stand19 20 -- 2011-07-25 PostNAS 06, Umbenennung21 22 23 SET client_encoding = 'UTF-8';24 25 -- Alles auf Anfang!26 27 DROP TABLE gemeinde_gemarkung;28 33 29 34 CREATE TABLE gemeinde_gemarkung ( … … 45 50 46 51 COMMENT ON COLUMN gemeinde_gemarkung.gkz IS 'Gemeindekennziffer fÃŒr Mandant'; 52 53 54 -- ======================================================= 55 -- Tabelle fuer die Zuordnung vom EigentÃŒmern zu Gemeinden 56 -- ======================================================= 57 58 -- Die Feststellung, ob eine Person (Mit-) EigentÃŒmer von mindestens einem 59 -- FlurstÃŒck in einer Gemeinde ist, geht ÃŒber viele Relationen. 60 -- Dabei kann es mehrere Varianten geben. 61 -- Dies sollte nach dem Laden ermittelt und gespeichert werden, damit dies in 62 -- der Navigation auf einfache Art verwendet werden kann. 63 64 65 -- DROP TABLE gemeinde_person; 66 67 CREATE TABLE gemeinde_person ( 68 land integer, 69 regierungsbezirk integer, 70 kreis integer, 71 gemeinde integer, 72 person character varying(16), 73 buchtyp integer, 74 CONSTRAINT gemeinde_person_pk PRIMARY KEY (gemeinde, person) 75 ); 76 77 78 COMMENT ON TABLE gemeinde_person IS 'Person ist EigentÃŒmer von mindestens einem FlurstÃŒck in der Gemeinde'; 79 COMMENT ON COLUMN gemeinde_person.gemeinde IS 'Gemeindenummer'; 80 COMMENT ON COLUMN gemeinde_person.buchtyp IS 'Typ der Buchung 1=direkt, 2=Recht einer Buchungsstele an andere Buchungsstelle'; 81 COMMENT ON COLUMN gemeinde_person.person IS 'gml_id von Person'; 82 83 -- Index zum Filtern in der Buchauskunft 84 CREATE INDEX person_gemeinde ON gemeinde_person (person, gemeinde); 85 86 87 -- ======================================================= 88 -- VIEWs fuer die Zuordnung vom EigentÃŒmern zu Gemeinden 89 -- ======================================================= 90 91 -- "Normale" Buchungen 92 93 CREATE VIEW gemeinde_person_typ1 94 AS 95 SELECT DISTINCT 96 p.gml_id AS person, 97 g.land, g.regierungsbezirk, g.kreis, g.gemeinde 98 99 FROM ax_person p 100 101 -- Person < benennt < Namensnummer 102 JOIN alkis_beziehungen bpn ON bpn.beziehung_zu = p.gml_id -- Bez. Person - Nummer 103 JOIN ax_namensnummer n ON bpn.beziehung_von = n.gml_id 104 105 -- Namensnummer > istBestandteilVon > Blatt 106 JOIN alkis_beziehungen bnb ON bnb.beziehung_von = n.gml_id -- Bez. Nummer - Blatt 107 JOIN ax_buchungsblatt b ON bnb.beziehung_zu = b.gml_id 108 109 -- Blatt < istBestandteilVon < buchungsStelle 110 JOIN alkis_beziehungen bbg ON bbg.beziehung_zu = b.gml_id -- Bez. Blatt - Stelle 111 JOIN ax_buchungsstelle s ON bbg.beziehung_von = s.gml_id 112 113 -- buchungsStelle < istGebucht < flurstÃŒck 114 JOIN alkis_beziehungen bsf ON bsf.beziehung_zu = s.gml_id -- Bez. Stelle - FlurstÃŒck 115 JOIN ax_flurstueck f ON bsf.beziehung_von = f.gml_id 116 117 JOIN ax_gemarkung k ON f.land = k.land 118 AND f.gemarkungsnummer = k.gemarkungsnummer 119 JOIN gemeinde_gemarkung g ON k.gemarkungsnummer = g.gemarkung 120 121 WHERE bpn.beziehungsart = 'benennt' 122 AND bnb.beziehungsart = 'istBestandteilVon' 123 AND bbg.beziehungsart = 'istBestandteilVon' 124 AND bsf.beziehungsart = 'istGebucht' 125 ; 126 127 COMMENT ON VIEW gemeinde_person_typ1 IS 'Personen die EigentÃŒmer vom FlurstÃŒcken in einer Gemeinde sind. Typ1 = nomale Buchungen mit direkter Beziehung.'; 128 129 130 -- "Komplexe" Buchungen mit Rechten von Buchungen an Buchungen 131 132 CREATE VIEW gemeinde_person_typ2 133 AS 134 SELECT DISTINCT 135 p.gml_id AS person, 136 --bpn.beziehungsart AS bpnbez, 137 --bnb.beziehungsart AS bnbbez, 138 --bbg.beziehungsart AS bbgbez, 139 --bsf.beziehungsart AS bsfbez, 140 --k.gemarkungsnummer, 141 g.land, g.regierungsbezirk, g.kreis, g.gemeinde 142 143 FROM ax_person p 144 145 -- Person < benennt < Namensnummer 146 JOIN alkis_beziehungen bpn ON bpn.beziehung_zu = p.gml_id -- Bez. Person - Nummer 147 JOIN ax_namensnummer n ON bpn.beziehung_von = n.gml_id 148 149 -- Namensnummer > istBestandteilVon > Blatt 150 JOIN alkis_beziehungen bnb ON bnb.beziehung_von = n.gml_id -- Bez. Nummer - Blatt 151 JOIN ax_buchungsblatt b ON bnb.beziehung_zu = b.gml_id 152 153 -- Blatt < istBestandteilVon < buchungsStelle1 154 JOIN alkis_beziehungen bbg ON bbg.beziehung_zu = b.gml_id -- Bez. Blatt - Stelle 155 JOIN ax_buchungsstelle s1 ON bbg.beziehung_von = s1.gml_id 156 157 -- buchungsStelle2 < an < buchungsStelle1 158 JOIN alkis_beziehungen bss ON bss.beziehung_von = s1.gml_id -- Bez. Stelle - Stelle 159 JOIN ax_buchungsstelle s2 ON bss.beziehung_zu = s2.gml_id 160 161 -- buchungsStelle2 < istGebucht < flurstÃŒck 162 JOIN alkis_beziehungen bsf ON bsf.beziehung_zu = s2.gml_id -- Bez. Stelle - FlurstÃŒck 163 JOIN ax_flurstueck f ON bsf.beziehung_von = f.gml_id 164 165 JOIN ax_gemarkung k ON f.land = k.land 166 AND f.gemarkungsnummer = k.gemarkungsnummer 167 JOIN gemeinde_gemarkung g ON k.gemarkungsnummer = g.gemarkung 168 169 WHERE bpn.beziehungsart = 'benennt' 170 AND bnb.beziehungsart = 'istBestandteilVon' 171 AND bbg.beziehungsart = 'istBestandteilVon' 172 AND bss.beziehungsart = 'an' 173 AND bsf.beziehungsart = 'istGebucht' 174 -- LIMIT 100 -- Test-Option 175 ; 176 177 COMMENT ON VIEW gemeinde_person_typ2 IS 'Personen die EigentÃŒmer vom FlurstÃŒcken in einer Gemeinde sind. Typ2 = Buchungen mit Rechten einer Buchungssstelle an einer anderen.'; 178 179 180 -- Statistik ÃŒber die Buchungs-Typen je Gemeinde 181 CREATE VIEW gemeinde_person_statistik 182 AS 183 SELECT p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp, count(p.person) as personen 184 FROM gemeinde_person p 185 JOIN gemeinde_gemarkung g 186 ON p.land = g.land 187 AND p.regierungsbezirk = g.regierungsbezirk 188 AND p.kreis = g.kreis 189 AND p.gemeinde = g.gemeinde 190 GROUP BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp 191 ORDER BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, p.buchtyp 192 ; 193 194 COMMENT ON VIEW gemeinde_person_statistik IS 'ZÀhlen der Personen je Gemeinde und Buchungstyp'; 195 196 197 -- ENDE -- -
trunk/data/konvert/postnas_0.6/gemeinden_laden.sql
r105 r140 14 14 15 15 16 -- Teil 2: Laden der Tabelle 16 -- Teil 2: Laden der Tabellen 17 17 18 18 -- Stand 19 19 20 20 -- 2011-07-25 PostNAS 06, Umbenennung 21 -- 2011-12-08 Person -> Gemeinde 22 21 23 22 24 SET client_encoding = 'UTF-8'; … … 58 60 59 61 62 63 -- ======================================================= 64 -- Tabelle fuer die Zuordnung vom Eigentümern zu Gemeinden 65 -- ======================================================= 66 67 68 -- erst mal sauber machen 69 DELETE FROM gemeinde_person; 70 71 -- alle direkten Buchungen mit View ermitteln und in Tabelle speichern 72 -- Für eine Stadt: ca. 20 Sekunden 73 INSERT INTO gemeinde_person 74 (land, regierungsbezirk, kreis, gemeinde, person, buchtyp) 75 SELECT land, regierungsbezirk, kreis, gemeinde, person, 1 76 FROM gemeinde_person_typ1; 77 78 79 -- noch die komplexeren Buchungen ergänzen (Recht an ..) 80 -- Mit View ermitteln und in Tabelle speichern 81 -- Für eine Stadt: ca. 10 Sekunden 82 INSERT INTO gemeinde_person 83 ( land, regierungsbezirk, kreis, gemeinde, person, buchtyp) 84 SELECT q.land, q.regierungsbezirk, q.kreis, q.gemeinde, q.person, 2 85 FROM gemeinde_person_typ2 q -- Quelle 86 LEFT JOIN gemeinde_person z -- Ziel 87 ON q.person = z.person -- Aber nur, wenn dieser Fall im Ziel 88 AND q.land = z.land 89 AND q.regierungsbezirk = z.regierungsbezirk 90 AND q.kreis = z.kreis 91 AND q.gemeinde = z.gemeinde 92 WHERE z.gemeinde is Null; -- .. noch nicht vorhanden ist 93 94 60 95 -- ENDE -- -
trunk/data/konvert/postnas_0.6/sichten.sql
r120 r140 6 6 7 7 -- 2011-07-25 PostNAS 06, Umbenennung 8 -- 2011-10-20 Nummer NebengebÀude und Zuordnungspfeile fuer GebÀude ##### IN ARBEIT 9 -- 2011-12-08 umbenannt "gemeinde_in_gemarkung" -> "gemarkung_in_gemeinde" 8 10 9 11 -- ----------------------------------------- … … 27 29 -- Die FlurstÃŒcksnummer fehlt dann im WMS. 28 30 -- Die Bedingung vorÃŒbergehend heraus nehmen. Ursache klÀren! 29 30 -- 4.11.2011 Sichten fÃŒr die Grenzen aus der Tabelle ax_besondereflurstuecksgrenze Astrid Emde31 31 32 32 … … 78 78 79 79 80 -- Layer "ag_t_nebengeb" 81 -- --------------------- 82 83 CREATE OR REPLACE VIEW s_nummer_nebengebaeude 84 AS 85 SELECT ap_pto.ogc_fid, 86 ap_pto.wkb_geometry, 87 ap_pto.drehwinkel * 57.296 AS drehwinkel, -- umn: ANGLE [drehwinkel] 88 -- alkis_beziehungen.beziehungsart, -- TEST 89 -- ax_lagebezeichnungmitpseudonummer.pseudonummer, -- die HsNr des zugehoerigen Hauptgebaeudes 90 ax_lagebezeichnungmitpseudonummer.laufendenummer -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes 91 FROM ap_pto 92 JOIN alkis_beziehungen 93 ON ap_pto.gml_id = alkis_beziehungen.beziehung_von 94 JOIN ax_lagebezeichnungmitpseudonummer 95 ON alkis_beziehungen.beziehung_zu = ax_lagebezeichnungmitpseudonummer.gml_id 96 WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon' 97 ; 98 99 COMMENT ON VIEW s_nummer_nebengebaeude IS 'fuer Kartendarstellung: Hausnummern NebengebÀude'; 100 101 -- ToDo: Die Zahl in Klammern setzen ? (in Map oder View?) 102 80 103 81 104 -- Layer "ag_p_flurstueck" … … 140 163 141 164 COMMENT ON VIEW s_beschriftung IS 'ap_pto, die noch nicht in anderen Layern angezeigt werden'; 165 166 167 BAUSTELLE 168 169 170 -- Layer "s_zuordungspfeil_gebaeude" 171 -- ----------------------------------- 172 173 CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude 174 AS 175 SELECT ap_lpo.ogc_fid, 176 -- alkis_beziehungen.beziehungsart, -- TEST 177 -- ap_lpo.art, -- TEST 178 ap_lpo.wkb_geometry 179 FROM ap_lpo 180 JOIN alkis_beziehungen 181 ON ap_lpo.gml_id = alkis_beziehungen.beziehung_von 182 JOIN ax_gebaeude 183 ON alkis_beziehungen.beziehung_zu = ax_gebaeude.gml_id 184 WHERE ap_lpo.art = 'Pfeil' 185 AND alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon'; 186 187 COMMENT ON VIEW s_zuordungspfeil_gebaeude IS 'fuer Kartendarstellung'; 188 189 190 -- Sichten vom OBK (Oberbergischer Kreis) zu "Grenzen" 191 -- --------------------------------------------------- 192 -- Schema "alkis" daraus entfernt. 193 194 -- Feld "ax_besondereflurstuecksgrenze.artderflurstuecksgrenze" als Array "integer[]" ! 195 -- Anpassung Schema 18.09.2011 196 197 CREATE OR REPLACE VIEW sk2022_gemeindegrenze 198 AS 199 SELECT gemg.ogc_fid, gemg.wkb_geometry 200 FROM ax_besondereflurstuecksgrenze gemg 201 WHERE (7106 = ANY (gemg.artderflurstuecksgrenze)) 202 AND gemg.advstandardmodell ~~ 'DLKM'::text; 203 204 205 CREATE OR REPLACE VIEW sk2020_regierungsbezirksgrenze 206 AS 207 SELECT rbg.ogc_fid, rbg.wkb_geometry 208 FROM ax_besondereflurstuecksgrenze rbg 209 WHERE (7103 = ANY (rbg.artderflurstuecksgrenze)) 210 AND rbg.advstandardmodell ~~ 'DLKM'::text; 211 212 213 CREATE OR REPLACE VIEW sk2018_bundeslandgrenze 214 AS 215 SELECT blg.ogc_fid, blg.wkb_geometry 216 FROM ax_besondereflurstuecksgrenze blg 217 WHERE (7102 = ANY (blg.artderflurstuecksgrenze)) 218 AND blg.advstandardmodell ~~ 'DLKM'::text; 219 220 221 CREATE OR REPLACE VIEW sk2014_gemarkungsgrenze 222 AS 223 SELECT gemag.ogc_fid, gemag.wkb_geometry 224 FROM ax_besondereflurstuecksgrenze gemag 225 WHERE (7003 = ANY (gemag.artderflurstuecksgrenze)) 226 AND gemag.advstandardmodell ~~ 'DLKM'::text; 227 228 229 --CREATE OR REPLACE VIEW sk2012_flurgrenze 230 --AS 231 -- SELECT fg.ogc_fid, fg.wkb_geometry 232 -- FROM ax_besondereflurstuecksgrenze fg 233 -- WHERE (3000 = ANY (fg.artderflurstuecksgrenze)) 234 -- AND fg.advstandardmodell ~~ 'DLKM'::text; 235 236 -- Vorlaeufig, bis Schema umgestellt ist 237 238 CREATE OR REPLACE VIEW sk2012_flurgrenze 239 AS 240 SELECT fg.ogc_fid, fg.wkb_geometry 241 FROM ax_besondereflurstuecksgrenze fg 242 WHERE (3000 = fg.artderflurstuecksgrenze) 243 AND fg.advstandardmodell ~~ 'DLKM'::text; 244 245 -- comment .... 246 142 247 143 248 -- ------------------------------------------ … … 240 345 -- Nur durch Auswertung der FlurstÃŒcke kann man ermitteln, in welcher Gemeinde eine Gemarkung liegt. 241 346 242 CREATE OR REPLACE VIEW gemeinde_in_gemarkung 347 -- 2011-12-08 umbenannt 348 349 CREATE OR REPLACE VIEW gemarkung_in_gemeinde 243 350 AS 244 351 SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer … … 247 354 ; 248 355 249 COMMENT ON VIEW gem einde_in_gemarkungIS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.';356 COMMENT ON VIEW gemarkung_in_gemeinde IS 'Welche Gemarkung liegt in welcher Gemeinde? Durch Verweise aus FlurstÃŒck.'; 250 357 251 358 … … 481 588 ; 482 589 483 --484 -- Sichten fÃŒr Grenzen aus ax_besondereflurstuecksgrenze485 --486 -- Select distinct artderflurstuecksgrenze from ax_besondereflurstuecksgrenze487 Create view grenze_flur_3000 as488 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze489 where 3000 = ANY(artderflurstuecksgrenze);490 491 Create view grenze_gemarkung_7003 as492 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze493 where 7003 = ANY(artderflurstuecksgrenze);494 495 496 Create view grenze_regierungsbezirk_7103 as497 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze498 where 7103 = ANY(artderflurstuecksgrenze);499 500 Create view grenze_landkreisgrenze_7104 as501 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze502 where 7104 = ANY(artderflurstuecksgrenze);503 504 505 Create view grenze_gemeinde_7106 as506 Select ogc_fid, artderflurstuecksgrenze, wkb_geometry from ax_besondereflurstuecksgrenze507 where 7106 = ANY(artderflurstuecksgrenze);508 509 590 -- END -- 510 591
Note: See TracChangeset
for help on using the changeset viewer.