Index: trunk/import/konv_batch.sh
===================================================================
--- trunk/import/konv_batch.sh	(revision 293)
+++ trunk/import/konv_batch.sh	(revision 294)
@@ -27,4 +27,6 @@
 ##   2012-10-30 Umgebungsvariable setzen, delete-Tabelle am Ende fuer Analyse gefuellt lassen.
 ##              Test als 0.7a mit gepatchter gdal-Version (noch 2.0dev)
+##   2013-10-16 F.J. krz: Neues Script "pp_praesentation_action.sql" für Reparatur der 
+##              Präsentationsobjekte Straßenname im Post-Processing
 ##
 ## ToDo: Option "-skipfailures" nach Test entfernen ?
@@ -86,5 +88,5 @@
 fi
 # Fehlerprotokoll:
-  errprot='$POSTNAS_HOME/log/postnas_err_'$DBNAME'.prot'
+  errprot=${POSTNAS_HOME}'/log/postnas_err_'$DBNAME'.prot'
 #
 # DB-Connection
@@ -144,11 +146,18 @@
   else
     echo "** Post-Processing (Nacharbeiten zur Konvertierung)"
+
     echo "** - Optimierte Nutzungsarten neu Laden:"
     (cd $POSTNAS_HOME; psql -p 5432 -d ${DBNAME} -f nutzungsart_laden.sql)
-    ##
+
+
     echo "** - Fluren / Gemarkungen / Gemeinden neu Laden:"
     (cd $POSTNAS_HOME; psql -p 5432 -d ${DBNAME} -f pp_laden.sql)
+
+
+    echo "** - Präsentationsobjekte generieren:"
+    (cd $POSTNAS_HOME; psql -p 5432 -d ${DBNAME} -f pp_praesentation_action.sql)
+
   fi
-
+#
   if [ "$(readlink $POSTNAS_HOME/alkis-trigger.sql)" = "alkis-trigger-kill.sql" ]; then
 # Durch Einfuegen in Tabelle 'delete' werden Loeschungen anderer Tabellen getriggert
@@ -167,6 +176,5 @@
     #echo "  ... geendete Objekte entfernen wurde fuer Test dektiviert."
     #echo "  Bitte manuell ausfuehren:  SELECT alkis_delete_all_endet(); "
-#
-    echo "Das Fehler-Protokoll wurde ausgegeben in die Datei $errprot"
-    #echo "HINWEIS: -skipfailures  fuer Produktion wieder einschalten."
   fi
+  echo "Das Fehler-Protokoll wurde ausgegeben in die Datei $errprot"
+  #echo "HINWEIS: -skipfailures  fuer Produktion wieder einschalten."
Index: trunk/import/pp_praesentation_action.sql
===================================================================
--- trunk/import/pp_praesentation_action.sql	(revision 293)
+++ trunk/import/pp_praesentation_action.sql	(revision 294)
@@ -4,12 +4,16 @@
 -- Post Processing (pp_) Teil 3: PrÃ€sentationsobjekte ergÃ€nzen / reparieren
 
--- Dies Script "pp_praesentation_action.sql" dient der Reparatur von fehlenden PrÃ€sentationsobjekten.
--- Voraussetzung ist, dass vorher das Script "pp_praesentation_sichten.sql" verarbeitet wurde.
-
+-- Dies Script "pp_praesentation_action.sql" dient der Reparatur von fehlenden Texten in PrÃ€sentationsobjekten.
 -- Dies Script muss im Rahmen des Post-Processing nach jeder Konvertierung laufen.
--- Das Sichten-Sript muss nur beim Anlegen der Datenbank einmalig verarbeitet werden 
+-- Kommantare und ErlÃ€uterungen siehe in "pp_praesentation_sichten.sql".
 
 -- Stand 
 --  2013-10-16  F.J. krz: StraÃennamen fehlen in den PrÃ€sentationsobjekten, Tabelle "ap_pto"
