Index: Version-0.8/import/sichten_wms.sql
===================================================================
--- Version-0.8/import/sichten_wms.sql	(revision 324)
+++ Version-0.8/import/sichten_wms.sql	(revision 326)
@@ -3,5 +3,5 @@
 -- =====
 
---  PostNAS
+--  PostNAS 0.8
 
 --  -----------------------------------------
@@ -24,6 +24,5 @@
 --  2014-02-24 Kein Filter auf advstandardmodell bei FlurstÃŒcks-Zuordnungspfeil
 --  2014-08-26 View "ap_lto_stra" analog "ap_pto_stra" fÃŒr StraÃennamen auf Linien-Geometrie
-
---  2014-08-27 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen.
+--  2014-08-28 Die Tabelle "alkis_beziehungen" ÃŒberflÃŒssig machen.
 --             Relationen nun direkt ÃŒber neue Spalten in den Objekttabellen. 
 
@@ -38,34 +37,6 @@
 -- Wenn der nicht gefÃŒllt ist, wird statt dessen die Nummer aus der verknÃŒpften Labebezeichnung verwendet.
 
-
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-CREATE OR REPLACE VIEW s_hausnummer_gebaeude 
-AS 
- SELECT p.ogc_fid, 
-        p.wkb_geometry,			           -- Point
-        p.drehwinkel * 57.296 AS drehwinkel,  -- umn: ANGLE
-    --  p.art,
-    --  p.advstandardmodell       AS modell,  -- TEST
-    --  p.horizontaleausrichtung  AS hor,     -- = 'zentrisch'
-    --  p.vertikaleausrichtung    AS ver,     -- = 'Basis' (oft), "Mitte" (selten)
-    --  p.schriftinhalt,                      -- WMS: das bessere LABELITEM, kann aber leer sein
-    --  l.hausnummer,                         -- WMS: LABELITEM default/native
-        COALESCE(p.schriftinhalt, l.hausnummer) AS hausnummer
-   FROM ap_pto p
-   JOIN alkis_beziehungen v
-     ON p.gml_id = v.beziehung_von
-   JOIN ax_lagebezeichnungmithausnummer l
-	 ON v.beziehung_zu  = l.gml_id
-  WHERE p.art = 'HNR'
-    AND 'DKKM1000' = ANY (p.advstandardmodell) -- erste NÃ€herungslÃ¶sung um Redundanzen zu unterdrÃŒcken
-    AND v.beziehungsart = 'dientZurDarstellungVon'
-	AND p.endet IS NULL
-	AND l.endet IS NULL;
-
-*/
-
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- DROP VIEW IF EXISTS s_hausnummer_gebaeude;
+
 CREATE OR REPLACE VIEW s_hausnummer_gebaeude 
 AS 
@@ -96,24 +67,6 @@
 -- ax_gebaeude  >hat>  ax_lagebezeichnungmitpseudonummer, kein Drehwinkel.
 
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-CREATE OR REPLACE VIEW lfdnr_nebengebaeude 
-AS 
- SELECT g.ogc_fid, 
-        g.wkb_geometry, 
-    --  l.pseudonummer,      -- TEST die HsNr des zugehoerigen Hauptgebaeudes
-        l.laufendenummer     -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes
-   FROM ax_gebaeude g
-   JOIN alkis_beziehungen v 
-     ON g.gml_id = v.beziehung_von
-   JOIN ax_lagebezeichnungmitpseudonummer l
-     ON v.beziehung_zu  = l.gml_id
-   WHERE v.beziehungsart = 'hat'
-     AND g.endet IS NULL
-     AND l.endet IS NULL;
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- DROP VIEW IF EXISTS lfdnr_nebengebaeude;
+
 CREATE OR REPLACE VIEW lfdnr_nebengebaeude 
 AS 
@@ -131,4 +84,7 @@
 -- GebÃ€ude-Text
 -- ------------
+
+-- DROP VIEW IF EXISTS gebaeude_txt;
+
 CREATE OR REPLACE VIEW gebaeude_txt 
 AS 
