Changeset 268 for trunk


Ignore:
Timestamp:
03/06/13 16:27:37 (7 years ago)
Author:
frank.jaeger
Message:

View "ap_pto_stra" schrittweise verbessert um mehrfache Darstellung von Straßennamen zu unterdrücken.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/import/sichten.sql

    r266 r268  
    240240-- ------------------------------------------------------- 
    241241-- NEU 2013-03-01 
     242-- Problem: Wenn ein Text paarweise auftritt mit verschiedenen Inhalten im  
     243-- Feld "advstandardmodell", dann wird das mehrfach gezeichnet. 
     244--      CREATE OR REPLACE VIEW ap_pto_stra  
     245--      AS  
     246--        SELECT ogc_fid,  
     247--                       schriftinhalt,  
     248--                       art, 
     249--                       horizontaleausrichtung AS hor,    -- Verfeinern der Text-Position  
     250--                       vertikaleausrichtung   AS ver,    -- Durch Klassifizierung hor/ver 
     251--                       drehwinkel * 57.296    AS winkel, -- * 180 / Pi 
     252--                       wkb_geometry  
     253--              FROM ap_pto  
     254--         WHERE not schriftinhalt IS NULL  
     255--               AND endet IS NULL 
     256--        -- Je nach Vorlieben des Katasteramtes die folgende Zeile auskommentieren: 
     257--        -- AND advstandardmodell IS NULL -- doppelte Darstellungen unterdrÃŒcken (simple Zwischenlösung) 
     258--               AND art IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse'); 
     259--      COMMENT ON VIEW ap_pto_stra IS 'Beschriftung fÃŒr ap_pto mit Art "Straße","Weg","Platz"'; 
     260--      GRANT SELECT ON TABLE ap_pto_stra TO ms6; 
     261 
     262-- Verbesserte Version: von doppelten Textpositionen nur das passendere Modell Anzeigen. 
     263-- FÃŒr den folgenden View einen neuen Index definieren: ap_pto_txt_idx (siehe Schema) 
     264 
     265--      CREATE OR REPLACE VIEW ap_pto_stra  
     266--      AS  
     267--        SELECT p.ogc_fid, 
     268--              --   p.advstandardmodell       AS modell,    -- TEST 
     269--                       p.schriftinhalt,                        -- WMS: LABELITEM 
     270--                       p.art,                                  -- WMS: CLASSITEM 
     271--                       p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position .. 
     272--                       p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver 
     273--                       p.drehwinkel * 57.296     AS winkel,    -- * 180 / Pi 
     274--                       p.wkb_geometry 
     275--              FROM ap_pto p 
     276--         WHERE not p.schriftinhalt IS NULL  
     277--               AND  p.endet IS NULL                        -- nichts historisches 
     278--               AND  p.art   IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- CLASSES in LAYER 
     279--               AND ('DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen 
     280--                         -- Ersatzweise auch "keine Angabe", aber nur wenn es keine weitere gibt 
     281--                         OR (     p.advstandardmodell IS NULL 
     282--                                 AND (SELECT ogc_fid FROM ap_pto s 
     283--                                              WHERE p.schriftinhalt = s.schriftinhalt 
     284--                                                AND p.art = s.art 
     285--                                                AND NOT s.advstandardmodell IS NULL LIMIT 1 
     286--                                              ) IS NULL 
     287--                                ) 
     288--                       ) 
     289--      ; 
     290 
     291-- ToDo: Diese Version gruppiert alle gleichen Straßennamen (p.schriftinhalt = s.schriftinhalt). 
     292-- In einer kreisweiten Datenbank können verschiedene Straßen mit gleichem Namen vorkommen. 
     293-- Um die Vermischung zu verhindern sollte man die Texte noch ÃŒber ihre Lage "in der NÀhe" verpaaren. 
     294-- Wenn der View dann Subquery UND Entfernungsberechnung enthÀlt, könnte man ÃŒberlegen, 
     295-- diesen nicht zur Laufzeit abzuarbeiten sondern im PostProzessing als Tabelle zu speichern. 
     296 
     297-- Auch noch fehlerhaft sind die FÀlle, wo fÃŒr unterschiedliche Kartentypen unterschiedliche 
     298-- Schreibweisen benutzt werden, z.B. die AbkÃŒrzung "_str.". 
     299 
     300-- Layer NAME "ap_pto_stra" (Straße) GROUP "praesentation" 
     301-- ------------------------------------------------------- 
     302-- NEU 2013-03-06 
     303-- Noch mals verbesserte Version: von doppelten Textpositionen nur das passendere Modell Anzeigen. 
     304-- Statt "Namensgleichheit" im textfeld wird nun eine Relation fuer die Gruppierung verwendet. 
     305-- * ap_pto >dientZurDarstellungVon> ax_lagebezeichnungohnehausnummer * 
    242306CREATE OR REPLACE VIEW ap_pto_stra  
    243307AS  
    244   SELECT ogc_fid,  
    245          schriftinhalt,  
    246          art, 
    247          horizontaleausrichtung AS hor,    -- Verfeinern der Text-Position  
    248          vertikaleausrichtung   AS ver,    -- Durch Klassifizierung hor/ver 
    249          drehwinkel * 57.296    AS winkel, -- * 180 / Pi 
    250          wkb_geometry  
    251     FROM ap_pto  
    252    WHERE not schriftinhalt IS NULL  
    253      AND endet IS NULL 
    254   -- Je nach Vorlieben des Katasteramtes die folgende Zeile auskommentieren: 
    255   -- AND advstandardmodell IS NULL -- doppelte Darstellungen unterdrÃŒcken (simple Zwischenlösung) 
    256      AND art IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse'); 
    257  
    258 COMMENT ON VIEW ap_pto_stra IS 'Beschriftung fÃŒr ap_pto mit Art "Straße","Weg","Platz"'; 
    259 --GRANT SELECT ON TABLE ap_pto_stra TO ms6; 
    260  
    261 -- ToDo: Doppelte Straßennamen eindeutig machen. 
    262 -- z.B.  advstandardmodell = '{DKKM1000}', signatur = 4107 
    263 --       advstandardmodell = ''          , signatur = 8113 
    264 -- Wie?  DISTICT und Subquery?  
    265 --       Post-Processing: nah beieinander und gleicher Name  
     308  SELECT p.ogc_fid, 
     309          -- p.advstandardmodell       AS modell,    -- TEST 
     310      -- l.gml_id, l.unverschluesselt, l.lage AS schluessel, -- zur Lage  TEST 
     311         p.schriftinhalt,                        -- WMS: LABELITEM 
     312         p.art,                                  -- WMS: CLASSITEM 
     313         p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position .. 
     314         p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver 
     315         p.drehwinkel * 57.296     AS winkel,    -- * 180 / Pi 
     316         p.wkb_geometry 
     317    FROM ap_pto p 
     318    JOIN alkis_beziehungen v   -- Relation zur Lagebezeichnung o. HsNr. 
     319      ON p.gml_id = v.beziehung_von 
     320    JOIN ax_lagebezeichnungohnehausnummer l 
     321      ON v.beziehung_zu = l.gml_id 
     322   WHERE NOT p.schriftinhalt IS NULL  
     323     AND  p.endet IS NULL                            -- nichts historisches 
     324     AND  p.art   IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- CLASSES in LAYER 
     325     AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
     326     AND ('DKKM1000' = ANY (p.advstandardmodell)     -- "Lika 1000" bevorzugen 
     327           -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt 
     328           OR (p.advstandardmodell IS NULL 
     329               AND (SELECT s.ogc_fid                -- irgend ein Feld 
     330                                          FROM ap_pto s                 -- eines anderen Textes (suchen) 
     331                      JOIN alkis_beziehungen vs     -- zur gleichen Lage o.HsNr 
     332                        ON s.gml_id = vs.beziehung_von 
     333                      JOIN ax_lagebezeichnungohnehausnummer ls 
     334                        ON vs.beziehung_zu = ls.gml_id 
     335                     WHERE ls.gml_id = l.gml_id 
     336                       AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht 
     337                       AND NOT s.advstandardmodell IS NULL  
     338                     LIMIT 1  -- einer reicht als Beweis 
     339                                        ) IS NULL  
     340              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird 
     341         ) 
     342; 
     343COMMENT ON VIEW ap_pto_stra IS 'Beschriftung fÃŒr ap_pto mit Art "Straße", "Weg", "Platz" oder Klassifizierung. Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe'; 
    266344 
    267345-- Layer NAME "ap_pto" GROUP "praesentation" 
     
    281359     AND p.art NOT IN ('HNR','Strasse','Weg','Platz','BezKlassifizierungStrasse','AOG_AUG'); 
    282360     -- Diese 'IN'-Liste fortschreiben bei Erweiterungen des Mapfiles 
    283  
    284361-- 'PNR' kommt nicht mehr vor? 
    285362COMMENT ON VIEW ap_pto_rest IS 'Beschriftungen aus "ap_pto", die noch nicht in anderen Layern angezeigt werden'; 
    286 --GRANT SELECT ON TABLE ap_pto_rest  TO ms6; 
    287363 
    288364-- Layer NAME "ap_pto" GROUP "praesentation" 
     
    322398    AND g.endet IS NULL 
    323399    AND l.endet IS NULL; 
    324  
    325400COMMENT ON VIEW s_zuordungspfeil_gebaeude IS 'fuer Kartendarstellung: Zuordnungspfeil fÃŒr GebÀude-Nummer'; 
    326401 
    327 -- TEST 
     402-- Grenzpunkte 
    328403--  ax_punktortta  >zeigtAuf?> AX_Grenzpunkt 
    329404-- Zum Punktort des Grenzpunktes auch eine Information zur Vermarkung holen 
     
    344419     AND g.endet IS NULL; 
    345420COMMENT ON VIEW grenzpunkt IS 'ZusammenfÃŒhrung von Punktort (Geometrie) und AX_Grenzpunkt (Eigenschaften)'; 
    346 --GRANT SELECT ON TABLE grenzpunkt TO ms6; 
    347  
    348421 
    349422-- Sichten vom OBK (Oberbergischer Kreis) 
     
    438511--  Sichten fuer Fehlersuche und Daten-Analyse 
    439512--  ------------------------------------------ 
    440  
    441513 
    442514-- FlurstÃŒcke mit Anzeige der FlurstÃŒcksnummer an der "Standardposition" 
Note: See TracChangeset for help on using the changeset viewer.