+--  2013-10-17  F.J. krz: Relation "dientZurDarstellungVon" macht es einfacher
+
+-- ToDo:
+--  Konverter-Tabelle ap_pto unberÃŒhrt lassen.
+--  Besser aus ap_pto und den ErgÃ€nzungen eine PrÃ€sentationstabelle fÃŒr StraÃen fÃŒr den WMS exportieren. 
+--  Es besteht sonst die Gefahr, dass Ãnderungen im Katalog nicht in PTO ÃŒbernommen werden (nur bei: WHERE .. IS NULL)
 
 -- ========================================
@@ -17,96 +21,35 @@
 -- ========================================
 
---
--- Weitere Kommantare und ErlÃ€uterungen siehe in "pp_praesentation_sichten.sql".
---
-
--- Reparatur Sonderfall
--- ====================
-
-  -- Gibt es FÃ€lle, wo der Label in einem benachbarten FS liegt?
-  -- Hat er dann einen Zuordnungspfeil?
-  -- Dann mÃŒssten diese SonderfÃ€lle zuerst gefÃŒllt werden.
-
-
-
--- Reparatur Normalfall
--- ====================
-
-   -- Label   >liegt in>   FlurstÃŒck     >zeigtAuf>       Lage o.H.   -->   Katalog
-   --        (Geometrisch)            (Alkis_Beziehung)             (JOIN)
-
 -- N a m e n
 UPDATE ap_pto  p          -- PrÃ€sentationsobjekte PunktfÃ¶rmig
    SET schriftinhalt =    -- Hier fehlt der Label
    -- Subquery "Gib mir den StraÃennamen":
-   -- Diese Subquery darf nur eine einzige Zeile liefern damit der Inhalt in eine Spalte passt.
-    (SELECT k.bezeichnung                        -- StraÃenname ...
-       FROM ax_lagebezeichnungkatalogeintrag  k  --   .. aus Katalog
-       JOIN ax_lagebezeichnungohnehausnummer  l  -- wobei dieser Katalogeintrag
-            ON     k.land=l.land
-               AND k.regierungsbezirk=l.regierungsbezirk 
-               AND k.kreis=l.kreis
-               AND k.gemeinde=l.gemeinde
-               AND k.lage=l.lage 
-       JOIN alkis_beziehungen  b  ON l.gml_id = b.beziehung_zu  -- in Beziehung steht
-       JOIN ax_flurstueck      f  ON f.gml_id = b.beziehung_von -- zu dem FlurstÃŒck
-      WHERE b.beziehungsart = 'zeigtAuf'
-        AND ST_Within(p.wkb_geometry, f.wkb_geometry) -- in dessen FlÃ€che der Label liegt
-    --LIMIT 1  -- siehe unten !
-    )
- WHERE     p.art = 'Strasse'  -- Filter
+   ( SELECT k.bezeichnung                       -- StraÃenname ..
+       FROM ax_lagebezeichnungkatalogeintrag k  --  .. aus Katalog
+       JOIN ax_lagebezeichnungohnehausnummer l  -- verwendet als Lage o.H.
+         ON (k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk 
+             AND k.kreis=l.kreis AND k.gemeinde=l.gemeinde AND k.lage=l.lage )
+       JOIN alkis_beziehungen x ON l.gml_id = x.beziehung_zu  -- Relation zum PrÃ€sentationsobjekt
+      WHERE p.gml_id = x.beziehung_von
+        AND x.beziehungsart = 'dientZurDarstellungVon'
+      -- LIMIT 1 -- war in einem Fall notwendig, wo 2mal der gleiche Text zugeordnet war, Ursache?
+   )
+ WHERE     p.art = 'Strasse' -- Filter
    AND     p.schriftinhalt IS NULL
-   AND NOT p.wkb_geometry  IS NULL
-   -- Die ap_pto zunÃ€chst auslassen, zu dessen FlurstÃŒcken es mehrere Lagebezeichnungen gibt.
-   AND p.gml_id NOT IN (SELECT * FROM pp_praes_strassen_name_ausnahmen); -- siehe unten !
+   AND NOT p.wkb_geometry  IS NULL;
 
 
--- "LIMIT 1" wozu?
-
--- Es wird mÃ¶glicherweise mal mehr als 1 Wert je Subquery geliefert.
--- Dann ist dies SQL nicht ausfÃŒhrbar und bricht ab.
-
--- In den Testdaten "Mustermonzel" sind Name und Klassifikation nicht unterscheidbar weil
--- die Klassifikation nicht als art='BezKlassifizierungStrasse' sondern auch als art='strasse'
--- eingetragen ist. Dann werden 2 Zeilen geliefert, die AusfÃŒhrung bricht ab.
-
--- In aktuellen Daten ist diese Ursache ausgeschaltet.
--- Es gibt trotzdem SonderfÃ€lle, bei dem mehrere Werte geliefert werden.
--- Wenn das ÃŒber die Verschneidung gefundene FlurstÃŒcke mehrer "Lagebezeichnung ohne Hausnummer" hat,
--- dann kann zur Zeit nicht jedes dieser Label der passenden Position aus ap_pto zugewiesen weden.
--- Die obige LÃ¶sung funktioniert nur bei 1:1-Konstallationen.
-
--- Welcher Label gehÃ¶rt dann zu welcher Position?
--- Es gibt keine Verbindung (alkis_beziehung) zwischen "ap_pto" und "lagebezeichnung*".
-
--- Die LÃ¶sung ÃŒber "LIMIT 1" macht die Query ausfÃŒhrbar, fÃŒhrt aber dazu, dass nur einer der 
--- mehrfachen Label an allen Positionen angezeigt wird, was falsch ist.
-
--- Die alternative LÃ¶sung ÃŒber 
---    "p.gml_id NOT IN (SELECT * FROM pp_praes_strassen_name_ausnahmen)"
--- lÃ€sst die Label dagegen zunÃ€chst leer.
--- Diese FÃ€lle bleiben dann durch obigen Views weiterhin erkennbar. 
-
-
--- K l a s s i f i k a t i o n e n
--- (analog zu strassen)
+-- K l a s s i f i k a t i o n e n   (analog zu Strassen)
 UPDATE ap_pto  p          -- PrÃ€sentationsobjekte PunktfÃ¶rmig
    SET schriftinhalt =    -- Hier fehlt der Label
-   -- Subquery "Gib mir die StraÃen-Klassifikation":
-   -- Diese Subquery darf nur eine einzige Zeile liefern damit der Inhalt in eine Spalte passt.
-    (SELECT k.bezeichnung                        -- StraÃenname ...
-       FROM ax_lagebezeichnungkatalogeintrag  k  --   .. aus Katalog
-       JOIN ax_lagebezeichnungohnehausnummer  l  -- wobei dieser Katalogeintrag
-            ON     k.land=l.land
-               AND k.regierungsbezirk=l.regierungsbezirk 
-               AND k.kreis=l.kreis
-               AND k.gemeinde=l.gemeinde
-               AND k.lage=l.lage 
-       JOIN alkis_beziehungen  b  ON l.gml_id = b.beziehung_zu  -- in Beziehung steht
-       JOIN ax_flurstueck      f  ON f.gml_id = b.beziehung_von -- zu dem FlurstÃŒck
-      WHERE b.beziehungsart = 'zeigtAuf'
-        AND ST_Within(p.wkb_geometry, f.wkb_geometry) -- in dessen FlÃ€che der Label liegt
-    -- LIMIT 1
-    )
+   ( SELECT k.bezeichnung                       -- Klassifikation "B nnn", "L nnn", "K nnn"
+       FROM ax_lagebezeichnungkatalogeintrag k  -- .. aus Katalog
+       JOIN ax_lagebezeichnungohnehausnummer l  -- verwendet als Lage o.H.
+         ON (k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk 
+             AND k.kreis=l.kreis AND k.gemeinde=l.gemeinde AND k.lage=l.lage )
+       JOIN alkis_beziehungen x ON l.gml_id = x.beziehung_zu  -- Relation zum PrÃ€sentationsobjekt
+      WHERE p.gml_id = x.beziehung_von
+        AND x.beziehungsart = 'dientZurDarstellungVon'
+   )
  WHERE     p.art = 'BezKlassifizierungStrasse' -- Filter
    AND     p.schriftinhalt IS NULL
