Ignore:
Timestamp:
08/28/14 11:29:21 (10 years ago)
Author:
frank.jaeger
Message:

Beginn der Umstellung von Datenbank-Schema und Views.
Noch nicht ausgetestet.
Programme noch nicht umgestellt.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Version-0.8/import/sichten_wms.sql

    r296 r324  
    33-- ===== 
    44 
    5 --  PostNAS 0.7 
     5--  PostNAS 
    66 
    77--  ----------------------------------------- 
     
    2222--  2013-04-22 art="PNR" (Pseudonummer) 
    2323--  2013-10-24 View ap_pto_stra wird ersetzt durch die Tabellen "pp_strassenname" und "pp_strassenklas", die im postProcessing gefÃŒllt werden. 
    24  
    25  
    26 -- WMS-Layer "ag_t_flurstueck" 
    27 -- --------------------------- 
    28 -- Die Geometrie befindet sich in "ap_pto", der Label in "ax_flurstueck" 
    29 -- Die Verbindung erfolgt ÃŒber "alkis_beziehungen" 
    30  
    31 -- Bruchnummerierung erzeugen 
    32 -- ALT 2012-04-17: Diese Version zeigt nur die manuell gesetzten Positionen 
    33 -- 2013-04-18 auskommentiert 
    34 --      CREATE OR REPLACE VIEW s_flurstueck_nr 
    35 --      AS  
    36 --       SELECT f.ogc_fid,  
    37 --                      p.wkb_geometry,  -- Position des Textes 
    38 --                      f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum 
    39 --         FROM ap_pto             p 
    40 --         JOIN alkis_beziehungen  v  ON p.gml_id       = v.beziehung_von 
    41 --         JOIN ax_flurstueck      f  ON v.beziehung_zu = f.gml_id 
    42 --        WHERE v.beziehungsart = 'dientZurDarstellungVon'  
    43 --              AND p.endet IS NULL  AND f.endet IS NULL; 
    44 --      COMMENT ON VIEW s_flurstueck_nr IS 'Sicht fÃŒr Kartendarstellung ÃŒber PostProcessing: Bruchnummerierung FlurstÃŒck (nur manuell gesetzte Positionen)'; 
    45  
    46 -- Wenn keine manuelle Position gesetzt ist, wird die Flaechenmitte verwendet 
    47  
    48 -- ACHTUNG: Dieser View kann nicht direkt im Mapserver-WMS verwendet werden. 
    49 -- Die Anzeige ist zu langsam. Filterung ÃŒber BBOX kann nicht funktionieren, da zunÀchst ALLE Standardpositionen  
    50 -- berechnet werden mÃŒssen, bevor darÃŒber gefiltert werden kann. 
    51  
    52 -- In einer Hilfstabelle mit geometrischem Index zwischenspeichern. 
    53 -- Siehe PostProcessing: Tabelle "pp_flurstueck_nr" 
    54  
    55 -- 2013-04-18 auskommentiert 
    56 --      CREATE OR REPLACE VIEW s_flurstueck_nr2 
    57 --      AS  
    58 --        SELECT f.ogc_fid,  
    59 --                       p.wkb_geometry,  -- manuelle Position des Textes 
    60 --                       f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum 
    61 --              FROM ap_pto             p 
    62 --              JOIN alkis_beziehungen  v  ON p.gml_id       = v.beziehung_von 
    63 --              JOIN ax_flurstueck      f  ON v.beziehung_zu = f.gml_id 
    64 --         WHERE v.beziehungsart = 'dientZurDarstellungVon'  
    65 --               AND p.endet IS NULL 
    66 --               AND f.endet IS NULL 
    67 --       UNION  
    68 --        SELECT f.ogc_fid, 
    69 --                       ST_PointOnSurface(f.wkb_geometry) AS wkb_geometry,  -- FlÀchenmitte als Position des Textes 
    70 --                       f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum 
    71 --              FROM      ax_flurstueck     f  
    72 --              LEFT JOIN alkis_beziehungen v  ON v.beziehung_zu = f.gml_id 
    73 --         WHERE v.beziehungsart is NULL AND f.endet IS NULL; 
    74 --      COMMENT ON VIEW s_flurstueck_nr2  
    75 --       IS 'Sicht fÃŒr Kartendarstellung ÃŒber PostProcessing: Bruchnummerierung FlurstÃŒck, auch Standard-Position. Nicht direkt fuer WMS verwenden!'; 
     24--  2014-02-24 Kein Filter auf advstandardmodell bei FlurstÃŒcks-Zuordnungspfeil 
     25--  2014-08-26 View "ap_lto_stra" analog "ap_pto_stra" fÃŒr Straßennamen auf Linien-Geometrie 
     26 
     27--  2014-08-27 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen. 
     28--             Relationen nun direkt ÃŒber neue Spalten in den Objekttabellen.  
    7629 
    7730 
     
    8033-- Problem: Zu einigen GebÀuden gibt es mehrere Hausnummern. 
    8134-- Diese unterscheiden sich im Feld ap_pto.advstandardmodell 
    82 -- z.B. 3 verschiedene EintrÀge mit <NULL>, {DKKM500}, {DKKM1000}, (Beispiel; Lage, Lange Straße 15 c) 
    83  
    84  -- DROP VIEW s_hausnummer_gebaeude; 
    85  --     CREATE OR REPLACE VIEW s_hausnummer_gebaeude  
    86  --     AS  
    87  --      SELECT p.ogc_fid, p.wkb_geometry, 
    88  --                     p.drehwinkel * 57.296 AS drehwinkel, -- umn: ANGLE [drehwinkel] 
    89  --                     l.hausnummer                                     -- umn: LABELITEM 
    90  --        FROM ap_pto p 
    91  --        JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von 
    92  --        JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu  = l.gml_id 
    93  --       WHERE v.beziehungsart = 'dientZurDarstellungVon' 
    94  --             AND p.endet IS NULL AND l.endet IS NULL; 
    95  --     COMMENT ON VIEW s_hausnummer_gebaeude IS 'fuer Kartendarstellung: Hausnummern HauptgebÀude'; 
    96  
    97 -- Verbesserte Version 2013-03-07 
    98 -- Nimmt nun vorzugsweise den Text der Darstellung aus ap_pto (bei ibR immer gefÃŒllt). 
    99 -- Wenn der nicht gefÃŒllt ist, wird statt dessen die Nummer aus der verknÃŒpften Labebezeichnung  
    100 -- verwendet (der hÀufigste Fall bei AED).  
     35-- z.B. 3 verschiedene EintrÀge mit <NULL>, {DKKM500}, {DKKM1000} 
     36 
     37-- Nimmt vorzugsweise den Text der Darstellung aus ap_pto (nach der Migration zunÀchst ibR immer gefÃŒllt). 
     38-- Wenn der nicht gefÃŒllt ist, wird statt dessen die Nummer aus der verknÃŒpften Labebezeichnung verwendet. 
     39 
     40 
     41/*  
     42-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
     43 
    10144CREATE OR REPLACE VIEW s_hausnummer_gebaeude  
    10245AS  
    10346 SELECT p.ogc_fid,  
    104         p.wkb_geometry,                               -- Point 
     47        p.wkb_geometry,                            -- Point 
    10548        p.drehwinkel * 57.296 AS drehwinkel,  -- umn: ANGLE 
    10649    --  p.art, 
     
    12164        AND p.endet IS NULL 
    12265        AND l.endet IS NULL; 
     66 
     67*/ 
     68 
     69-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     70CREATE OR REPLACE VIEW s_hausnummer_gebaeude  
     71AS  
     72 SELECT p.ogc_fid,  
     73        p.wkb_geometry,                       -- Point 
     74        p.drehwinkel * 57.296 AS drehwinkel,  -- umn: ANGLE 
     75    --  p.horizontaleausrichtung  AS hor,     -- = 'zentrisch' 
     76    --  p.vertikaleausrichtung    AS ver,     -- = 'Basis' (oft), "Mitte" (selten) 
     77    --  p.schriftinhalt,                      -- WMS: das bessere LABELITEM, kann aber leer sein 
     78    --  l.hausnummer,                         -- WMS: LABELITEM default/native 
     79        COALESCE(p.schriftinhalt, l.hausnummer) AS hausnummer 
     80   FROM ap_pto p 
     81   JOIN ax_lagebezeichnungmithausnummer l       ON l.gml_id = ANY (p.dientzurdarstellungvon)  
     82  WHERE p.art = 'HNR' 
     83    AND 'DKKM1000' = ANY (p.advstandardmodell) -- erste NÀherungslösung um Redundanzen zu unterdrÃŒcken 
     84    AND p.endet IS NULL 
     85    AND l.endet IS NULL; 
     86 
    12387COMMENT ON VIEW s_hausnummer_gebaeude IS 'Sicht fÃŒr Kartendarstellung: Hausnummern der HauptgebÀude.'; 
    12488-- ibR: darzustellender Text steht immer in ap_pto.schriftinhalt 
     
    12892--   Das wÃŒrde die COALESCE-Trickserei ersparen 
    12993 
    130  
    13194-- Layer "ag_t_nebengeb" 
    13295-- --------------------- 
    133 -- 2013-03-05: Diese Abfrage liefert keine Daten mehr. 
    134 --      CREATE OR REPLACE VIEW s_nummer_nebengebaeude  
    135 --      AS  
    136 --       SELECT p.ogc_fid, p.wkb_geometry,  
    137 --                      p.drehwinkel * 57.296 AS drehwinkel,    -- umn: ANGLE [drehwinkel] 
    138 --               -- l.pseudonummer,                     -- die HsNr des zugehoerigen Hauptgebaeudes 
    139 --                      l.laufendenummer                -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes 
    140 --         FROM ap_pto p 
    141 --         JOIN alkis_beziehungen v  
    142 --               ON p.gml_id = v.beziehung_von 
    143 --         JOIN ax_lagebezeichnungmitpseudonummer l 
    144 --               ON v.beziehung_zu  = l.gml_id 
    145 --        WHERE v.beziehungsart = 'dientZurDarstellungVon' 
    146 --              AND p.endet IS NULL AND l.endet IS NULL; 
    147 --      COMMENT ON VIEW s_nummer_nebengebaeude IS 'Sicht fÃŒr Kartendarstellung: Hausnummern NebengebÀude (manuelle Position)'; 
    148  
    149 -- Suche nach einem Ersatz: 
    15096-- ax_gebaeude  >hat>  ax_lagebezeichnungmitpseudonummer, kein Drehwinkel. 
     97 
     98/*  
     99-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
     100 
    151101CREATE OR REPLACE VIEW lfdnr_nebengebaeude  
    152102AS  
    153103 SELECT g.ogc_fid,  
    154104        g.wkb_geometry,  
    155     --  l.pseudonummer,                 -- TEST die HsNr des zugehoerigen Hauptgebaeudes 
    156         l.laufendenummer                -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes 
     105    --  l.pseudonummer,      -- TEST die HsNr des zugehoerigen Hauptgebaeudes 
     106        l.laufendenummer     -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes 
    157107   FROM ax_gebaeude g 
    158108   JOIN alkis_beziehungen v  
     
    162112   WHERE v.beziehungsart = 'hat' 
    163113     AND g.endet IS NULL 
    164      AND g.endet IS NULL; 
     114     AND l.endet IS NULL; 
     115 
     116*/ 
     117-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     118CREATE OR REPLACE VIEW lfdnr_nebengebaeude  
     119AS  
     120 SELECT g.ogc_fid,  
     121        g.wkb_geometry,  
     122        l.laufendenummer     -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes 
     123   FROM ax_gebaeude g 
     124   JOIN ax_lagebezeichnungmitpseudonummer l 
     125     ON g.hat = l.gml_id 
     126   WHERE g.endet IS NULL AND l.endet IS NULL; 
     127 
    165128COMMENT ON VIEW lfdnr_nebengebaeude  
    166129  IS 'Sicht fÃŒr Kartendarstellung: Laufende Nummer des NebengebÀudes zu einer Lagebezeichnung mit der FlÀchengeometrie des GebÀudes'; 
    167  
    168130 
    169131-- GebÀude-Text 
     
    180142  WHERE g.endet IS NULL  
    181143    AND g.gebaeudefunktion < 9998; -- "Nach Quellenlage nicht zu spezifizieren" braucht man nicht anzeigen 
     144 
    182145COMMENT ON VIEW gebaeude_txt  
    183146  IS 'Sicht fÃŒr Kartendarstellung: Name zum GebÀude und EntschlÃŒsselung der GebÀude-Funktion (Ersatz fÃŒr Symbole)'; 
    184147 
    185  
    186148-- Layer "ag_p_flurstueck" 
    187149-- ----------------------- 
     150 
     151/*  
     152-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    188153CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck  
    189154AS  
     
    201166    AND f.endet IS NULL 
    202167    AND p.endet IS NULL; 
     168 
     169*/ 
     170 
     171-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     172CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck  
     173AS  
     174 SELECT p.ogc_fid,  
     175        p.wkb_geometry,  
     176        p.drehwinkel * 57.296 AS drehwinkel 
     177   FROM ap_ppo p 
     178   JOIN ax_flurstueck f 
     179     ON f.gml_id = ANY (p.dientZurDarstellungVon)   
     180  WHERE p.art = 'Haken' 
     181    AND f.endet IS NULL 
     182    AND p.endet IS NULL; 
     183 
    203184COMMENT ON VIEW s_zugehoerigkeitshaken_flurstueck  
    204185  IS 'Sicht fÃŒr Kartendarstellung: Zugehörigkeitshaken zum FlurstÃŒck.'; 
    205186 
    206  
    207187-- Layer "s_zuordungspfeil_flurstueck" (Signaturnummer 2004) 
    208188-- ----------------------------------- 
     189 
     190/*  
     191-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
     192 
    209193CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck  
    210194AS  
     
    218202  WHERE l.art = 'Pfeil' 
    219203    AND v.beziehungsart = 'dientZurDarstellungVon' 
    220     AND ('DKKM1000' ~~ ANY (l.advstandardmodell)) 
    221204    AND f.endet IS NULL 
    222205    AND l.endet IS NULL; 
    223 -- Die OBK-Alternative "sk2004_zuordnungspfeil" wird NICHT verwendet. Siehe dort. 
     206 
     207*/ 
     208-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     209CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck  
     210AS  
     211 SELECT l.ogc_fid,  
     212        l.wkb_geometry 
     213   FROM ap_lpo l 
     214   JOIN ax_flurstueck f 
     215     ON f.gml_id = ANY (l.dientZurDarstellungVon)  
     216  WHERE l.art = 'Pfeil' 
     217    AND f.endet IS NULL 
     218    AND l.endet IS NULL; 
     219 
    224220COMMENT ON VIEW s_zuordungspfeil_flurstueck  
    225221  IS 'Sicht fÃŒr Kartendarstellung: Zuordnungspfeil zur FlurstÃŒcksnummer, Liniengeometrie.'; 
    226222 
    227  
     223/*  
     224-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    228225CREATE OR REPLACE VIEW s_zuordungspfeilspitze_flurstueck  
    229226AS  
     
    239236  WHERE l.art = 'Pfeil' 
    240237    AND v.beziehungsart = 'dientZurDarstellungVon' 
    241     AND ('DKKM1000' ~~ ANY (l.advstandardmodell)) 
    242238    AND f.endet IS NULL 
    243239    AND l.endet IS NULL; 
    244 -- Die OBK-Alternativen "sk2004_zuordnungspfeil_spitze" wird NICHT verwendet. Siehe dort. 
     240 
     241*/ 
     242-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     243CREATE OR REPLACE VIEW s_zuordungspfeilspitze_flurstueck  
     244AS  
     245 SELECT l.ogc_fid,  
     246        (((st_azimuth(st_pointn(l.wkb_geometry, 1),  
     247        st_pointn(l.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel,  
     248        st_startpoint(l.wkb_geometry) AS wkb_geometry  
     249   FROM ap_lpo l 
     250   JOIN ax_flurstueck f 
     251     ON f.gml_id = ANY (l.dientzurdarstellungvon)  
     252  WHERE l.art = 'Pfeil' 
     253    AND f.endet IS NULL 
     254    AND l.endet IS NULL; 
     255 
    245256COMMENT ON VIEW s_zuordungspfeilspitze_flurstueck  
    246257  IS 'Sicht fÃŒr Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer, Spitze, Punktgeometrie mit Drehwinkel.'; 
     
    251262-- Zuordnungspfeil BodenschÀtzung (Signaturnummer 2701) 
    252263-- ---------------------------------------------------- 
     264 
     265/*  
     266-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    253267CREATE OR REPLACE VIEW s_zuordungspfeil_bodensch 
    254268AS  
     
    265279    AND b.endet IS NULL 
    266280    AND l.endet IS NULL; 
     281 
     282*/ 
     283 
     284-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     285CREATE OR REPLACE VIEW s_zuordungspfeil_bodensch 
     286AS  
     287 SELECT l.ogc_fid,  
     288        l.wkb_geometry 
     289   FROM ap_lpo l 
     290   JOIN ax_bodenschaetzung b 
     291     ON b.gml_id = ANY (l.dientzurdarstellungvon) 
     292  WHERE l.art = 'Pfeil' 
     293    AND ('DKKM1000' = ANY (l.advstandardmodell)) 
     294    AND b.endet IS NULL 
     295    AND l.endet IS NULL; 
     296 
    267297COMMENT ON VIEW s_zuordungspfeil_bodensch  
    268298  IS 'Sicht fÃŒr Kartendarstellung: Zuordnungspfeil BodenschÀtzung, Liniengeometrie.'; 
     299 
     300 
     301/*  
     302-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    269303 
    270304CREATE OR REPLACE VIEW s_zuordungspfeilspitze_bodensch  
     
    284318    AND b.endet IS NULL 
    285319    AND l.endet IS NULL; 
    286 -- Die OBK-Alternativen "sk2004_zuordnungspfeil_spitze" wird NICHT verwendet. Siehe dort. 
     320 
     321*/ 
     322 
     323-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     324CREATE OR REPLACE VIEW s_zuordungspfeilspitze_bodensch  
     325AS  
     326 SELECT l.ogc_fid,  
     327        (((st_azimuth(st_pointn(l.wkb_geometry, 1),  
     328        st_pointn(l.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel,  
     329        st_startpoint(l.wkb_geometry) AS wkb_geometry  
     330   FROM ap_lpo l 
     331   JOIN ax_bodenschaetzung b 
     332     ON b.gml_id = ANY (l.dientzurdarstellungvon ) 
     333  WHERE l.art = 'Pfeil' 
     334    AND 'DKKM1000' = ANY (l.advstandardmodell) 
     335    AND b.endet IS NULL 
     336    AND l.endet IS NULL; 
     337 
    287338COMMENT ON VIEW s_zuordungspfeilspitze_flurstueck IS 'Sicht fÃŒr Kartendarstellung: Zuordnungspfeil BodenschÀtzung, Spitze, Punktgeometrie mit Drehwinkel.'; 
    288339 
     
    293344-- Eine Relation wird fuer die Gruppierung verwendet: 
    294345--  ap_pto >dientZurDarstellungVon> ax_lagebezeichnungohnehausnummer 
     346 
     347-- 2014-08-26: Spalte gml_id hinzugefÃŒgt. 
     348-- Auch Zeilen mit leerem Schriftinhalt verwenden. Das wird im PostProcessing noch ergÀnzt.  
     349 
     350-- DROP VIEW ap_pto_stra; 
     351 
     352/*  
     353-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
     354 
    295355CREATE OR REPLACE VIEW ap_pto_stra  
    296356AS  
    297357  SELECT p.ogc_fid, 
    298           -- p.advstandardmodell       AS modell,    -- TEST 
    299       -- l.gml_id, l.unverschluesselt, l.lage AS schluessel, -- zur Lage  TEST 
     358         l.gml_id,                               -- wird im PP zum Nachladen aus Katalog gebraucht 
     359      -- p.advstandardmodell       AS modell,    -- TEST 
     360      -- l.unverschluesselt, l.lage AS schluessel, -- zur Lage  TEST 
    300361         p.schriftinhalt,                        -- WMS: LABELITEM 
    301362         p.art,                                  -- WMS: CLASSITEM 
     
    309370    JOIN ax_lagebezeichnungohnehausnummer l 
    310371      ON v.beziehung_zu = l.gml_id 
    311    WHERE NOT p.schriftinhalt IS NULL  
    312      AND  p.endet IS NULL                            -- nichts historisches 
     372   WHERE -- NOT p.schriftinhalt IS NULL   AND 
     373          p.endet IS NULL                            -- nichts historisches 
    313374     AND  p.art   IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- Diese Werte als CLASSES in LAYER behandeln.  
    314375     AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
    315      AND ('DKKM1000' = ANY (p.advstandardmodell)     -- "Lika 1000" bevorzugen 
     376 
     377     AND (   'DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 
     378          OR 'DLKM'     = ANY (p.advstandardmodell) -- oder auch Kataster allgemein  
    316379           -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 
    317            OR (p.advstandardmodell IS NULL 
     380          OR (p.advstandardmodell IS NULL 
    318381               AND (SELECT s.ogc_fid                -- irgend ein Feld 
    319                                           FROM ap_pto s                 -- eines anderen Textes (suchen) 
     382                      FROM ap_pto s                 -- eines anderen Textes (suchen) 
    320383                      JOIN alkis_beziehungen vs     -- zur gleichen Lage o.HsNr 
    321384                        ON s.gml_id = vs.beziehung_von 
     
    326389                       AND NOT s.advstandardmodell IS NULL  
    327390                     LIMIT 1  -- einer reicht als Beweis 
    328                                         ) IS NULL  
     391                   ) IS NULL  
    329392              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 
    330393         ) 
    331394; 
     395 
     396*/ 
     397 
     398-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     399CREATE OR REPLACE VIEW ap_pto_stra  
     400AS  
     401  SELECT p.ogc_fid, 
     402         l.gml_id,                               -- wird im PP zum Nachladen aus Katalog gebraucht 
     403      -- p.advstandardmodell       AS modell,    -- TEST 
     404      -- l.unverschluesselt, l.lage AS schluessel, -- zur Lage  TEST 
     405         p.schriftinhalt,                        -- WMS: LABELITEM 
     406         p.art,                                  -- WMS: CLASSITEM 
     407         p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position .. 
     408         p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver 
     409         p.drehwinkel * 57.296     AS winkel,    -- * 180 / Pi 
     410         p.wkb_geometry 
     411    FROM ap_pto p 
     412    JOIN ax_lagebezeichnungohnehausnummer l 
     413      ON l.gml_id = ANY (p.dientzurdarstellungvon) 
     414   WHERE  p.endet IS NULL 
     415     AND  p.art IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- CLASSES im LAYER 
     416     AND (   'DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 
     417          OR 'DLKM'     = ANY (p.advstandardmodell) -- oder auch Kataster allgemein  
     418           -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 
     419          OR (p.advstandardmodell IS NULL 
     420               AND (SELECT s.ogc_fid                -- irgend ein Feld 
     421                      FROM ap_pto s                 -- eines anderen Textes (suchen) 
     422                      JOIN ax_lagebezeichnungohnehausnummer ls 
     423                        ON ls.gml_id = ANY(s.dientzurdarstellungvon) 
     424                      WHERE ls.gml_id = l.gml_id 
     425                       AND NOT s.advstandardmodell IS NULL  
     426                     LIMIT 1  -- einer reicht als Beweis 
     427                   ) IS NULL  
     428              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 
     429         ) 
     430; 
     431 
    332432COMMENT ON VIEW ap_pto_stra  
    333   IS 'Sicht fÃŒr Kartendarstellung: Beschriftung aus ap_pto fÃŒr Lagebezeichnung mit Art "Straße", "Weg", "Platz" oder Klassifizierung. Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe. Siehe auch pp_strassenname und pp_strassenklas'; 
    334  
    335 -- 2013-10-24: Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in den Tabellen "pp_strassenname" und "pp_strassenklas". 
     433  IS 'Sicht fÃŒr Kartendarstellung: Beschriftung aus "ap_pto" fÃŒr Lagebezeichnung mit Art "Straße", "Weg", "Platz" oder Klassifizierung. 
     434 Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe. Dient im Script pp_laden.sql zum ersten FÃŒllen der Tabelle "pp_strassenname_p".'; 
     435 
     436-- 2013-10-26: Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in den Tabellen "pp_strassenname" und "pp_strassenklas". 
    336437-- Der View ÃŒbernimmt die Auswahl des passenden advstandardmodell und rechnet den Winkel passend um, 
    337438-- In der Tabelle werden dann die leer gebliebenen Label aus dem Katalog noch ergÀnzt. 
     439 
     440-- DROP VIEW ap_lto_stra; 
     441 
     442/*  
     443-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
     444 
     445CREATE OR REPLACE VIEW ap_lto_stra  
     446AS  
     447  SELECT p.ogc_fid, 
     448         l.gml_id,                               -- wird im PP zum Nachladen aus Katalog gebraucht 
     449         p.schriftinhalt,                        -- WMS: LABELITEM 
     450         p.art,                                  -- WMS: CLASSITEM 
     451         p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position .. 
     452         p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver 
     453         p.wkb_geometry 
     454    FROM ap_lto p 
     455    JOIN alkis_beziehungen v   -- Relation zur Lagebezeichnung o. HsNr. 
     456      ON p.gml_id = v.beziehung_von 
     457    JOIN ax_lagebezeichnungohnehausnummer l 
     458      ON v.beziehung_zu = l.gml_id 
     459   WHERE  p.endet IS NULL                            -- nichts historisches 
     460     AND  p.art   IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- Diese Werte als CLASSES in LAYER behandeln.  
     461     AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
     462     AND (    'DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 
     463           OR 'DLKM'     = ANY (p.advstandardmodell) -- oder auch Kataster allgemein? 
     464           -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 
     465           OR (p.advstandardmodell IS NULL 
     466               AND (SELECT s.ogc_fid                 -- irgend ein Feld 
     467                      FROM ap_lto s                  -- eines anderen Textes (suchen) 
     468                      JOIN alkis_beziehungen vs      -- zur gleichen Lage o.HsNr 
     469                        ON s.gml_id = vs.beziehung_von 
     470                      JOIN ax_lagebezeichnungohnehausnummer ls 
     471                        ON vs.beziehung_zu = ls.gml_id 
     472                     WHERE ls.gml_id = l.gml_id 
     473                       AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
     474                       AND NOT s.advstandardmodell IS NULL  
     475                     LIMIT 1  -- einer reicht als Beweis 
     476                   ) IS NULL  
     477              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 
     478         ) 
     479; 
     480 
     481*/ 
     482-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     483CREATE OR REPLACE VIEW ap_lto_stra  
     484AS  
     485  SELECT p.ogc_fid, 
     486         l.gml_id,                               -- wird im PP zum Nachladen aus Katalog gebraucht 
     487         p.schriftinhalt,                        -- WMS: LABELITEM 
     488         p.art,                                  -- WMS: CLASSITEM 
     489         p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position .. 
     490         p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver 
     491         p.wkb_geometry 
     492    FROM ap_lto p 
     493    JOIN ax_lagebezeichnungohnehausnummer l 
     494      ON l.gml_id = ANY (p.dientzurdarstellungvon) 
     495   WHERE  p.endet IS NULL 
     496     AND  p.art   IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- Diese Werte als CLASSES in LAYER behandeln.  
     497     AND (    'DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 
     498           OR 'DLKM'     = ANY (p.advstandardmodell) -- oder auch Kataster allgemein? 
     499           -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 
     500           OR (p.advstandardmodell IS NULL 
     501               AND (SELECT s.ogc_fid                 -- irgend ein Feld 
     502                      FROM ap_lto s                  -- eines anderen Textes (suchen) 
     503                      JOIN ax_lagebezeichnungohnehausnummer ls 
     504                        ON ls.gml_id = ANY(s.dientzurdarstellungvon) 
     505                     WHERE ls.gml_id = l.gml_id 
     506                       AND NOT s.advstandardmodell IS NULL  
     507                     LIMIT 1  -- einer reicht als Beweis 
     508                   ) IS NULL  
     509              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 
     510         ) 
     511; 
     512 
     513COMMENT ON VIEW ap_lto_stra  
     514  IS 'Sicht fÃŒr Kartendarstellung: Beschriftung aus "ap_lto" fÃŒr Lagebezeichnung mit Art "Straße", "Weg", "Platz" oder Klassifizierung. 
     515 Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe. Dient im Script pp_laden.sql zum ersten FÃŒllen der Tabelle "pp_strassenname_l".'; 
     516 
     517-- 2014-08-26: Daten aus dem View "ap_lto_stra" werden im PostProcessing gespeichert in den Tabellen "pp_strassenname_l". 
     518-- Der View ÃŒbernimmt die Auswahl des passenden advstandardmodell. 
     519-- In der Tabelle werden dann die leer gebliebenen Label aus dem Katalog noch ergÀnzt. 
     520 
    338521 
    339522-- Layer NAME "ap_pto_nam" GROUP "praesentation" 
     
    348531-- Entweder Layer trennen nach Text-Typen "NAM"+"ZNM" und dem Rest 
    349532-- ODER           trennen nach fachlichen Ebenen wie "Nutzung" und "GebÀude" und .... 
     533 
     534/*  
     535-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
    350536 
    351537CREATE OR REPLACE VIEW ap_pto_nam  
     
    383569         ) 
    384570; 
     571 
     572*/ 
     573 
     574-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     575CREATE OR REPLACE VIEW ap_pto_nam  
     576AS  
     577  SELECT p.ogc_fid, 
     578         p.schriftinhalt,                        -- WMS: LABELITEM 
     579         p.art,                                  -- WMS: CLASSITEM 
     580         p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position .. 
     581         p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver 
     582         p.drehwinkel * 57.296     AS winkel,    -- * 180 / Pi 
     583         p.wkb_geometry 
     584    FROM ap_pto p 
     585    JOIN nutzung l                      -- Im PostProcessing zusammen gefasste Nutzungsarten-Abschnitte 
     586      ON l.gml_id = ANY (p.dientzurdarstellungvon)  
     587   WHERE NOT p.schriftinhalt IS NULL  
     588     AND  p.endet IS NULL                            -- nichts historisches 
     589     AND  p.art   IN ('NAM','ZNM')                   -- CLASSES in LAYER 
     590     AND ('DKKM1000' = ANY (p.advstandardmodell)     -- "Lika 1000" bevorzugen 
     591           -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 
     592           OR (p.advstandardmodell IS NULL 
     593               AND (SELECT s.gml_id                  -- irgend ein Feld 
     594                      FROM ap_pto s                  -- eines anderen Textes (suchen) 
     595                      JOIN nutzung l2                 -- Im PostProcessing zusammen gefasste Nutzungsarten-Abschnitte 
     596                        ON l2.gml_id = ANY (s.dientzurdarstellungvon)  
     597                     WHERE NOT s.advstandardmodell IS NULL  
     598                     LIMIT 1  -- einer reicht als Beweis 
     599                   ) IS NULL  
     600              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 
     601         ) 
     602; 
     603 
    385604COMMENT ON VIEW ap_pto_nam  
    386605  IS 'Sicht fÃŒr Kartendarstellung: Beschriftung mit Art = Name/Zweitname. Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe.'; 
     
    392611-- REST: Texte, die nicht schon in einem anderen Layer ausgegeben werden 
    393612-- Ersetzt den View "s_beschriftung" 
    394  
    395 -- alte Version bis 2013-04-15 
    396 -- Nachteil: es werden mehrere Texte zum gleichen Objekt angezeigt die fÃŒr verschiedene MaßstÀbe gedacht sind. 
    397 --CREATE OR REPLACE VIEW ap_pto_rest  
    398 --AS  
    399 --  SELECT p.ogc_fid,  
    400 --         p.schriftinhalt,  
    401 --         p.art,  
    402 --         p.drehwinkel * 57.296 AS winkel, -- * 180 / Pi 
    403 --         p.wkb_geometry  
    404 --    FROM ap_pto p 
    405 --   WHERE not p.schriftinhalt IS NULL  
    406 --     AND p.endet IS NULL 
    407 --     AND p.art NOT IN ('HNR','Strasse','Weg','Platz','BezKlassifizierungStrasse','AOG_AUG'); 
    408  
    409  
    410 -- 2013-04-15 Doppelte Darstellung aufgrund verschiedener "advstandardmodell" zum Objekt unterdrÃŒcken analog ap_pto_stra und ap_pto_nam 
     613-- Doppelte Darstellung aufgrund verschiedener "advstandardmodell" zum Objekt unterdrÃŒcken analog ap_pto_stra und ap_pto_nam 
     614 
     615/*  
     616-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
     617 
     618    +++ HIER HIN KOPIEREN  +++ 
     619 
     620*/ 
     621 
     622-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     623-- ToDo 
    411624CREATE OR REPLACE VIEW ap_pto_rest  
    412625AS  
     
    451664-- Layer "s_zuordungspfeil_gebaeude" 
    452665-- ----------------------------------- 
     666 
     667/*  
     668-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
     669 
     670    +++ HIER HIN KOPIEREN  +++ 
     671 
     672*/ 
     673-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     674-- ToDo 
     675 
    453676CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude  
    454677AS  
     
    474697--  ax_punktortta  >zeigtAuf?> AX_Grenzpunkt 
    475698-- Zum Punktort des Grenzpunktes auch eine Information zur Vermarkung holen 
     699 
     700/*  
     701-- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen": 
     702 
     703    +++ HIER HIN KOPIEREN  +++ 
     704 
     705*/ 
     706-- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen": 
     707-- ToDo 
     708 
    476709CREATE OR REPLACE VIEW grenzpunkt  
    477710AS  
     
    495728-- Sichten vom OBK (Oberbergischer Kreis) 
    496729-- -------------------------------------- 
    497 --      CREATE OR REPLACE VIEW sk2004_zuordnungspfeil  
    498 --      AS 
    499 --       SELECT ap.ogc_fid, ap.wkb_geometry  
    500 --       FROM ap_lpo ap  
    501 --       WHERE ((ap.signaturnummer = '2004')  
    502 --         AND ('DKKM1000'::text ~~ ANY ((ap.advstandardmodell)::text[]))); 
    503 --      COMMENT ON VIEW sk2004_zuordnungspfeil IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer"'; 
    504  
    505 --      CREATE OR REPLACE VIEW sk2004_zuordnungspfeil_spitze  
    506 --      AS 
    507 --       SELECT ap.ogc_fid, (((st_azimuth(st_pointn(ap.wkb_geometry, 1),  
    508 --                      st_pointn(ap.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel,  
    509 --                      st_startpoint(ap.wkb_geometry) AS wkb_geometry  
    510 --       FROM ap_lpo ap  
    511 --       WHERE ((ap.signaturnummer = '2004')  
    512 --         AND ('DKKM1000'::text ~~ ANY ((ap.advstandardmodell)::text[]))); 
    513  
    514 -- Diese Versionen "sk2004_zuordnungspfeil" und "sk2004_zuordnungspfeil_spitze" werden ersetzt durch 
    515 -- "s_zuordungspfeil_flurstueck" und "s_zuordungspfeilspitze_flurstueck". 
    516 -- Grund: "signaturnummer" is NULL, wenn Daten aus AED-Software kommen. Das Feld ist nur bei ibR gefuellt. 
    517 -- Die Alternativen filtern durch JOIN >dientZurDarstellungVon> ax_flurstueck. 
    518730 
    519731CREATE OR REPLACE VIEW sk2012_flurgrenze  
     
    521733 SELECT fg.ogc_fid, fg.wkb_geometry 
    522734   FROM ax_besondereflurstuecksgrenze fg 
    523   WHERE (3000 = ANY (fg.artderflurstuecksgrenze))  
    524     AND fg.advstandardmodell ~~ 'DLKM'::text; 
     735  WHERE 3000   = ANY (fg.artderflurstuecksgrenze) 
     736    AND 'DLKM' = ANY (fg.advstandardmodell); 
    525737COMMENT ON VIEW sk2012_flurgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Flurgrenze"'; 
    526738 
     
    529741 SELECT gemag.ogc_fid, gemag.wkb_geometry 
    530742   FROM ax_besondereflurstuecksgrenze gemag 
    531   WHERE (7003 = ANY (gemag.artderflurstuecksgrenze))  
    532     AND gemag.advstandardmodell ~~ 'DLKM'::text; 
     743  WHERE 7003   = ANY (gemag.artderflurstuecksgrenze) 
     744    AND 'DLKM' = ANY (gemag.advstandardmodell); 
    533745COMMENT ON VIEW sk2014_gemarkungsgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemarkungsgrenze"'; 
    534746 
     
    537749 SELECT blg.ogc_fid, blg.wkb_geometry 
    538750   FROM ax_besondereflurstuecksgrenze blg 
    539   WHERE (7102 = ANY (blg.artderflurstuecksgrenze))  
    540     AND blg.advstandardmodell ~~ 'DLKM'::text; 
     751  WHERE 7102   = ANY (blg.artderflurstuecksgrenze) 
     752    AND 'DLKM' = ANY (blg.advstandardmodell); 
    541753COMMENT ON VIEW sk2018_bundeslandgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Bundeslandgrenze"'; 
    542754 
     
    545757 SELECT rbg.ogc_fid, rbg.wkb_geometry 
    546758   FROM ax_besondereflurstuecksgrenze rbg 
    547   WHERE (7103 = ANY (rbg.artderflurstuecksgrenze))  
    548     AND rbg.advstandardmodell ~~ 'DLKM'::text; 
     759  WHERE 7103   = ANY (rbg.artderflurstuecksgrenze)  
     760    AND 'DLKM' = ANY (rbg.advstandardmodell); 
    549761COMMENT ON VIEW sk2020_regierungsbezirksgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Regierungsbezirksgrenze"'; 
    550762 
     
    553765 SELECT gemg.ogc_fid, gemg.wkb_geometry 
    554766   FROM ax_besondereflurstuecksgrenze gemg 
    555   WHERE (7106 = ANY (gemg.artderflurstuecksgrenze))  
    556     AND gemg.advstandardmodell ~~ 'DLKM'::text; 
     767  WHERE 7106   = ANY (gemg.artderflurstuecksgrenze)  
     768    AND 'DLKM' = ANY (gemg.advstandardmodell); 
    557769COMMENT ON VIEW sk2022_gemeindegrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemeindegrenze"'; 
    558770 
     
    579791     OR  7106 = ANY (artderflurstuecksgrenze) 
    580792    ) 
    581     AND advstandardmodell ~~ 'DLKM'::text; 
     793    AND 'DLKM' = ANY (advstandardmodell); 
    582794 
    583795COMMENT ON VIEW sk201x_politische_grenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze Politische Grenzen (Bund, Land, Kreis, Gemeinde)'; 
Note: See TracChangeset for help on using the changeset viewer.