Index: trunk/import/staedtische_FS_aus_ALKIS_rlp.sql
===================================================================
--- trunk/import/staedtische_FS_aus_ALKIS_rlp.sql	(revision 349)
+++ trunk/import/staedtische_FS_aus_ALKIS_rlp.sql	(revision 351)
@@ -13,6 +13,9 @@
 --  2014-09-30 RÃŒckbau subsrting(gml_id), Umbenennung SchlÃŒsseltabellen "ax_*" nach "v_*"
 --  2014-12-16 Views fÃŒr Gebiete im WMS, gefiltert nach individueller Gemeinde
+--  2014-12-17 Spalte "gemeinde" in "pp_flur" nutzen
 
 -- Voraussetzung = View "doppelverbindung" aus ALKIS PostNAS-Projekt Datei "sichten.sql"
+
+-- ToDo: Umbenennen der Datei von "staedtische_FS" nach "staedtische_views" oder so Ã€hnlich.
 
 
@@ -97,11 +100,9 @@
 
 -- Flur gefiltert
---  +++ Im PostProcessing auch Gemeinde in Tabelle "pp_flur" einfÃŒgen und fÃŒllen.
 CREATE OR REPLACE VIEW gebiet_flur
 AS
-  SELECT f.gid, f.gemarkung, f.flurnummer, f.the_geom 
-    FROM pp_flur f
-    JOIN pp_gemarkung g ON f.gemarkung = g.gemarkung -- JOIN = Work-Arround weil gemeinde in "pp_flur" fehlt
-    WHERE g.gemeinde = '103'; -- Osann-Monzel
+  SELECT gid, gemarkung, flurnummer, the_geom 
+    FROM pp_flur 
+   WHERE gemeinde = '103'; -- Osann-Monzel
 COMMENT ON VIEW gebiet_flur  IS 'FlurflÃ€chen (vereinfachte Geometrie), gefiltert nach Gemeinde.';
 GRANT SELECT ON TABLE gebiet_flur TO ms6;
Index: trunk/import/pp_definition.sql
===================================================================
--- trunk/import/pp_definition.sql	(revision 349)
+++ trunk/import/pp_definition.sql	(revision 351)
@@ -22,5 +22,10 @@
 --             Wie im Schema: SchlÃŒssel von integer nach varchar fÃŒr land, regierungsbezirk usw.
 --  2014-10-28 letzte FÃ€lle von "substring(gml_id,1,16)" wieder raus
-
+--  2014-12-17 Spalte gemeinde in Tabelle pp_flur, dient der Filterung im WMS-Layer "Gebiete"
+
+/* Patch 2014-12-17:
+ ALTER TABLE pp_flur ADD COLUMN gemeinde character varying;
+ COMMENT ON COLUMN pp_flur.gemeinde IS 'Gemeindenummer';
+*/
 
 -- ============================
@@ -143,4 +148,5 @@
     regierungsbezirk   character varying,
     kreis              character varying,
+    gemeinde           character varying NOT NULL,
     gemarkung          character varying NOT NULL,
     flurnummer         integer NOT NULL,
@@ -162,4 +168,5 @@
 
 COMMENT ON TABLE  pp_flur                IS 'Post-Processing: Flur';
+COMMENT ON COLUMN pp_flur.gemeinde       IS 'Gemeindenummer';
 COMMENT ON COLUMN pp_flur.gemarkung      IS 'Gemarkungsnummer';
 COMMENT ON COLUMN pp_flur.the_geom       IS 'Geometrie aus Summe aller FlurstÃŒcke';
Index: trunk/import/pp_laden.sql
===================================================================
--- trunk/import/pp_laden.sql	(revision 349)
+++ trunk/import/pp_laden.sql	(revision 351)
@@ -23,4 +23,6 @@
 --  2014-09-19 Substring auf gml_id, Korrektur "endet IS NULL"
 --  2014-09-30 RÃŒckbau substring(gml_id)
+--  2014-12-17 Neue Spalte "gemeinde" in Tabelle "pp_flur", dient der Filterung im WMS-Layer "Gebiete"
+--  2015-01-08 Mehrfach-Versuche der Geometrie-Zusammenfassung mit wachsender PuffergrÃ¶Ãe.
 
 
@@ -32,4 +34,8 @@
 -- Die dynamische Aufbereitung ÃŒber Views und Functions wÃŒrde zu lange dauern und somit lange 
 -- Antwortzeiten in WMS, WFS, Buchauskunft oder Navigation (Suche) verursachen.
+
+-- Geometrie glÃ€tten und vereinfachen fÃŒr Flur, Gemarkung und Gemeinde:
+-- Die "simplen" Geometrien sollen nur fÃŒr die Darstellung einer Ãbersicht verwendet werden.
+-- Ablage der simplen Geometrie in einem alternativen Geometriefeld im gleichen Datensatz.
 
 -- Im Rahmen eines "Post-Processing" werden diese Daten nach jeder Konvertierung (NBA-Aktualisierung) 
@@ -232,19 +238,25 @@
 -- Geometrien der FlurstÃŒcke schrittweise zu groesseren Einheiten zusammen fassen
 -- ==============================================================================
-
--- Dies macht nur Sinn, wenn der Inhalt der Datenbank einen ganzen Katasterbezirk enthÃ€lt.
--- Wenn ein Gebiet durch geometrische Filter im NBA ausgegeben wurde, dann gibt es Randstreifen, 
--- die zu Pseudo-Fluren zusammen gefasst werden. Fachlich falsch!
+-- http://postgis.net/docs/manual-1.5/ST_Union.html (Aggregate version)
+-- http://postgis.net/docs/manual-1.5/ST_Collect.html
+
+-- Wenn ein Gebiet durch geometrische Filter im NBA-Verfahren ausgegeben wurde, dann gibt es 
+-- Randstreifen, die zu Pseudo-Fluren zusammen gefasst werden. 
+-- Diese werden fÃŒr den WMS durch einen View ausgefiltert, der nur eine Gemeinde darstellt.
 
 -- AusfÃŒhrungszeit: 1 mittlere Stadt mit ca. 14.000 FlurstÃŒcken > 100 Sek
 
 TRUNCATE pp_flur;
-INSERT INTO pp_flur (land, regierungsbezirk, kreis, gemarkung, flurnummer, anz_fs, the_geom )
-   SELECT  f.land, f.regierungsbezirk, f.kreis, f.gemarkungsnummer as gemarkung, f.flurnummer, 
+
+INSERT INTO pp_flur (land, regierungsbezirk, kreis, gemeinde, gemarkung, flurnummer, anz_fs, the_geom )
+   SELECT  f.land, f.regierungsbezirk, f.kreis, f.gemeinde, f.gemarkungsnummer as gemarkung, f.flurnummer, 
            count(gml_id) as anz_fs,
-           st_multi(st_union(st_buffer(f.wkb_geometry,0.06))) AS the_geom -- Zugabe um ZwischenrÃ€ume zu vermeiden
+           ST_Multi(st_union(st_buffer(f.wkb_geometry,0.06))) AS the_geom -- Zugabe um ZwischenrÃ€ume zu vermeiden
      FROM  ax_flurstueck f
      WHERE f.endet IS NULL AND NOT f.wkb_geometry IS NULL
-  GROUP BY f.land, f.regierungsbezirk, f.kreis, f.gemarkungsnummer, f.flurnummer;
+  GROUP BY f.land, f.regierungsbezirk, f.kreis, f.gemeinde, f.gemarkungsnummer, f.flurnummer;
+
+-- Vereinfachte Geometrie der Flur fÃŒr die Darstelung im WMS in einem kleinen MaÃstab
+UPDATE pp_flur      SET simple_geom = st_simplify(the_geom, 0.5);
 
 
@@ -255,11 +267,40 @@
 UPDATE pp_gemarkung a
   SET the_geom = 
