Changeset 176 for trunk/data/konvert


Ignore:
Timestamp:
04/17/12 18:35:28 (10 years ago)
Author:
frank.jaeger
Message:

Flurstücksnummern an Standard-Position aus Fläche generieren

Location:
trunk/data/konvert/postnas_0.7
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/data/konvert/postnas_0.7/pp_definition.sql

    r163 r176  
    88--  2012-02-13 PostNAS 07, Umbenennung 
    99--  2012-02-17 Optimierung 
     10--  2012-02-28 gkz aus View nehmen 
     11--  2012-04-17 Flurstuecksnummern auf Standardposition 
     12 
    1013 
    1114-- ============================ 
     
    6669 
    6770 
    68 COMMENT ON TABLE  pp_gemeinde                IS 'Post-Processing: Gemeinde'; 
    69 COMMENT ON COLUMN pp_gemeinde.gemeinde       IS 'Gemeindenummer'; 
    70 COMMENT ON COLUMN pp_gemeinde.gkz            IS 'Gemeindekennziffer fÃŒr Mandant'; 
    71 COMMENT ON COLUMN pp_gemeinde.the_geom       IS 'prÀzise Geometrie aus Summe aller Gemarkungen'; 
    72 COMMENT ON COLUMN pp_gemeinde.simple_geom    IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Übersichten in kleinen MaßstÀben.'; 
     71  COMMENT ON TABLE  pp_gemeinde                IS 'Post-Processing: Gemeinde'; 
     72  COMMENT ON COLUMN pp_gemeinde.gemeinde       IS 'Gemeindenummer'; 
     73--COMMENT ON COLUMN pp_gemeinde.gkz            IS 'Gemeindekennziffer fÃŒr Mandant'; 
     74  COMMENT ON COLUMN pp_gemeinde.the_geom       IS 'prÀzise Geometrie aus Summe aller Gemarkungen'; 
     75  COMMENT ON COLUMN pp_gemeinde.simple_geom    IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Übersichten in kleinen MaßstÀben.'; 
    7376 
    7477 
     
    152155 
    153156 
    154 -- pp_  ? 
     157-- Prefix "pp_" verwenden  ? 
    155158 
    156159--DROP TABLE gemeinde_person; 
     
    175178 
    176179 
     180-- Flurstuecksnummern-Position 
     181-- =========================== 
     182 
     183-- ersetzt den View "s_flurstueck_nr" fÃŒr WMS-Layer "ag_t_flurstueck" 
     184 
     185--DROP TABLE pp_flurstueck_nr; 
     186 
     187  CREATE TABLE pp_flurstueck_nr ( 
     188    gid         serial, 
     189    fsgml       character(16), 
     190    fsnum       character varying(10),  -- zzzzz/nnnn 
     191    CONSTRAINT pp_flurstueck_nr_pk  PRIMARY KEY (gid), 
     192    CONSTRAINT pp_flurstueck_nr_gml FOREIGN KEY (fsgml) 
     193      REFERENCES ax_flurstueck (gml_id) MATCH SIMPLE 
     194      ON UPDATE CASCADE ON DELETE CASCADE 
     195  ); 
     196 
     197SELECT AddGeometryColumn('pp_flurstueck_nr','the_geom','25832','POINT',2); 
     198 
     199-- Geometrischer Index 
     200CREATE INDEX pp_flurstueck_nr_gidx ON pp_flurstueck_nr USING gist(the_geom); 
     201 
     202-- Foreig-Key Index 
     203CREATE INDEX fki_pp_flurstueck_nr_gml ON pp_flurstueck_nr(fsgml); 
     204 
     205COMMENT ON TABLE  pp_flurstueck_nr           IS 'Post-Processing: Position der FlurstÃŒcksnummer in der Karte'; 
     206COMMENT ON COLUMN pp_flurstueck_nr.fsgml     IS 'gml_id des zugehörigen FlurstÃŒcks-Objektes'; 
     207COMMENT ON COLUMN pp_flurstueck_nr.fsnum     IS 'Label, Darzustellende FS-Nummer als Bruch'; 
     208COMMENT ON COLUMN pp_flurstueck_nr.the_geom  IS 'Position der FlurstÃŒcksnummer in der Karte'; 
     209 
     210 
    177211-- ===== 
    178212-- VIEWs  
     
    185219CREATE VIEW gemeinde_gemarkung 
    186220AS 
    187   SELECT g.land, g.regierungsbezirk, g.kreis, g.gemeinde, k.gemarkung, g.gemeindename, k.gemarkungsname, g.gkz 
     221  SELECT g.land, g.regierungsbezirk, g.kreis, g.gemeinde, k.gemarkung, g.gemeindename, k.gemarkungsname 
    188222  FROM pp_gemarkung k 
    189223  JOIN pp_gemeinde  g  
    190224    ON k.land = g.land  
    191    AND k.gemeinde = g.gemeinde 
    192 ; 
     225   AND k.gemeinde = g.gemeinde; 
    193226 
    194227-- VIEWs  fuer die Zuordnung vom EigentÃŒmern zu Gemeinden 
     
    228261    AND bnb.beziehungsart = 'istBestandteilVon' 
    229262    AND bbg.beziehungsart = 'istBestandteilVon' 
    230     AND bsf.beziehungsart = 'istGebucht' 
    231 ; 
     263    AND bsf.beziehungsart = 'istGebucht'; 
    232264 
    233265COMMENT ON VIEW gemeinde_person_typ1 IS 'Personen die EigentÃŒmer vom FlurstÃŒcken in einer Gemeinde sind. Typ1 = nomale Buchungen mit direkter Beziehung.'; 
     
    289321    AND  p.gemeinde = g.gemeinde 
    290322  GROUP BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp 
    291   ORDER BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, p.buchtyp 
    292 ; 
     323  ORDER BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, p.buchtyp; 
    293324 
    294325COMMENT ON VIEW gemeinde_person_statistik IS 'ZÀhlen der Personen je Gemeinde und Buchungstyp'; 
  • trunk/data/konvert/postnas_0.7/pp_laden.sql

    r163 r176  
    88--  2012-02-13 PostNAS 07, Umbenennung 
    99--  2012-02-17 Optimierung 
     10--  2012-04-17 Flurstuecksnummern auf Standardposition 
    1011 
    1112 
     
    2223 
    2324-- Die per PostProcessing gefüllten Tabellen bekommen den Profix "pp_".  
     25 
     26-- Die Ausführung dieses Scriptes auf einer Datenbank für eine 80T-Einwohner-Stadt dauert ca.: 500 Sek. ! 
     27 
     28 
     29 
     30-- =========================== 
     31-- Flurstuecksnummern-Position 
     32-- =========================== 
     33 
     34-- ersetzt den View "s_flurstueck_nr" für WMS-Layer "ag_t_flurstueck" 
     35 
     36  DELETE FROM pp_flurstueck_nr; 
     37 
     38  INSERT INTO pp_flurstueck_nr 
     39          ( fsgml, fsnum, the_geom ) 
     40    SELECT f.gml_id, 
     41           f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum, 
     42           p.wkb_geometry  -- manuelle Position des Textes 
     43      FROM ap_pto             p 
     44      JOIN alkis_beziehungen  v  ON p.gml_id       = v.beziehung_von 
     45      JOIN ax_flurstueck      f  ON v.beziehung_zu = f.gml_id 
     46     WHERE v.beziehungsart = 'dientZurDarstellungVon'  
     47     --AND p."art" = 'ZAE_NEN' 
     48   UNION  
     49    SELECT f.gml_id, 
     50           f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum, 
     51           ST_PointOnSurface(f.wkb_geometry) AS wkb_geometry  -- Flaechenmitte als Position des Textes 
     52      FROM      ax_flurstueck     f  
     53      LEFT JOIN alkis_beziehungen v  ON v.beziehung_zu = f.gml_id 
     54     WHERE v.beziehungsart is NULL 
     55  ; 
     56-- Ausführung: mittlere Stadt: ca. 4 - 18 Sec. 
    2457 
    2558 
  • trunk/data/konvert/postnas_0.7/sichten.sql

    r162 r176  
    66 
    77--  2012-02-25 PostNAS 07, Umbenennung 
     8--  2012-04-17 flstnr_ohne_position 
     9 
    810 
    911--  ----------------------------------------- 
     
    1214 
    1315 
    14 -- Layer "ag_t_flurstueck" 
    15 -- ----------------------- 
     16-- WMS-Layer "ag_t_flurstueck" 
     17-- --------------------------- 
    1618 
    1719-- Die Geometrie befindet sich in "ap_pto", der Label in "ax_flurstueck" 
     
    2022 
    2123-- Bruchnummerierung erzeugen 
     24-- ALT 2012-04-17: Diese Version zeigt nur die manuell gesetzten Positionen 
    2225CREATE OR REPLACE VIEW s_flurstueck_nr 
    2326AS  
    24  SELECT ap_pto.ogc_fid,  
    25         ap_pto.wkb_geometry,   -- Position des Textes 
    26     --  ax_flurstueck.flurstueckskennzeichen,   -- am Stueck, aufgefuellt, unpraktisch 
    27     --  ax_flurstueck.gemarkungsnummer,  -- integer 
    28     --  ax_flurstueck.flurnummer,        -- integer 
    29     --  ax_flurstueck.zaehler,           -- integer 
    30     --  ax_flurstueck.nenner,            -- integer oder NULL 
    31         ax_flurstueck.zaehler::text || COALESCE ('/' || ax_flurstueck.nenner::text, '') AS fsnum 
    32    FROM ap_pto 
    33    JOIN alkis_beziehungen  
    34      ON ap_pto.gml_id = alkis_beziehungen.beziehung_von 
    35    JOIN ax_flurstueck  
    36      ON alkis_beziehungen.beziehung_zu = ax_flurstueck.gml_id 
    37   WHERE alkis_beziehungen.beziehungsart = 'dientZurDarstellungVon' 
     27 SELECT f.ogc_fid,  
     28        p.wkb_geometry,  -- Position des Textes 
     29        f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum 
     30   FROM ap_pto             p 
     31   JOIN alkis_beziehungen  v  ON p.gml_id       = v.beziehung_von 
     32   JOIN ax_flurstueck      f  ON v.beziehung_zu = f.gml_id 
     33  WHERE v.beziehungsart = 'dientZurDarstellungVon'  
     34  --AND p."art" = 'ZAE_NEN' 
    3835  ; 
    3936 
    4037COMMENT ON VIEW s_flurstueck_nr IS 'fuer Kartendarstellung: Bruchnummerierung FlurstÃŒck'; 
     38 
     39-- NEU 2012-04-17 
     40-- Wenn keine manuelle Position gesetzt ist, wird die Flaechenmitte verwendet 
     41 
     42-- ACHTUNG: Dieser View kann nicht direkt im Mapserver-WMS verwendet werden. 
     43-- Die Anzeige ist zu langsam. Filterung ÃŒber BBOX kann nicht funktionieren, da zunÀchst ALLE Standardpositionen  
     44-- berechnet werden mÃŒssen, bevor darÃŒber gefiltert werden kann. 
     45 
     46-- FAZIT: In einer Hilfstabelle mit geometrischem Index zwischenspeichern. 
     47--        Siehe PostProcessing Tabelle "pp_flurstueck_nr" 
     48 
     49CREATE OR REPLACE VIEW s_flurstueck_nr2 
     50AS  
     51  SELECT f.ogc_fid,  
     52         p.wkb_geometry,  -- manuelle Position des Textes 
     53         f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum 
     54    FROM ap_pto             p 
     55    JOIN alkis_beziehungen  v  ON p.gml_id       = v.beziehung_von 
     56    JOIN ax_flurstueck      f  ON v.beziehung_zu = f.gml_id 
     57   WHERE v.beziehungsart = 'dientZurDarstellungVon'  
     58   --AND p."art" = 'ZAE_NEN' 
     59 UNION  
     60  SELECT f.ogc_fid, 
     61         ST_PointOnSurface(f.wkb_geometry) AS wkb_geometry,  -- Flaechenmitte als Position des Textes 
     62         f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum 
     63    FROM      ax_flurstueck     f  
     64    LEFT JOIN alkis_beziehungen v  ON v.beziehung_zu = f.gml_id 
     65   WHERE v.beziehungsart is NULL 
     66  ; 
     67 
     68COMMENT ON VIEW s_flurstueck_nr2 IS 'Bruchnummerierung FlurstÃŒck, auch Standard-Position. Nicht direkt fuer WMS verwenden'; 
    4169 
    4270 
     
    313341--  Sichten fuer Fehlersuche und Daten-Analyse 
    314342--  ------------------------------------------ 
     343 
     344 
     345-- FlurstÃŒcke mit Anzeige der FlurstÃŒcksnummer an der "Standardposition" 
     346 
     347-- Nach der Konvertierung aus ALK hat zunÀchst jedes FlurstÃŒck eine explizit gesetzte Position der FlurstÃŒcksnummer. 
     348 
     349-- Nach einer manuellen Teilung bekommen die neuen FlurstÃŒcke im ALKIS nur dann eine Position, 
     350-- wenn die Positioin manuell bestimmt (verschoben) wurde. 
     351-- Wenn die FlurstÃŒcksnummer an ihrer "Standardposition" angezeigt werden soll,  
     352-- dann wird diese in den Daten (DHK, NAS) nicht gesetzt. 
     353-- Der Konverter PostNAS konvertiert aber nur die Daten, die er bekommt, er setzt nicht die Standard-Position  
     354-- fÃŒr die FlurstÃŒcke, die ohne eine manuelle Position kommen. 
     355 
     356-- Diese FÀlle identifizieren 
     357CREATE OR REPLACE VIEW flstnr_ohne_position 
     358AS  
     359 SELECT f.gml_id,  
     360        f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS such -- Suchstring fÃŒr ALKIS-Navigation nach FS-Kennzeichen 
     361 FROM        ax_flurstueck     f  
     362   LEFT JOIN alkis_beziehungen v  ON v.beziehung_zu = f.gml_id 
     363 --LEFT JOIN ap_pto            p  ON p.gml_id       = v.beziehung_von 
     364  WHERE v.beziehungsart is NULL 
     365--ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler 
     366  ; 
     367 
     368COMMENT ON VIEW flstnr_ohne_position IS 'FlurstÃŒcke ohne manuell gesetzte Position fÃŒr die PrÀsentation der FS-Nr'; 
     369 
    315370 
    316371-- Zeigt die Texte an, die nicht in einem der Mapfile-Views verarbeitet werden 
Note: See TracChangeset for help on using the changeset viewer.