Index: trunk/import/pp_praesentation_sichten.sql
===================================================================
--- trunk/import/pp_praesentation_sichten.sql	(revision 293)
+++ trunk/import/pp_praesentation_sichten.sql	(revision 294)
@@ -4,12 +4,13 @@
 -- Post Processing (pp_) Teil 3: PrÃ€sentationsobjekte ergÃ€nzen / reparieren
 
--- Dies Script "pp_praesentation_sichten.sql" dient der Vorbereitung der Reparatur, 
+-- Dies Script "pp_praesentation_sichten.sql" dient der Vorschau der Reparatur, 
 -- die mit dem Script "pp_praesentation_action.sql" durchgefÃŒhrt wird.
 
--- Dies Script muss beim Anlegen der Datenbank verarbeitet werden und wenn sich die Sichten verÃ€ndert haben. 
+-- Dies Script kann beim Anlegen der Datenbank verarbeitet werden und wenn sich die Sichten verÃ€ndert haben. 
 -- Das Action-Script muss im Rahmen des Post-Processing nach jeder Konvertierung laufen.
 
 -- Stand 
 --  2013-10-16  F.J. krz: StraÃennamen fehlen in den PrÃ€sentationsobjekten, Tabelle "ap_pto"
+--  2013-10-17  F.J. krz: Relation "dientZurDarstellungVon" macht es einfacher
 
 
@@ -40,9 +41,9 @@
 -- FÃŒr die Darstellung im Kartenbild ist der gleiche Name oder eine Variante davon (AbkÃŒrzung, getrennt-Schreibung) 
 -- auch in jedem PrÃ€sentationsobjekt noch einmal abgelegt.
--- Diese Redundanz fÃŒhrt bei einer Ãnderung des Namens zu einem erhÃ¶hten Aufwand.
+-- Diese Redundanz fÃŒhrt bei einer Ãnderung des Namens zu einem erhÃ¶hten Aufwand, weil er an mehreren Stellen geÃ€ndrt werden muss..
 -- Ziel ist es daher, die identischen Kopien des Namens-Textes in "ap_pto" nicht mehr zu fÃŒhren.
--- Dort ist nur noch dann ein Eintrag zu finden, wenn Text (oder Signaturnummer?) nicht identisch sind.
+-- Dort ist nur noch dann ein Eintrag zu finden, wenn der Text nicht identisch sind (AbkÃŒrzung, Getrennt-Schreibung).
 
--- Signaturnummern werden auch nur noch dann erfasst, wenn mehrere Werte mÃ¶glich sind.
+-- Signaturnummern werden in ap_pto nur noch erfasst, wenn mehrere Werte mÃ¶glich sind.
 
 -- In Niedersachsen wurde oder wird das LÃ¶schen der identischen Texte in ap_pto mÃ¶glicherweise als Nachmigration gezielt
@@ -52,17 +53,7 @@
 
 
--- Es soll versucht werden, dies Label durch die Zuordnung der Schrift-Position 
--- in einem FlurstÃŒck und ÃŒber dessen Lagebezeichnung zu rekonstruieren.
-
--- "Label"   >liegt in>   "FlurstÃŒck"    >hat Lagebezeichnung>   "StraÃenname"
---           (geometrische                 (Beziehung)
---           Verschniedung)
-
-
 -- Simulation der Fehlersituation in einem TEST-Bestand
 -- ----------------------------------------------------
-
 -- VORSICHT! - Nur in einer Test-Kopie ausfÃŒhren. LÃ¶scht Daten!
-
   -- UPDATE ap_pto SET schriftinhalt = NULL  WHERE art = 'Strasse';
   -- UPDATE ap_pto SET schriftinhalt = NULL  WHERE art = 'BezKlassifizierungStrasse';
@@ -73,10 +64,13 @@
 
 -- Diese Views ermitteln, ob der Fall im vorliegenden Datenbestand vorkommt.
--- Dies ist in zunehmend in Niedersachsen der Fall.
 
--- In NRW-Daten wurden weniger FÃ€lle gefunden.
+-- Dies ist in zunehmend in Niedersachsen der Fall. 
+-- In NRW-Daten wurden weniger FÃ€lle gefunden. Dann ist jeweils auch die Signaturnummer leer. 
+-- Daher sollte "signaturnummer" nicht als Filter bei der "Reparatur" verwendet werden.
 
--- Dann ist jeweils auch die Signaturnummer leer. 
--- Daher sollte "signaturnummer" nicht als Filter bei der "Reparatur" verwendet werden.
+
+-- Aus VorgÃ€ngerversion, nicht mehr relevant:
+ -- DROP VIEW pp_praes_strassen_name_ausnahmen;
+ -- DROP VIEW pp_praes_strassen_name_mehrfach;
 
 
@@ -107,41 +101,28 @@
 
 
--- Diese Views sollen zeigen, welche Namen in ap_pto.schriftinhalt eingesetzt werden,
+-- Diese Views sollen zeigen, welche Namen in "ap_pto.schriftinhalt" eingesetzt werden,
 -- wenn die nachfolgenden update-Befehle ausgefÃŒhrt werden.
 
 -- Dies dient wÃ€hrend der Entwicklung zu manuellen Vorab-Kontrolle.
 -- Wenn hier keine Zeilen ausgegeben werden, kann die AusfÃŒhrung dieses Scriptes im Workflow ausgeschaltet werden.
--- Dann sind (Bundesland-spezifisch) die Namen bereits gefÃŒllt und brauchen nicht 
--- auf diese Weise rekonstruiert werden.
-
--- An einem Referenzbestand (amtliche Karte?) kann/sollte kontrolliert werden, 
---  ob die richtigen Namen zugeordnet werden.
+-- Dann sind die Namen noch gefÃŒllt und brauchen nicht auf diese Weise rekonstruiert werden.
 
 
---DROP VIEW  pp_praes_strassen_name_update_vorschau;
+ DROP VIEW  pp_praes_strassen_name_update_vorschau;
 CREATE OR REPLACE VIEW pp_praes_strassen_name_update_vorschau
 AS
-  SELECT f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler || '/' ||
-         coalesce(cast(f.nenner as character varying), '') AS fskennz, -- FlurstÃŒckskennzeichen zur Eingabe in Navigation
-         f.gml_id AS gml_fs,  -- ID des FlurstÃŒcks zum Nachsehen in der Auskunft (PHP/HTML)
-      -- p.gml_id AS gml_pto,
-         k.bezeichnung,                          -- der Name aus dem Katalog, der nach ap_pto kopiert wird
-         st_asewkt(p.wkb_geometry) AS label_geom -- Lesbare Koordinaten: Wo liegt der Label?
-  FROM   ax_lagebezeichnungkatalogeintrag  k     -- Katalog enthÃ€lt den StraÃennamen
-    JOIN ax_lagebezeichnungohnehausnummer  l     -- Diese Eintrag ist dem FlurstÃŒck als Lage o. HsNr. zugeordnet
-      ON ( k.land=l.land
-     AND k.regierungsbezirk=l.regierungsbezirk 
-     AND k.kreis=l.kreis
-     AND k.gemeinde=l.gemeinde
-     AND k.lage=l.lage )
-    JOIN alkis_beziehungen b ON l.gml_id = b.beziehung_zu 
-    JOIN ax_flurstueck     f ON f.gml_id = b.beziehung_von                -- FlurstÃŒck ..
-    JOIN ap_pto            p ON ST_Within(p.wkb_geometry, f.wkb_geometry) -- in dessen FlÃ€che die Label-Position liegt
-   WHERE p."art" = 'Strasse'  -- Filter
-     AND p.schriftinhalt      IS NULL       -- Text fehlt in ap_pto
-     AND NOT (p.wkb_geometry  IS NULL)      -- hat aber eine Position in ap_pto
-     AND b.beziehungsart = 'zeigtAuf'       -- Relation FlurstÃŒck - Lage o.HsNr
-  -- AND k.bezeichnung = 'Unter der Treff'  -- kleiner Test in Mustermonzel Testdaten
-   ORDER BY f.gemarkungsnummer, f.flurnummer, f.zaehler, f.nenner;
+  SELECT -- p.gml_id AS gml_pto,
+         k.bezeichnung,                              -- der Name aus dem Katalog, der nach ap_pto kopiert wird
+         st_asewkt(p.wkb_geometry) AS label_geom     -- Lesbare Koordinaten: Wo liegt der Label?
+  FROM   ax_lagebezeichnungkatalogeintrag  k         -- Katalog enthÃ€lt den StraÃennamen
+    JOIN ax_lagebezeichnungohnehausnummer  l         -- dient als Lage ohne HsNr.
+      ON ( k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk 
+     AND k.kreis=l.kreis AND k.gemeinde=l.gemeinde AND k.lage=l.lage )
+    JOIN alkis_beziehungen x ON l.gml_id = x.beziehung_zu  -- Relation ..
+    JOIN ap_pto            p ON p.gml_id = x.beziehung_von -- .. zum PrÃ€sentationsobjekt
+   WHERE p."art" = 'Strasse' -- Filter
+     AND p.schriftinhalt      IS NULL                -- Text fehlt in ap_pto
+     AND NOT (p.wkb_geometry  IS NULL)               -- hat aber eine Position in ap_pto
+     AND x.beziehungsart = 'dientZurDarstellungVon'; -- Relation PTO - Lage o.HsNr
 
 COMMENT ON VIEW pp_praes_strassen_name_update_vorschau 