-   ( SELECT st_multi(st_union(st_buffer(b.the_geom,0.12))) AS the_geom -- Puffer/Zugabe um LÃ¶cher zu vermeiden
+   ( SELECT ST_Multi(ST_Union(ST_Buffer(b.the_geom,0.15))) AS the_geom -- Puffer/Zugabe um LÃ¶cher zu vermeiden
        FROM pp_flur b
       WHERE a.land      = b.land 
         AND a.gemarkung = b.gemarkung
    );
-
--- Fluren zaehlen
+-- Hierbei kÃ¶nnen Exceptions auftreten wobei das Geometriefeld einzelner Gemarkungen leer bleibt.
+-- Die Ursache ist unklar.
+--  TopologyException: found non-noded intersection between LINESTRING
+
+-- Praktische LÃ¶sung:
+-- Bei den Gemarkungen, die nichts abbekommen haben, mit schrittweise groesserem Buffer noch mal versuchen.
+UPDATE pp_gemarkung a
+  SET the_geom = 
+   ( SELECT ST_Multi(ST_Union(ST_Buffer(b.the_geom,0.20))) AS the_geom -- Puffer vergroessert
+       FROM pp_flur b
+      WHERE a.land      = b.land 
+        AND a.gemarkung = b.gemarkung
+   ) WHERE the_geom IS NULL;
+
+UPDATE pp_gemarkung a
+  SET the_geom = 
+   ( SELECT ST_Multi(ST_Union(ST_Buffer(b.the_geom,0.30))) AS the_geom -- Puffer vergroessert
+       FROM pp_flur b
+      WHERE a.land      = b.land 
+        AND a.gemarkung = b.gemarkung
+   ) WHERE the_geom IS NULL;
+
+/* Guggst du (auf leeren Geometry-Typ achten:
+
+   SELECT gemarkungsname, geometrytype(the_geom) AS typ, 
+     st_isvalid(the_geom) AS vali, st_asewkt(the_geom) AS ewkt
+   FROM pp_gemarkung;
+
+*/
+
+-- Die Fluren in der Gemarkung zaehlen
 UPDATE pp_gemarkung a
   SET anz_flur = 
@@ -271,17 +312,47 @@
 
 
+-- Vereinfachte Geometrie der Gemarkung fÃŒr die Darstellung im WMS in einem kleinen MaÃstab
+-- Gemarkung (Wirkung siehe pp_gemarkung_analyse)
+UPDATE pp_gemarkung SET simple_geom = st_simplify(the_geom, 2.2); 
+
+
 -- Gemarkungen zu Gemeinden zusammen fassen
 -- ----------------------------------------
 
--- FlÃ€chen vereinigen (aus der bereits vereinfachten Geometrie)
-UPDATE pp_gemeinde a
-  SET the_geom = 
-   ( SELECT st_multi(st_union(st_buffer(b.the_geom,0.1))) AS the_geom -- noch mal Zugabe
+-- FlÃ€chen vereinigen
+UPDATE pp_gemeinde a
+  SET the_geom = 
+   ( SELECT st_multi(st_union(st_buffer(b.the_geom,0.2))) AS the_geom -- noch mal Zugabe
      FROM    pp_gemarkung b
      WHERE a.land     = b.land 
        AND a.gemeinde = b.gemeinde
    );
-
--- Gemarkungen zÃ€hlen
+-- Hierbei kÃ¶nnen Exceptions auftreten wobei das Geometriefeld einzelner Gemarkungen leer bleibt.
+-- Die Ursache ist unklar.
+
+-- Praktische LÃ¶sung:
+-- weitere Versuche mit mehr Puffer, wenn Exception auftrat
+UPDATE pp_gemeinde a
+  SET the_geom = 
+   ( SELECT st_multi(st_union(st_buffer(b.the_geom,0.3))) AS the_geom -- MEHR Zugabe
+     FROM    pp_gemarkung b
+     WHERE a.land     = b.land 
+       AND a.gemeinde = b.gemeinde
+   ) WHERE the_geom IS NULL;
+
+UPDATE pp_gemeinde a
+  SET the_geom = 
+   ( SELECT st_multi(st_union(st_buffer(b.the_geom,0.4))) AS the_geom -- noch MEHR Zugabe
+     FROM    pp_gemarkung b
+     WHERE a.land     = b.land 
+       AND a.gemeinde = b.gemeinde
+   ) WHERE the_geom IS NULL;
+
+
+-- Vereinfachte Geometrie der Gemeinde fÃŒr die Darstellung im WMS in einem kleinen MaÃstab
+-- Gemeinde (Wirkung siehe pp_gemeinde_analyse)
+UPDATE pp_gemeinde  SET simple_geom = st_simplify(the_geom, 5.0); 
+
+-- Gemarkungen in der Gemeinde zÃ€hlen
 UPDATE pp_gemeinde a
   SET anz_gemarkg = 
@@ -291,15 +362,4 @@
        AND a.gemeinde = b.gemeinde
    );
-
-
--- Geometrie glÃ€tten und vereinfachen.
--- Diese "simplen" Geometrien sollen nur fÃŒr die Darstellung einer Ãbersicht verwendet werden.
--- Ablage der simplen Geometrie in einem alternativen Geometriefeld im gleichen Datensatz.
-
-UPDATE pp_flur      SET simple_geom = st_simplify(the_geom, 0.5); -- Flur 
-
-UPDATE pp_gemarkung SET simple_geom = st_simplify(the_geom, 2.2); -- Gemarkung (Wirkung siehe pp_gemarkung_analyse)
-
-UPDATE pp_gemeinde  SET simple_geom = st_simplify(the_geom, 5.0); -- Gemeinde (Wirkung siehe pp_gemeinde_analyse)
 
 
