Ignore:
Timestamp:
10/24/13 14:48:50 (7 years ago)
Author:
frank.jaeger
Message:

PostProcesssing? Straßen-Namen, Tab pp_strassenname ersetzt ap_pto_stra

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/import/pp_laden.sql

    r278 r296  
    1414--  2013-02-06 A.E. Function-Name an PostGIS 2 angepasst: multi() -> st_multi(), simplify() -> st_simplify() 
    1515--  2013-02-21 F.J. doppelte Buchungen zum Flurstück aus alkis_beziehungen beseitigen, die nach NAS replace auftreten 
     16--  2013-07-10 F.J. Bereinigen der alkis_beziehungen auskommentiert, wird jetzt im Trigger gelöst. 
     17--  2012-10-24 Neue Tabelle für die Präsentation von Straßennamen und -Klassifikationen 
    1618 
    1719-- ============================ 
     
    4042-- Siehe Schema in FUNCTION delete_feature_kill 
    4143 
    42 DELETE  
    43   FROM alkis_beziehungen AS bezalt        -- Beziehung Alt 
    44  WHERE EXISTS 
    45        (SELECT ogc_fid 
    46          FROM alkis_beziehungen AS bezneu -- Beziehung Neu 
    47         WHERE bezalt.beziehung_von = bezneu.beziehung_von 
    48           AND bezalt.beziehung_zu  = bezneu.beziehung_zu 
    49           AND bezalt.beziehungsart = bezneu.beziehungsart 
    50           AND bezalt.ogc_fid       < bezneu.ogc_fid 
    51         ); 
     44-- 2013-07-10 Das folgende Delete auskommentiert. Das wird jetzt im Trigger gelöst. 
     45------ 
     46--      DELETE  
     47--        FROM alkis_beziehungen AS bezalt        -- Beziehung Alt 
     48--       WHERE EXISTS 
     49--                 (SELECT ogc_fid 
     50--                       FROM alkis_beziehungen AS bezneu -- Beziehung Neu 
     51--                      WHERE bezalt.beziehung_von = bezneu.beziehung_von 
     52--                        AND bezalt.beziehung_zu  = bezneu.beziehung_zu 
     53--                        AND bezalt.beziehungsart = bezneu.beziehungsart 
     54--                        AND bezalt.ogc_fid       < bezneu.ogc_fid 
     55--                      ); 
     56------ 
     57 
    5258-- Denkbar ist eine Variante für den Trigger, die zusätzlich 
    5359-- auf eine bestimmte gml_id filtert. 
     
    95101 
    96102 
    97 -- Version Frank Jäger, Lemgo  
    98 DELETE 
    99 -- SELECT *   -- TEST: erst mal schauen, was gelöscht würde, wenn ... 
    100 FROM alkis_beziehungen b 
    101 WHERE b.beziehungsart = 'istGebucht' 
    102   -- Die erste subquery zählt die Buchungen zu einer (Flurstücks-) gml_id. 
    103   -- Es wird nur dort gelöscht, wo mehrerer Buchungen existieren. 
    104   AND 1 <  
    105      ( SELECT count(f1.ogc_fid) AS anzfs 
    106         FROM ax_flurstueck f1 
    107         JOIN alkis_beziehungen z 
    108           ON f1.gml_id = z.beziehung_von 
    109        WHERE f1.gml_id = b.beziehung_von 
    110          AND z.beziehungsart = 'istGebucht' 
    111        GROUP BY f1.gml_id ) 
    112   -- Die zweite Subquery liefert die letzte (= aktuelle) Beziehung. 
    113   -- Diese aktuelle Buchung wird vom Löschen ausgeschlossen. 
    114   AND b.ogc_fid < 
    115      ( SELECT max(a.ogc_fid) AS maxi 
    116         FROM ax_flurstueck f2 
    117         JOIN alkis_beziehungen a 
    118           ON f2.gml_id = a.beziehung_von 
    119        WHERE f2.gml_id = b.beziehung_von 
    120          AND a.beziehungsart = 'istGebucht' 
    121        GROUP BY a.beziehung_von ) 
    122 -- bei Test mit SELECT darf man sortieren: 
    123 --  ORDER BY b.beziehung_von, b.ogc_fid 
    124 ; 
    125  
     103-- 2013-07-10 Das folgende Delete auskommentiert. Das wird jetzt im Trigger gelöst 
     104------ 
     105--      -- Version Frank Jäger, Lemgo  
     106--      DELETE 
     107--      -- SELECT *   -- TEST: erst mal schauen, was gelöscht würde, wenn ... 
     108--      FROM alkis_beziehungen b 
     109--      WHERE b.beziehungsart = 'istGebucht' 
     110--        -- Die erste subquery zählt die Buchungen zu einer (Flurstücks-) gml_id. 
     111--        -- Es wird nur dort gelöscht, wo mehrerer Buchungen existieren. 
     112--        AND 1 <  
     113--               ( SELECT count(f1.ogc_fid) AS anzfs 
     114--                      FROM ax_flurstueck f1 
     115--                      JOIN alkis_beziehungen z 
     116--                        ON f1.gml_id = z.beziehung_von 
     117--                 WHERE f1.gml_id = b.beziehung_von 
     118--                       AND z.beziehungsart = 'istGebucht' 
     119--                 GROUP BY f1.gml_id ) 
     120--        -- Die zweite Subquery liefert die letzte (= aktuelle) Beziehung. 
     121--        -- Diese aktuelle Buchung wird vom Löschen ausgeschlossen. 
     122--        AND b.ogc_fid < 
     123--               ( SELECT max(a.ogc_fid) AS maxi 
     124--                      FROM ax_flurstueck f2 
     125--                      JOIN alkis_beziehungen a 
     126--                        ON f2.gml_id = a.beziehung_von 
     127--                 WHERE f2.gml_id = b.beziehung_von 
     128--                       AND a.beziehungsart = 'istGebucht' 
     129--                 GROUP BY a.beziehung_von ) 
     130--      -- bei Test mit SELECT darf man sortieren: 
     131--      --  ORDER BY b.beziehung_von, b.ogc_fid 
     132--      ; 
     133------ 
    126134 
    127135 
     
    190198 
    191199 
     200-- Straßen - N a m e n  und  - K l a s s i f i k a t i o n 
     201-- NEU 2013-10-24 
     202-- Tabellen für die Präsentation von Straßen-Namen und -Klassifikationen 
     203-- Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in der Tabelle "pp_strassenname". 
     204-- Der View übernimmt die Auswahl des passenden "advstandardmodell" und rechnet den Winkel passend um. 
     205-- In der Tabelle werden dann die leer gebliebenen Label aus dem Katalog noch ergänzt.  
     206 
     207-- Tabelle aus View befüllen 
     208TRUNCATE pp_strassenname; 
     209INSERT INTO pp_strassenname (schriftinhalt, hor, ver, art, winkel, the_geom) 
     210       SELECT schriftinhalt, hor, ver, art, winkel, wkb_geometry 
     211       FROM ap_pto_stra; -- View sucht das passende advstandardmodell 
     212 
     213-- Schriftinhalt ergänzen 
     214--DATE ap_pto           p  -- Präsentationsobjekte Punktförmig 
     215UPDATE pp_strassenname  p 
     216   SET schriftinhalt =     -- Hier fehlt der Label 
     217   -- Subquery "Gib mir den Straßennamen": 
     218   ( SELECT k.bezeichnung                       -- Straßenname .. 
     219       FROM ax_lagebezeichnungkatalogeintrag k  --  .. aus Katalog 
     220       JOIN ax_lagebezeichnungohnehausnummer l  -- verwendet als Lage o.H. 
     221         ON (k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk  
     222             AND k.kreis=l.kreis AND k.gemeinde=l.gemeinde AND k.lage=l.lage ) 
     223       JOIN alkis_beziehungen x ON l.gml_id = x.beziehung_zu  -- Relation zum Präsentationsobjekt 
     224      WHERE p.gml_id = x.beziehung_von 
     225        AND x.beziehungsart = 'dientZurDarstellungVon' 
     226      -- LIMIT 1 -- war in einem Fall notwendig, wo 2mal der gleiche Text zugeordnet war, Ursache? 
     227   ) 
     228 WHERE     p.schriftinhalt IS NULL 
     229   AND NOT p.the_geom      IS NULL; 
     230 
     231 
    192232-- ======================================================== 
    193233-- Tabellen fuer die Zuordnung vom Gemarkungen zu Gemeinden 
Note: See TracChangeset for help on using the changeset viewer.