@@ -149,92 +130,23 @@
 
 
--- Werden hier zu einem PTO mÃ¶glicherweise mal mehrere Werte geliefert?
--- In diesen Problem-FÃ€llen liefert die Subquery im Update (ohne Limit 1) mehrere Zeilen fÃŒr ein Feld.
-
---DROP VIEW pp_praes_strassen_name_mehrfach;
-CREATE OR REPLACE VIEW pp_praes_strassen_name_mehrfach
-AS
-	SELECT p.gml_id, p.advstandardmodell,
-	   st_asewkt(p.wkb_geometry) AS label_geom,  -- Wo liegt der Label?
-       (SELECT f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler || '/' ||
-        coalesce(cast(f.nenner as character varying), '') AS fskennz -- FlurstÃŒckskennzeichen zur Eingabe in Navigation
-		FROM ax_flurstueck f
-		WHERE ST_Within(p.wkb_geometry, f.wkb_geometry)
-	   ) AS flurstueck
-	FROM       ap_pto  p
-	 WHERE     p.art = 'Strasse'  
-	   AND     p.schriftinhalt IS NULL
-	   AND NOT p.wkb_geometry  IS NULL
-	   AND (SELECT count(k.bezeichnung) AS anzahl_label  -- die Subquery aus dem Update
-		   FROM ax_lagebezeichnungkatalogeintrag  k
-		   JOIN ax_lagebezeichnungohnehausnummer  l
-				ON k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk AND k.kreis=l.kreis
-				   AND k.gemeinde=l.gemeinde AND k.lage=l.lage
-		   JOIN alkis_beziehungen b ON l.gml_id = b.beziehung_zu
-		   JOIN ax_flurstueck f ON f.gml_id = b.beziehung_von
-		  WHERE b.beziehungsart = 'zeigtAuf'
-			AND ST_Within(p.wkb_geometry, f.wkb_geometry)
-		  ) > 1
-	ORDER BY p.gml_id, p.advstandardmodell;
-
-COMMENT ON VIEW pp_praes_strassen_name_mehrfach 
-  IS 'PrÃ€sentationsobjekt zu StraÃen. Zu einem PTO werden ÃŒber das FlurstÃŒck mehrere Texte gefunden.';
-
-
--- Work-Arround, bis die eindeutige Zuordnung von "ap_pto" zu "lagebezeichnung*" geklÃ€rt ist.  
-
--- Wie "pp_praes_strassen_name_mehrfach" aber nur eine Liste der gml_id liefern um
--- diese beim Update (vorlÃ€ufig) auszuschlieÃen.
-
---DROP VIEW pp_praes_strassen_name_ausnahmen;
-CREATE OR REPLACE VIEW pp_praes_strassen_name_ausnahmen
-AS
-	SELECT p.gml_id
-	FROM   ap_pto  p
-	 WHERE p.art = 'Strasse'  
-	   AND p.schriftinhalt IS NULL
-	   AND NOT p.wkb_geometry  IS NULL
-	   AND (SELECT count(k.bezeichnung) AS anzahl_label  -- die Subquery aus dem Update
-		   FROM ax_lagebezeichnungkatalogeintrag  k
-		   JOIN ax_lagebezeichnungohnehausnummer  l
-				ON k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk AND k.kreis=l.kreis
-				   AND k.gemeinde=l.gemeinde AND k.lage=l.lage
-		   JOIN alkis_beziehungen b ON l.gml_id = b.beziehung_zu
-		   JOIN ax_flurstueck f ON f.gml_id = b.beziehung_von
-		  WHERE b.beziehungsart = 'zeigtAuf'
-			AND ST_Within(p.wkb_geometry, f.wkb_geometry)
-		  ) > 1;
-
-COMMENT ON VIEW pp_praes_strassen_name_ausnahmen 
-  IS 'PrÃ€sentationsobjekt zu StraÃen. Zu einem PTO werden ÃŒber das FlurstÃŒck mehrere Texte gefunden. Liefert Liste der gml_is, die beim Update ausgenommen werden mÃŒssen.';
-
-
---DROP VIEW pp_praes_strassen_klass_update_vorschau;
+ DROP VIEW pp_praes_strassen_klass_update_vorschau;
 CREATE OR REPLACE VIEW pp_praes_strassen_klass_update_vorschau
 AS