@@ -149,25 +105,6 @@
 -- -----------------------
 
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck 
-AS 
- SELECT p.ogc_fid, 
-        p.wkb_geometry, 
-        p.drehwinkel * 57.296 AS drehwinkel,
-        f.flurstueckskennzeichen
-   FROM ap_ppo p
-   JOIN alkis_beziehungen v
-     ON p.gml_id = v.beziehung_von
-   JOIN ax_flurstueck f
-     ON v.beziehung_zu = f.gml_id
-  WHERE p.art = 'Haken'
-    AND v.beziehungsart = 'dientZurDarstellungVon'
-    AND f.endet IS NULL
-    AND p.endet IS NULL;
-
-*/
-
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- DROP VIEW IF EXISTS s_zugehoerigkeitshaken_flurstueck;
+
 CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck 
 AS 
@@ -188,23 +125,6 @@
 -- -----------------------------------
 
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck 
-AS 
- SELECT l.ogc_fid, 
-        l.wkb_geometry
-   FROM ap_lpo l
-   JOIN alkis_beziehungen v
-     ON l.gml_id = v.beziehung_von
-   JOIN ax_flurstueck f
-     ON v.beziehung_zu = f.gml_id
-  WHERE l.art = 'Pfeil'
-    AND v.beziehungsart = 'dientZurDarstellungVon'
-    AND f.endet IS NULL
-    AND l.endet IS NULL;
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- DROP VIEW IF EXISTS s_zuordungspfeil_flurstueck;
+
 CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck 
 AS 
