Changeset 269 for trunk/import


Ignore:
Timestamp:
03/12/13 11:30:05 (11 years ago)
Author:
frank.jaeger
Message:

ALKIS-Mapfile: Neuer Layer "ax_gebaeude_txt" (Funktion und Name des Gebäudes). Views passend dazu.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/import/sichten.sql

    r268 r269  
    1111--  2013-02-20 Mehrfache Buchungsstellen zum FS suchen, dies sind Auswirkungen eines Fehlers bei Replace 
    1212--  2013-03-05 Beschriftungen aus ap_pto auseinander sortieren, neuer View "grenzpunkt" 
     13--  2013-03-12 Optimierung Hausnummern, View "gebaeude_txt" (Funktion und Name) 
    1314 
    1415--  ----------------------------------------- 
     
    7374-- Diese unterscheiden sich im Feld ap_pto.advstandardmodell 
    7475-- z.B. 3 verschiedene EintrÀge mit <NULL>, {DKKM500}, {DKKM1000}, (Beispiel; Lage, Lange Straße 15 c) 
     76 
     77 --   DROP VIEW s_hausnummer_gebaeude; 
     78 --     CREATE OR REPLACE VIEW s_hausnummer_gebaeude  
     79 --     AS  
     80 --      SELECT p.ogc_fid,  
     81 --                     p.wkb_geometry,                                  -- Point 
     82 --                     p.drehwinkel * 57.296 AS drehwinkel, -- umn: ANGLE [drehwinkel] 
     83 --                     l.hausnummer                                     -- umn: LABELITEM 
     84 --        FROM ap_pto p 
     85 --        JOIN alkis_beziehungen v 
     86 --              ON p.gml_id = v.beziehung_von 
     87 --        JOIN ax_lagebezeichnungmithausnummer l 
     88 --              ON v.beziehung_zu  = l.gml_id 
     89 --       WHERE v.beziehungsart = 'dientZurDarstellungVon' 
     90 --             AND p.endet IS NULL 
     91 --             AND l.endet IS NULL; 
     92 --     COMMENT ON VIEW s_hausnummer_gebaeude IS 'fuer Kartendarstellung: Hausnummern HauptgebÀude'; 
     93 
     94-- Verbesserte Version 2013-03-07 
     95-- Nimmt nun vorzugsweise den Text der Darstellung aus ap_pto (bei ibR immer gefÃŒllt). 
     96-- Wenn der nicht gefÃŒllt ist, wird statt dessen die Nummer aus der verknÃŒpften Labebezeichnung  
     97-- verwendet (der hÀufigste Fall bei AED).  
     98DROP VIEW s_hausnummer_gebaeude; 
    7599CREATE OR REPLACE VIEW s_hausnummer_gebaeude  
    76100AS  
    77101 SELECT p.ogc_fid,  
    78         p.wkb_geometry,                         -- Point 
    79         p.drehwinkel * 57.296 AS drehwinkel,    -- umn: ANGLE [drehwinkel] 
    80         l.hausnummer                            -- umn: LABELITEM 
     102        p.wkb_geometry,                               -- Point 
     103        p.drehwinkel * 57.296 AS drehwinkel,  -- umn: ANGLE 
     104    --  p.art, 
     105    --  p.advstandardmodell       AS modell,  -- TEST 
     106    --  p.horizontaleausrichtung  AS hor,     -- = 'zentrisch' 
     107    --  p.vertikaleausrichtung    AS ver,     -- = 'Basis' (oft), "Mitte" (selten) 
     108    --  p.schriftinhalt,                      -- WMS: das bessere LABELITEM, kann aber leer sein 
     109    --  l.hausnummer,                         -- WMS: LABELITEM default/native 
     110        COALESCE(p.schriftinhalt, l.hausnummer) AS hausnummer 
    81111   FROM ap_pto p 
    82112   JOIN alkis_beziehungen v 
    83113     ON p.gml_id = v.beziehung_von 
    84114   JOIN ax_lagebezeichnungmithausnummer l 
    85      ON v.beziehung_zu  = l.gml_id 
    86   WHERE v.beziehungsart = 'dientZurDarstellungVon' 
    87     AND p.endet IS NULL 
    88     AND l.endet IS NULL; 
    89  
     115         ON v.beziehung_zu  = l.gml_id 
     116  WHERE p.art = 'HNR' 
     117    AND 'DKKM1000' = ANY (p.advstandardmodell) -- erste NÀherungslösung um Redundanzen zu unterdrÃŒcken 
     118    AND v.beziehungsart = 'dientZurDarstellungVon' 
     119        AND p.endet IS NULL 
     120        AND l.endet IS NULL 
     121-- LIMIT 200 -- TEST 
     122; 
    90123COMMENT ON VIEW s_hausnummer_gebaeude IS 'fuer Kartendarstellung: Hausnummern HauptgebÀude'; 
     124 
     125-- Welche Karten-Typen ? 
     126--   SELECT DISTINCT advstandardmodell FROM ap_pto p WHERE p.art = 'HNR'; 
     127-- Liefert: 
     128--   "{DKKM1000}" 
     129--   "{DKKM1000,DKKM500}" 
     130--   "{DKKM500}" 
     131--   ""    (IS NULL) 
     132 
     133-- ibR (Mi-Lk): darzustellender Text steht immer in ap_pto.schriftinhalt  
     134-- AED (Lippe): ap_pto.schriftinhalt ist meist leer, nur selten ein Eintrag 
     135 
     136-- ToDo: Wie bei ap_pto_stra von mehren ap_pto zu einer Hausnummer die geeignete auswÀhlen 
     137 
     138-- ToDo: In PostProcessing die Hausnummer von l.hausnummer in p.schriftinhalt kopieren, wenn leer 
     139--   Das wÃŒrde die COALESCE-Trickserei ersparen 
    91140 
    92141-- Layer "ag_t_nebengeb" 
    93142-- --------------------- 
    94 -- 2013-03-05: Diese Abfrage liefert keine Daten mehr (PostNAS 0.7) 
     143-- 2013-03-05: Diese Abfrage liefert keine Daten mehr?? 
    95144--      CREATE OR REPLACE VIEW s_nummer_nebengebaeude  
    96145--      AS  
     
    127176     AND g.endet IS NULL; 
    128177COMMENT ON VIEW lfdnr_nebengebaeude IS 'Laufende Nummer des NebengebÀudes zu einer Lagebezeichnung mit der FlÀchengeometrie des GebÀudes'; 
    129 --GRANT SELECT ON TABLE lfdnr_nebengebaeude TO ms6; 
     178 
     179 
     180-- GebÀude-Text 
     181-- ------------ 
     182CREATE OR REPLACE VIEW gebaeude_txt  
     183AS  
     184 SELECT g.ogc_fid,  
     185        g.wkb_geometry, 
     186        g.name,                    -- selten gefÃŒllt  
     187        f.bezeichner AS funktion   -- umn: LABELITEM 
     188   FROM ax_gebaeude g 
     189   JOIN ax_gebaeude_funktion f  
     190     ON g.gebaeudefunktion = f.wert 
     191  WHERE g.endet IS NULL  
     192    AND g.gebaeudefunktion < 9998; -- "Nach Quellenlage nicht zu spezifizieren" braucht man nicht anzeigen 
     193COMMENT ON VIEW gebaeude_txt IS 'EntschlÃŒsselung der GebÀude-Funktion (Ersatz fÃŒr Symbole)'; 
    130194 
    131195-- Layer "ag_p_flurstueck" 
     
    188252COMMENT ON VIEW s_zuordungspfeilspitze_flurstueck IS 'fuer Kartendarstellung: Zuordnungspfeil FlurstÃŒcksnummer, Spitze'; 
    189253 
    190  
    191 -- Zur Steuerung der nachfolgenden Views 
    192  
    193 -- Ermittlung der vorkommenden Arten 
    194 -- ersetzt "ap_pto_arten" 
    195 CREATE OR REPLACE VIEW beschriftung_was_kommt_vor  
    196 AS  
    197   SELECT DISTINCT art, horizontaleausrichtung, vertikaleausrichtung  
    198     FROM ap_pto  
    199    WHERE not schriftinhalt is null  
    200   ORDER BY art; 
    201 COMMENT ON VIEW beschriftung_was_kommt_vor IS 'Analyse der vorkommenden Kombinationen in ap_pto (Beschriftung)'; 
    202  
    203 -- 2013: PostNAS 0.7  (aus 150,260,340) 
    204 -- ------------------ 
    205 --      "AOG_AUG"                               "zentrisch";"Basis"  - Schriftinhalkt immer nur "I" ? 
    206 --      "BWF"                                   "zentrisch";"Basis"/"zentrisch";"Mitte" 
    207 --      "BWF_ZUS"                               "zentrisch";"Basis" 
    208 --      "FKT"                                   "zentrisch";"Basis"/"linksbÃŒndig";"Basis"/"zentrisch";"Mitte" 
    209 --      "FKT_TEXT"                              "zentrisch";"Mitte" 
    210 --      "FreierText"                    "zentrisch";"Basis"/"zentrisch";"Mitte"/"linksbÃŒndig";"Basis" 
    211 --      "FreierTextHHO"                 "zentrisch";"Mitte" 
    212 --      "Friedhof"                              "zentrisch";"Basis" 
    213 --      "Gewanne"                               "zentrisch";"Basis"/"zentrisch";"Mitte" 
    214 --      "GFK"                                   "zentrisch";"Basis"/"zentrisch";"Mitte" 
    215 --      "HNR"                                   "zentrisch";"Basis"/"linksbÃŒndig";"Basis"/"zentrisch";"Mitte"  --> Hausnummer, group gebaeude 
    216 --      "HHO"                                   "zentrisch";"Mitte"  -- HHO = objekthoehe zu ax_gebaeude? 
    217 --      "NAM"                                   "zentrisch";"Basis"/"zentrisch";"Mitte"/"linksbÃŒndig";"Basis" 
    218 --      "SPO"                                   "zentrisch";"Basis"/ 
    219 --      "Vorratsbehaelter"              "zentrisch";"Basis" 
    220 --      "WeitereHoehe"                  "zentrisch";"Mitte" 
    221 --      "ZAE_NEN"                               "zentrisch";"Basis" 
    222 --      "ZNM"                                   "zentrisch";"Basis"/"linksbÃŒndig";"Basis" 
    223  
    224 --* Layer "ap_pto_stra" 
    225 --                          hor ; ver / hor ; ver  
    226 --      "BezKlassifizierungStrasse" "zent.";"Basis"     / "linksbÃŒndig";"Basis" 
    227 --      "Platz"                                 "zentrisch";"Basis" / "zentrisch";"Mitte" 
    228 --      "Strasse"                               "zentrisch";"Basis" / "zentrisch";"Mitte" / "linksbÃŒndig";"Basis" 
    229 --      "Weg"                                   "zentrisch";"Basis" / "zentrisch";"Mitte" / "linksbÃŒndig";"Basis" 
    230  
    231 --* geplanter layer "ap_pto_wasser" 
    232 --      "StehendesGewaesser"    "zentrisch";"Basis" 
    233 --      "Fliessgewaesser"               "zentrisch";"Basis"/"linksbÃŒndig";"Basis" 
    234  
    235  
    236254-- Drehwinkel in Bogenmass, wird vom mapserver in Grad benötigt. 
    237255-- Umrechnung durch Faktor (180 / Pi) 
    238256 
     257 
    239258-- Layer NAME "ap_pto_stra" (Straße) GROUP "praesentation" 
    240259-- ------------------------------------------------------- 
    241 -- 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 * 
     260-- Von doppelten Textpositionen nur das passendere Modell anzeigen. 
     261-- Eine Relation wird fuer die Gruppierung verwendet: 
     262--  ap_pto >dientZurDarstellungVon> ax_lagebezeichnungohnehausnummer 
    306263CREATE OR REPLACE VIEW ap_pto_stra  
    307264AS  
     
    343300COMMENT 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'; 
    344301 
     302 
    345303-- Layer NAME "ap_pto" GROUP "praesentation" 
    346304-- ---------------------------------------- 
    347305-- REST: Texte, die nicht schon in einem anderen Layer ausgegeben werden 
    348 -- NEU 2013-03-01 
     306-- Ersetzt den View "s_beschriftung" 
    349307CREATE OR REPLACE VIEW ap_pto_rest  
    350308AS  
     
    359317     AND p.art NOT IN ('HNR','Strasse','Weg','Platz','BezKlassifizierungStrasse','AOG_AUG'); 
    360318     -- Diese 'IN'-Liste fortschreiben bei Erweiterungen des Mapfiles 
    361 -- 'PNR' kommt nicht mehr vor? 
     319-- 'PNR' (Pseudonummer, lfd.-Nr.-NebengebÀude) kommt nicht mehr vor? 
    362320COMMENT ON VIEW ap_pto_rest IS 'Beschriftungen aus "ap_pto", die noch nicht in anderen Layern angezeigt werden'; 
    363  
    364 -- Layer NAME "ap_pto" GROUP "praesentation" 
    365 -- ---------------------------------------- 
    366 -- 2013-03: Wird ersetzt durch ap_pto_rest  
    367 -- CREATE OR REPLACE VIEW s_beschriftung  
    368 -- AS  
    369 --   SELECT p.ogc_fid,  
    370 --          p.schriftinhalt,  
    371 --          p.art,  
    372 --          p.drehwinkel * 57.296 AS winkel, -- * 180 / Pi 
    373 --          p.wkb_geometry  
    374 --     FROM ap_pto p 
    375 --    WHERE not p.schriftinhalt IS NULL  
    376 --      AND p.endet IS NULL 
    377 --      AND p.art NOT IN ('HNR','AOG_AUG');  -- 'PNR' kommt nicht mehr vor? 
    378 -- COMMENT ON VIEW s_beschriftung IS 'Beschriftungen aus "ap_pto", die noch nicht in anderen Layern angezeigt werden'; 
    379 -- GRANT SELECT ON TABLE s_beschriftung  TO ms6; 
    380321 
    381322-- ENDE BESCHRIFTUNG 
     
    401342 
    402343-- Grenzpunkte 
     344-- ----------- 
    403345--  ax_punktortta  >zeigtAuf?> AX_Grenzpunkt 
    404346-- Zum Punktort des Grenzpunktes auch eine Information zur Vermarkung holen 
     
    665607           f.zaehler, 
    666608           f.nenner; 
     609 
     610-- Punktförmige  P r À s e n t a t i o n s o b j k t e  (ap_pto) 
     611-- Ermittlung der vorkommenden Arten 
     612CREATE OR REPLACE VIEW beschriftung_was_kommt_vor  
     613AS  
     614  SELECT DISTINCT art, horizontaleausrichtung, vertikaleausrichtung  
     615    FROM ap_pto  
     616   WHERE not schriftinhalt is null  
     617  ORDER BY art; 
     618COMMENT ON VIEW beschriftung_was_kommt_vor IS 'Analyse der vorkommenden Kombinationen in ap_pto (Beschriftung)'; 
     619 
     620-- Ergebnis: 
     621-- 2013: PostNAS 0.7  (aus 150,260,340) 
     622-- ------------------ 
     623--      "AOG_AUG"                               "zentrisch";"Basis"  - Schriftinhalkt immer nur "I" ? 
     624--      "BWF"                                   "zentrisch";"Basis"/"zentrisch";"Mitte" 
     625--      "BWF_ZUS"                               "zentrisch";"Basis" 
     626--      "FKT"                                   "zentrisch";"Basis"/"linksbÃŒndig";"Basis"/"zentrisch";"Mitte" 
     627--      "FKT_TEXT"                              "zentrisch";"Mitte" 
     628--      "FreierText"                    "zentrisch";"Basis"/"zentrisch";"Mitte"/"linksbÃŒndig";"Basis" 
     629--      "FreierTextHHO"                 "zentrisch";"Mitte" 
     630--      "Friedhof"                              "zentrisch";"Basis" 
     631--      "Gewanne"                               "zentrisch";"Basis"/"zentrisch";"Mitte" 
     632--      "GFK"                                   "zentrisch";"Basis"/"zentrisch";"Mitte" 
     633--      "HNR"                                   "zentrisch";"Basis"/"linksbÃŒndig";"Basis"/"zentrisch";"Mitte"  --> Hausnummer, group gebaeude 
     634--      "HHO"                                   "zentrisch";"Mitte"  -- HHO = objekthoehe zu ax_gebaeude? 
     635--      "NAM"                                   "zentrisch";"Basis"/"zentrisch";"Mitte"/"linksbÃŒndig";"Basis" 
     636--      "SPO"                                   "zentrisch";"Basis"/ 
     637--      "Vorratsbehaelter"              "zentrisch";"Basis" 
     638--      "WeitereHoehe"                  "zentrisch";"Mitte" 
     639--      "ZAE_NEN"                               "zentrisch";"Basis" 
     640--      "ZNM"                                   "zentrisch";"Basis"/"linksbÃŒndig";"Basis" 
     641 
     642--* Layer "ap_pto_stra" 
     643--                          hor ; ver / hor ; ver  
     644--      "BezKlassifizierungStrasse" "zent.";"Basis"     / "linksbÃŒndig";"Basis" 
     645--      "Platz"                                 "zentrisch";"Basis" / "zentrisch";"Mitte" 
     646--      "Strasse"                               "zentrisch";"Basis" / "zentrisch";"Mitte" / "linksbÃŒndig";"Basis" 
     647--      "Weg"                                   "zentrisch";"Basis" / "zentrisch";"Mitte" / "linksbÃŒndig";"Basis" 
     648 
     649--* geplanter layer "ap_pto_wasser" 
     650--      "StehendesGewaesser"    "zentrisch";"Basis" 
     651--      "Fliessgewaesser"               "zentrisch";"Basis"/"linksbÃŒndig";"Basis" 
    667652 
    668653 
     
    747732-- Rechte eines EigentÃŒmers 
    748733-- ------------------------ 
    749  
    750734-- Dieser View sucht speziell die FÀlle wo eine Buchungsstelle ein Recht "an" einer anderen Buchungsstelle hat. 
    751735--  - "Erbbaurecht *an* GrundstÃŒck"  
     
    759743-- 
    760744-- Person <benennt< NamNum. >istBestandteilVon> Blatt <istBestandteilVon< Stelle-h >an> Stelle-d >istGebucht> Flurstueck 
    761 --  
    762745 
    763746-- Wobei ">xxx>" = JOIN ÃŒber die Verbindungs-Tabelle "alkis_beziehungen" mit der Beziehungsart "xxx". 
     
    892875COMMENT ON VIEW mehrfache_buchung_zu_fs IS 'Nach replace von ax_flurtstueck mit einer neuen ax_buchungsstelle bleibt die alte Verbindung in alkis_beziehungen'; 
    893876 
    894  
    895877-- END -- 
Note: See TracChangeset for help on using the changeset viewer.