-  SELECT p.gml_id, -- ID des FlurstÃŒcks zum Nachsehen in der Auskunft (PHP/HTML)
-         f.gemarkungsnummer || '-' || f.flurnummer || '-' || f.zaehler || '/' ||
-         coalesce(cast(f.nenner as character varying), '') AS fskennz, -- FlurstÃŒckskennzeichen zur Eingabe in Navigation
-         k.bezeichnung,                          -- der Name aus dem Katalog, der nach ap_pto kopiert wird
-         st_asewkt(p.wkb_geometry) AS label_geom -- Lesbare Koordinaten: Wo liegt der Label?
-  FROM   ax_lagebezeichnungkatalogeintrag  k     -- Katalog enthÃ€lt den StraÃennamen
-    JOIN ax_lagebezeichnungohnehausnummer  l     -- Diese Eintrag ist dem FlurstÃŒck als Lage o. HsNr. zugeordnet
-     ON (k.land=l.land
-     AND k.regierungsbezirk=l.regierungsbezirk 
-     AND k.kreis=l.kreis
-     AND k.gemeinde=l.gemeinde
-     AND k.lage=l.lage)
-    JOIN alkis_beziehungen b ON l.gml_id = b.beziehung_zu 
-    JOIN ax_flurstueck     f ON f.gml_id = b.beziehung_von                -- FlurstÃŒck ..
-    JOIN ap_pto            p ON ST_Within(p.wkb_geometry, f.wkb_geometry) -- in dessen FlÃ€che die Label-Position liegt
-   WHERE p."art" = 'BezKlassifizierungStrasse'  -- Filter
-     AND p.schriftinhalt      IS NULL    -- Text fehlt in ap_pto
-     AND NOT (p.wkb_geometry  IS NULL)   -- hat aber eine Position in ap_pto
-     AND b.beziehungsart = 'zeigtAuf'    -- Relation FlurstÃŒck - Lage o.HsNr
-   ORDER BY f.flurnummer, f.zaehler, f.nenner;
+  SELECT -- p.gml_id AS gml_pto,
+         k.bezeichnung,                              -- der Name aus dem Katalog, der nach ap_pto kopiert wird
+         st_asewkt(p.wkb_geometry) AS label_geom     -- Lesbare Koordinaten: Wo liegt der Label?
+  FROM   ax_lagebezeichnungkatalogeintrag  k         -- Katalog enthÃ€lt den StraÃennamen
+    JOIN ax_lagebezeichnungohnehausnummer  l         -- dient als Lage ohne HsNr.
+      ON ( k.land=l.land AND k.regierungsbezirk=l.regierungsbezirk 
+     AND k.kreis=l.kreis AND k.gemeinde=l.gemeinde AND k.lage=l.lage )
+    JOIN alkis_beziehungen x ON l.gml_id = x.beziehung_zu  -- Relation ..
+    JOIN ap_pto            p ON p.gml_id = x.beziehung_von -- .. zum PrÃ€sentationsobjekt
+   WHERE p."art" = 'BezKlassifizierungStrasse'       -- Filter
+     AND p.schriftinhalt      IS NULL                -- Text fehlt in ap_pto
+     AND NOT (p.wkb_geometry  IS NULL)               -- hat aber eine Position in ap_pto
+     AND x.beziehungsart = 'dientZurDarstellungVon'; -- Relation PTO - Lage o.HsNr
 
 COMMENT ON VIEW pp_praes_strassen_klass_update_vorschau 
   IS 'PrÃ€sentationsobjekt zu StraÃen. Vorschau zum Update der Klassifikation der in ap_pto.';
 
-
 -- ENDE --
Index: trunk/import/datenbank_anlegen.sh
===================================================================
--- trunk/import/datenbank_anlegen.sh	(revision 293)
+++ trunk/import/datenbank_anlegen.sh	(revision 294)
@@ -9,4 +9,5 @@
 ##  2013-01-15 Zwischenstopp um Meldungen lesen zu können bevor, sie aus dem Scrollbereich verschwinden
 ##  2013-04-16 Vers.-Nr. "0.7" aus dem Dateinamen von Schema und Keytable entfernt, sichten_wms.sql
+##  2013-10-16 F.J. krz: Neues Sript "pp_praesentation_sichten.sql" für Reparatur Präsentationsobjekte Straßennamen
 
 POSTNAS_HOME=$(dirname $0)
@@ -97,19 +98,29 @@
 ## Nur die benoetigten Tabellen fuer die Buchauskunft
 psql $con -U ${DBUSER} -f alkis_PostNAS_keytables.sql >$MANDANT_HOME/log/keytables.log
+
 echo " "
 echo "** Anlegen Optimierung Nutzungsarten (nutzungsart_definition.sql)"
 psql $con -U ${DBUSER} -f nutzungsart_definition.sql
+
 echo " "
 echo "** Laden NUA-Metadaten (nutzungsart_metadaten.sql) Protokoll siehe log"
 psql $con -U ${DBUSER} -f nutzungsart_metadaten.sql >$MANDANT_HOME/log/meta.log
+
 echo " "
-echo "** Anlegen Post Processing (pp_definition.sql)"
+echo "** Anlegen Post Processing Tabellen (pp_definition.sql)"
 psql $con -U ${DBUSER} -f pp_definition.sql >$MANDANT_HOME/log/pp_definition.log
+
+echo " "
+echo "** Anlegen Post Processing Views (pp_praesentation_sichten.sql)"
+psql $con -U ${DBUSER} -f pp_praesentation_sichten.sql >$MANDANT_HOME/log/pp_praesentation_sichten.log
+
 echo " "
 echo "** Definition von Views (sichten_wms.sql)"
 psql $con -U ${DBUSER} -f sichten_wms.sql >$MANDANT_HOME/log/sichten_wms.log
+
 echo " "
 echo  "COMMENT ON DATABASE ${DBNAME} IS 'ALKIS - Konverter PostNAS 0.7';" | psql -p 5432 -d ${DBNAME} -U ${DBUSER} 
 echo " "
+
 echo "** Berechtigung (grant.sql) Protokoll siehe log"
 psql $con -U ${DBUSER} -f grant.sql >$MANDANT_HOME/log/log_grant.log