@@ -221,24 +141,7 @@
   IS 'Sicht fÃŒr Kartendarstellung: Zuordnungspfeil zur FlurstÃŒcksnummer, Liniengeometrie.';
 
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-CREATE OR REPLACE VIEW s_zuordungspfeilspitze_flurstueck 
-AS 
- SELECT l.ogc_fid, 
-        (((st_azimuth(st_pointn(l.wkb_geometry, 1), 
-        st_pointn(l.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel, 
-        st_startpoint(l.wkb_geometry) AS wkb_geometry 
-   FROM ap_lpo l
-   JOIN alkis_beziehungen v
-     ON l.gml_id = v.beziehung_von
-   JOIN ax_flurstueck f
-     ON v.beziehung_zu = f.gml_id
-  WHERE l.art = 'Pfeil'
-    AND v.beziehungsart = 'dientZurDarstellungVon'
-    AND f.endet IS NULL
-    AND l.endet IS NULL;
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+
+-- DROP VIEW IF EXISTS s_zuordungspfeilspitze_flurstueck;
+
 CREATE OR REPLACE VIEW s_zuordungspfeilspitze_flurstueck 
 AS 
@@ -263,24 +166,4 @@
 -- ----------------------------------------------------
 
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-CREATE OR REPLACE VIEW s_zuordungspfeil_bodensch
-AS 
- SELECT l.ogc_fid, 
-        l.wkb_geometry
-   FROM ap_lpo l
-   JOIN alkis_beziehungen v
-     ON l.gml_id = v.beziehung_von
-   JOIN ax_bodenschaetzung b
-     ON v.beziehung_zu = b.gml_id
-  WHERE l.art = 'Pfeil'
-    AND v.beziehungsart = 'dientZurDarstellungVon'
-    AND ('DKKM1000' ~~ ANY (l.advstandardmodell))
-    AND b.endet IS NULL
-    AND l.endet IS NULL;
-
-*/
-
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
 CREATE OR REPLACE VIEW s_zuordungspfeil_bodensch
 AS 
@@ -299,27 +182,6 @@
 
 
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-CREATE OR REPLACE VIEW s_zuordungspfeilspitze_bodensch 
-AS 
- SELECT l.ogc_fid, 
-        (((st_azimuth(st_pointn(l.wkb_geometry, 1), 
-        st_pointn(l.wkb_geometry, 2)) * (- (180)::double precision)) / pi()) + (90)::double precision) AS winkel, 
-        st_startpoint(l.wkb_geometry) AS wkb_geometry 
-   FROM ap_lpo l
-   JOIN alkis_beziehungen v
-     ON l.gml_id = v.beziehung_von
-   JOIN ax_bodenschaetzung b
-     ON v.beziehung_zu = b.gml_id
-  WHERE l.art = 'Pfeil'
-    AND v.beziehungsart = 'dientZurDarstellungVon'
-    AND ('DKKM1000' ~~ ANY (l.advstandardmodell))
-    AND b.endet IS NULL
-    AND l.endet IS NULL;
-
-*/
-
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- DROP VIEW IF EXISTS s_zuordungspfeilspitze_bodensch;
+ 
 CREATE OR REPLACE VIEW s_zuordungspfeilspitze_bodensch 
 AS 
@@ -348,53 +210,6 @@
 -- Auch Zeilen mit leerem Schriftinhalt verwenden. Das wird im PostProcessing noch ergÃ€nzt. 
 
--- DROP VIEW ap_pto_stra;
-
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-CREATE OR REPLACE VIEW ap_pto_stra 
-AS 
-  SELECT p.ogc_fid,
-         l.gml_id,                               -- wird im PP zum Nachladen aus Katalog gebraucht
-      -- p.advstandardmodell       AS modell,    -- TEST
-      -- l.unverschluesselt, l.lage AS schluessel, -- zur Lage  TEST
-         p.schriftinhalt,                        -- WMS: LABELITEM
-         p.art,                                  -- WMS: CLASSITEM
-         p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position ..
-         p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver
-         p.drehwinkel * 57.296     AS winkel,    -- * 180 / Pi
-         p.wkb_geometry
-    FROM ap_pto p
-    JOIN alkis_beziehungen v   -- Relation zur Lagebezeichnung o. HsNr.
-      ON p.gml_id = v.beziehung_von
-    JOIN ax_lagebezeichnungohnehausnummer l
-      ON v.beziehung_zu = l.gml_id
-   WHERE -- NOT p.schriftinhalt IS NULL   AND
-          p.endet IS NULL                            -- nichts historisches
-     AND  p.art   IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- Diese Werte als CLASSES in LAYER behandeln. 
-     AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht
-
-     AND (   'DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen
-          OR 'DLKM'     = ANY (p.advstandardmodell) -- oder auch Kataster allgemein 
-           -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt
-          OR (p.advstandardmodell IS NULL
-               AND (SELECT s.ogc_fid                -- irgend ein Feld
-                      FROM ap_pto s                 -- eines anderen Textes (suchen)
-                      JOIN alkis_beziehungen vs     -- zur gleichen Lage o.HsNr
-                        ON s.gml_id = vs.beziehung_von
-                      JOIN ax_lagebezeichnungohnehausnummer ls
-                        ON vs.beziehung_zu = ls.gml_id
-                     WHERE ls.gml_id = l.gml_id
-                       AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht
-                       AND NOT s.advstandardmodell IS NULL 
-                     LIMIT 1  -- einer reicht als Beweis
-                   ) IS NULL 
-              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird
-         )
-;
-
-*/
-
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- DROP VIEW IF EXISTS ap_pto_stra;
+
 CREATE OR REPLACE VIEW ap_pto_stra 
 AS 
@@ -434,51 +249,10 @@
  Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe. Dient im Script pp_laden.sql zum ersten FÃŒllen der Tabelle "pp_strassenname_p".';
 
--- 2013-10-26: Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in den Tabellen "pp_strassenname" und "pp_strassenklas".
+-- Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in den Tabellen "pp_strassenname" und "pp_strassenklas".
 -- Der View ÃŒbernimmt die Auswahl des passenden advstandardmodell und rechnet den Winkel passend um,
 -- In der Tabelle werden dann die leer gebliebenen Label aus dem Katalog noch ergÃ€nzt.
 
--- DROP VIEW ap_lto_stra;
-
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-CREATE OR REPLACE VIEW ap_lto_stra 
-AS 
-  SELECT p.ogc_fid,
-         l.gml_id,                               -- wird im PP zum Nachladen aus Katalog gebraucht
-         p.schriftinhalt,                        -- WMS: LABELITEM
-         p.art,                                  -- WMS: CLASSITEM
-         p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position ..
-         p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver
-         p.wkb_geometry
-    FROM ap_lto p
-    JOIN alkis_beziehungen v   -- Relation zur Lagebezeichnung o. HsNr.
-      ON p.gml_id = v.beziehung_von
-    JOIN ax_lagebezeichnungohnehausnummer l
-      ON v.beziehung_zu = l.gml_id
-   WHERE  p.endet IS NULL                            -- nichts historisches
-     AND  p.art   IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- Diese Werte als CLASSES in LAYER behandeln. 
-     AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht
-     AND (    'DKKM1000' = ANY (p.advstandardmodell) -- "Lika 1000" bevorzugen
-           OR 'DLKM'     = ANY (p.advstandardmodell) -- oder auch Kataster allgemein?
-           -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt
-           OR (p.advstandardmodell IS NULL
-               AND (SELECT s.ogc_fid                 -- irgend ein Feld
-                      FROM ap_lto s                  -- eines anderen Textes (suchen)
-                      JOIN alkis_beziehungen vs      -- zur gleichen Lage o.HsNr
-                        ON s.gml_id = vs.beziehung_von
-                      JOIN ax_lagebezeichnungohnehausnummer ls
-                        ON vs.beziehung_zu = ls.gml_id
-                     WHERE ls.gml_id = l.gml_id
-                       AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht
-                       AND NOT s.advstandardmodell IS NULL 
-                     LIMIT 1  -- einer reicht als Beweis
-                   ) IS NULL 
-              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird
-         )
-;
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- DROP VIEW IF EXISTS ap_lto_stra;
+
 CREATE OR REPLACE VIEW ap_lto_stra 
 AS 
@@ -532,45 +306,6 @@
 -- ODER           trennen nach fachlichen Ebenen wie "Nutzung" und "GebÃ€ude" und ....
 
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-CREATE OR REPLACE VIEW ap_pto_nam 
-AS 
-  SELECT p.ogc_fid,
-	  -- p.advstandardmodell       AS modell,    -- TEST
-         p.schriftinhalt,                        -- WMS: LABELITEM
-         p.art,                                  -- WMS: CLASSITEM
-         p.horizontaleausrichtung  AS hor,       -- Verfeinern der Text-Position ..
-         p.vertikaleausrichtung    AS ver,       --  .. durch Klassifizierung hor/ver
-         p.drehwinkel * 57.296     AS winkel,    -- * 180 / Pi
-         p.wkb_geometry
-    FROM ap_pto p
-    JOIN alkis_beziehungen v       
-      ON p.gml_id = v.beziehung_von
-  --JOIN nutzung l                      -- Im PostProcessing zusammen gefasste Nutzungsarten-Abschnitte
-  --  ON v.beziehung_zu = l.gml_id
-   WHERE NOT p.schriftinhalt IS NULL 
-     AND  p.endet IS NULL                            -- nichts historisches
-     AND  p.art   IN ('NAM','ZNM') -- Diese Werte als CLASSES in LAYER behandeln. 
-     AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht
-     AND ('DKKM1000' = ANY (p.advstandardmodell)     -- "Lika 1000" bevorzugen
-           -- Ersatzweise auch "keine Angabe", aber nur wenn es keinen besseren Text zur Lage gibt
-           OR (p.advstandardmodell IS NULL
-               AND (SELECT vs.beziehung_zu          -- irgend ein Feld
-					  FROM ap_pto s                 -- eines anderen Textes (suchen)
-                      JOIN alkis_beziehungen vs     -- zur gleichen ?irgendwas?
-                        ON s.gml_id = vs.beziehung_von
-                     WHERE vs.beziehung_zu = v.beziehung_zu
-                       AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht
-                       AND NOT s.advstandardmodell IS NULL 
-                     LIMIT 1  -- einer reicht als Beweis
-					) IS NULL 
-              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird
-         )
-;
-
-*/
-
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
+-- DROP VIEW IF EXISTS ap_pto_nam;
+
 CREATE OR REPLACE VIEW ap_pto_nam 
 AS 
@@ -613,14 +348,7 @@
 -- Doppelte Darstellung aufgrund verschiedener "advstandardmodell" zum Objekt unterdrÃŒcken analog ap_pto_stra und ap_pto_nam
 
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPIEREN  +++
-
-*/
-
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- ToDo
-CREATE OR REPLACE VIEW ap_pto_rest 
+-- DROP VIEW IF EXISTS ap_pto_rest;
+
+CREATE OR REPLACE VIEW ap_pto_rest
 AS 
   SELECT p.ogc_fid, 
@@ -630,28 +358,22 @@
          p.wkb_geometry 
     FROM ap_pto p
-    JOIN alkis_beziehungen v   -- Relation zur ?irgendwas?
-      ON p.gml_id = v.beziehung_von
-   WHERE not p.schriftinhalt IS NULL 
+   WHERE NOT p.schriftinhalt IS NULL
+     AND NOT p.dientzurdarstellungvon IS NULL
      AND p.endet IS NULL
      AND p.art   NOT IN ('PNR','HNR','Strasse','Weg','Platz','BezKlassifizierungStrasse','AOG_AUG') -- 'PNR',
      -- Diese 'IN'-Liste fortschreiben bei Erweiterungen des Mapfiles
      -- 'PNR' = Pseudonummer (lfd.-Nr.-NebengebÃ€ude), Inhalte wie "(1)" oder "P50" - kommt nicht mehr vor, oder?
-    AND  v.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht
     AND ('DKKM1000' = ANY (p.advstandardmodell)     -- "Lika 1000" bevorzugen
-           -- Ersatzweise auch "keine Angabe" (nul) akzeptieren, aber nur wenn es keinen besseren Text zu ?irgendwas? gibt
-           -- Es wird hier nur bis zur Verbindungstabelle "alkis_beziehungen" gesucht, ob am anderen Ende die gleiche gml_id verlinkt ist.
-           -- Diese gml_id kÃ¶nnen dann zu verschiedenen, unbekannten Objekttabellen linken.
+           -- Ersatzweise auch "keine Angabe" (null) akzeptieren, aber nur wenn ...
            OR (p.advstandardmodell IS NULL
-               AND (SELECT vs.beziehung_zu          -- irgend ein Feld
-					  FROM ap_pto s                 -- eines anderen Textes (suchen)
-                      JOIN alkis_beziehungen vs     -- zur gleichen ?irgendwas?
-                        ON s.gml_id = vs.beziehung_von
-                     WHERE vs.beziehung_zu = v.beziehung_zu
-                       AND vs.beziehungsart = 'dientZurDarstellungVon' -- kann, muss aber nicht
-                       AND NOT s.advstandardmodell IS NULL 
+               AND ( SELECT s.ogc_fid               -- irgend ein Feld
+                      FROM ap_pto s
+                     WHERE p.dientzurdarstellungvon = s.dientzurdarstellungvon -- gleiches PrÃ€sentationsobj.
+                       AND NOT s.advstandardmodell IS NULL -- Irgend eine Angabe
                      LIMIT 1  -- einer reicht als AusschluÃkriterium
-					) IS NULL 
+                    ) IS NULL 
               ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird
          );
+
 COMMENT ON VIEW ap_pto_rest 
   IS 'Sicht fÃŒr Kartendarstellung: Beschriftungen aus "ap_pto", die noch nicht in anderen Layern angezeigt werden.';
@@ -664,29 +386,18 @@
 -- Layer "s_zuordungspfeil_gebaeude"
 -- -----------------------------------
-
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPIEREN  +++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- ToDo
-
-CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude 
+-- DROP VIEW IF EXISTS s_zuordungspfeil_gebaeude;
+
+CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude
 AS 
  SELECT l.ogc_fid, 
-     -- alkis_beziehungen.beziehungsart, -- TEST
      -- ap_lpo.art, -- TEST
         l.wkb_geometry
    FROM ap_lpo l
-   JOIN alkis_beziehungen v
-     ON l.gml_id = v.beziehung_von
    JOIN ax_gebaeude g
-     ON v.beziehung_zu = g.gml_id
+     ON g.gml_id = ANY(l.dientzurdarstellungvon)
   WHERE l.art = 'Pfeil'
-    AND v.beziehungsart = 'dientZurDarstellungVon'
     AND g.endet IS NULL
     AND l.endet IS NULL;
+
 COMMENT ON VIEW s_zuordungspfeil_gebaeude 
   IS 'Sicht fÃŒr Kartendarstellung: Zuordnungspfeil fÃŒr GebÃ€ude-Nummer (NebengebÃ€ude). Wird wahrscheinlich nicht mehr benÃ¶tigt.';
@@ -695,15 +406,6 @@
 -- Grenzpunkte
 -- -----------
---  ax_punktortta  >zeigtAuf?> AX_Grenzpunkt
 -- Zum Punktort des Grenzpunktes auch eine Information zur Vermarkung holen
-
-/* 
--- alte Version mit Relationen ÃŒber die Tabelle "alkis_beziehungen":
-
-    +++ HIER HIN KOPIEREN  +++
-
-*/
--- neue Version mit Relationen OHNE die Tabelle "alkis_beziehungen":
--- ToDo
+-- DROP VIEW IF EXISTS grenzpunkt;
 
 CREATE OR REPLACE VIEW grenzpunkt 
@@ -712,14 +414,11 @@
         o.wkb_geometry, 
      -- g.punktkennung,    -- ggf spÃ€ter als labelitem "rrrrrhhhhAnnnnn" "32483 5751 0 02002"
-        g.abmarkung_marke, -- steuert die Darstellung >9000 = unvermarkt
-        v.beziehungsart
+        g.abmarkung_marke  -- steuert die Darstellung >9000 = unvermarkt
    FROM ax_punktortta o
-   JOIN alkis_beziehungen v 
-     ON o.gml_id = v.beziehung_von
    JOIN ax_grenzpunkt g
-     ON v.beziehung_zu  = g.gml_id
-   WHERE v.beziehungsart = 'istTeilVon'
-     AND g.endet IS NULL
+     ON o.istteilvon = g.gml_id
+   WHERE g.endet IS NULL
      AND g.endet IS NULL;
+
 COMMENT ON VIEW grenzpunkt 
   IS 'Sicht fÃŒr Kartendarstellung: ZusammenfÃŒhrung von Punktort (Geometrie) und AX_Grenzpunkt (Eigenschaften)';
@@ -735,4 +434,5 @@
   WHERE 3000   = ANY (fg.artderflurstuecksgrenze)
     AND 'DLKM' = ANY (fg.advstandardmodell);
+
 COMMENT ON VIEW sk2012_flurgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Flurgrenze"';
 
@@ -743,4 +443,5 @@
   WHERE 7003   = ANY (gemag.artderflurstuecksgrenze)
     AND 'DLKM' = ANY (gemag.advstandardmodell);
+
 COMMENT ON VIEW sk2014_gemarkungsgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemarkungsgrenze"';
 
@@ -751,4 +452,5 @@
   WHERE 7102   = ANY (blg.artderflurstuecksgrenze)
     AND 'DLKM' = ANY (blg.advstandardmodell);
+
 COMMENT ON VIEW sk2018_bundeslandgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Bundeslandgrenze"';
 
@@ -759,4 +461,5 @@
   WHERE 7103   = ANY (rbg.artderflurstuecksgrenze) 
     AND 'DLKM' = ANY (rbg.advstandardmodell);
+
 COMMENT ON VIEW sk2020_regierungsbezirksgrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Regierungsbezirksgrenze"';
 
@@ -767,4 +470,5 @@
   WHERE 7106   = ANY (gemg.artderflurstuecksgrenze) 
     AND 'DLKM' = ANY (gemg.advstandardmodell);
+
 COMMENT ON VIEW sk2022_gemeindegrenze IS 'Sicht fÃŒr Kartendarstellung: besondere FlurstÃŒcksgrenze "Gemeindegrenze"';
 
@@ -817,5 +521,5 @@
      -- so2.bezeichner                     AS sonst2, -- immer leer?
         bs.jahreszahl                                 -- integer
-   FROM ax_bodenschaetzung bs
+   FROM      ax_bodenschaetzung bs
    LEFT JOIN ax_bodenschaetzung_kulturart      ka ON bs.kulturart = ka.wert
    LEFT JOIN ax_bodenschaetzung_bodenart       ba ON bs.bodenart  = ba.wert
@@ -828,4 +532,5 @@
  --LEFT JOIN ax_bodenschaetzung_sonstigeangaben so2 ON bs.sonstigeangaben[2] = so2.wert -- [2] fast nie
    WHERE bs.endet IS NULL;
+
 COMMENT ON VIEW s_bodensch_ent IS 'Sicht fÃŒr Feature-Info: BodenschÃ€tzung, mit Langtexten entschlÃŒsselt';
 
@@ -838,17 +543,17 @@
  SELECT bs.ogc_fid,
         bs.wkb_geometry,
-     -- bs.advstandardmodell,   -- NUR TEST
+     -- bs.advstandardmodell,     -- NUR TEST
      -- bs.entstehungsartoderklimastufewasserverhaeltnisse AS entstehart, -- Array der Keys, NUR TEST
         ka.kurz AS kult,  -- Kulturart, CLASSITEM, steuert die Farbe
      -- Viele Felder zusammen packen zu einem kompakten Zwei-Zeilen-Label:
-          ba.kurz  ||            -- Bodenart
-          zs.kurz  ||            -- Zustandsstufe
-          ea1.kurz ||            -- Entstehungsart oder Klimastufe, Wasserverhaeltnisse ist ein Array mit 1 bis 2 Elementen
+          ba.kurz  ||             -- Bodenart
+          zs.kurz  ||             -- Zustandsstufe
+          ea1.kurz ||             -- Entstehungsart oder Klimastufe, Wasserverhaeltnisse ist ein Array mit 1 bis 2 Elementen
           coalesce (ea2.kurz, '') -- NULL vermeiden!
-          || ' ' ||              -- Zeilenwechsel im Label (UMN: WRAP)
+          || ' ' ||               -- Zeilenwechsel im Label (UMN: WRAP)
           bs.bodenzahlodergruenlandgrundzahl || '/' ||
           bs.ackerzahlodergruenlandzahl 
-        AS derlabel              -- LABELITEM Umbruch am Blank
-   FROM ax_bodenschaetzung bs
+        AS derlabel               -- LABELITEM Umbruch am Blank
+   FROM      ax_bodenschaetzung bs
    LEFT JOIN ax_bodenschaetzung_kulturart      ka ON bs.kulturart = ka.wert
    LEFT JOIN ax_bodenschaetzung_bodenart       ba ON bs.bodenart  = ba.wert
@@ -859,4 +564,5 @@
           ON bs.entstehungsartoderklimastufewasserverhaeltnisse[2] = ea2.wert   -- [2] manchmal gefÃŒllt
    WHERE bs.endet IS NULL;
+
 COMMENT ON VIEW s_bodensch_wms IS 'Sicht fÃŒr Kartendarstellung: BodenschÃ€tzung mit kompakten Informationen fÃŒr Label.';
 
@@ -873,4 +579,5 @@
    FROM ax_bodenschaetzung
   WHERE endet IS NULL;
+
 COMMENT ON VIEW s_bodensch_po IS 'Sicht fÃŒr Kartendarstellung: KlassenflÃ€che der BodenschÃ€tzung ohne Label.';
 
@@ -896,7 +603,6 @@
           bs.ackerzahlodergruenlandzahl 
         AS derlabel                -- LABELITEM, Umbruch am Leerzeichen
-   FROM ap_pto                            p
-   JOIN alkis_beziehungen                 v  ON p.gml_id       = v.beziehung_von
-   JOIN ax_bodenschaetzung                bs ON v.beziehung_zu = bs.gml_id
+   FROM ap_pto                                 p
+   JOIN ax_bodenschaetzung                     bs ON bs.gml_id = ANY(p.dientzurdarstellungvon)
    LEFT JOIN ax_bodenschaetzung_kulturart      ka ON bs.kulturart = ka.wert
    LEFT JOIN ax_bodenschaetzung_bodenart       ba ON bs.bodenart  = ba.wert
@@ -906,8 +612,9 @@
    LEFT JOIN ax_bodenschaetzung_entstehungsartoderklimastufe ea2 
           ON bs.entstehungsartoderklimastufewasserverhaeltnisse[2] = ea2.wert 
-  WHERE -- v.beziehungsart = 'dientZurDarstellungVon' AND 
-         p.endet  IS NULL
+  WHERE  p.endet  IS NULL
      AND bs.endet IS NULL;
-COMMENT ON VIEW s_bodensch_tx IS 'Sicht fÃŒr Kartendarstellung: Kompakter Label zur KlassenflÃ€che der BodenschÃ€tzung an manueller Position. Der Label wird zusammengesetzt aus: Bodenart, Zustandsstufe, Entstehungsart oder Klimastufe/WasserverhÃ€ltnisse, Bodenzahl oder GrÃŒnlandgrundzahl und Ackerzahl oder GrÃŒnlandzahl.';
+
+COMMENT ON VIEW s_bodensch_tx IS 'Sicht fÃŒr Kartendarstellung: Kompakter Label zur KlassenflÃ€che der BodenschÃ€tzung an manueller Position. 
+Der Label wird zusammengesetzt aus: Bodenart, Zustandsstufe, Entstehungsart oder Klimastufe/WasserverhÃ€ltnisse, Bodenzahl oder GrÃŒnlandgrundzahl und Ackerzahl oder GrÃŒnlandzahl.';
 
 -- Redundanz suchen:
