
-- ALKIS PostNAS 0.8

-- ======================================================
-- Zusammenfassung der Tabellen der tatsächlichen Nutzung
-- ======================================================

-- Um bei einer Feature.Info (Welche Nutzung an dieser Stelle?) 
-- oder einer Verschneidung (Welche Nutzungen auf dem Flurstück?) 
-- nicht 26 verschiedene Tabellen abfragen zu müssen, werden die wichtigsten 
-- Felder dieser Tabellen zusammen gefasst.

-- Teil 1: Anlegen der Tabellen
-- Variable für das Koordinatensystem übergeben mit "psql .. -v alkis_epsg=":alkis_epsg"

-- Stand 

--  2012-02-10 PostNAS 0.7, Umbenennung
--  2013-11-15 In nutzung_class.class können NULL-Werte auftreten.
--  2013-11-26 NULL wird durch Zahl "0" ersetzt, "NOT NULL" wieder aktivieren
--  2014-08-26 erweiterte gml_id (wie in den primären Tabellen)
--  2014-11-25 Version geaendert auf 0.8, EPSG Übergabe in Tabelle Nutzung
--  2015-03-10 Massenhaft "ST_CurvePolygon" in "nutzung".
--             Quick 'n dirty: Einschränkung des geometry-Typ löschen.


SET client_encoding = 'UTF-8';

-- Alles auf Anfang!
/*
  DROP TABLE nutzung;
  DROP TABLE nutzung_class;
  DROP TABLE nutzung_meta;
*/

-- Meta-Informationen ueber die Zusammenfassung und Gruppierung
-- ------------------------------------------------------------
CREATE TABLE nutzung_meta (
	nutz_id           integer NOT NULL,
	gruppe            character varying(30),
	source_table      character varying(50),
	title             character varying(50),
	fldclass          character varying(30),
	fldinfo           character varying(30),
	CONSTRAINT nutzung_meta_pk PRIMARY KEY (nutz_id)
);

COMMENT ON TABLE  nutzung_meta                IS 'Gruppierung und Indizierung der zusammen gefassten Nutzungsarten in der Tabelle "nutzung".';
COMMENT ON COLUMN nutzung_meta.nutz_id        IS 'Index fuer die Quell-Tabelle bei der Zusammenfassung in der Tabelle "nutzung".';
COMMENT ON COLUMN nutzung_meta.source_table   IS 'Name der importierten Tabelle aus PostNAS.';
COMMENT ON COLUMN nutzung_meta.gruppe         IS 'Objektartengruppe, Gruppierung der Nutzungsart.';
COMMENT ON COLUMN nutzung_meta.title          IS 'Vorzeigbare Bezeichnung der Nutzungsartentabelle.';
COMMENT ON COLUMN nutzung_meta.fldclass       IS 'Name des Feldes aus "source_table", das in Feld "nutzung.class" kopiert wird.';
COMMENT ON COLUMN nutzung_meta.fldinfo        IS 'Name des Feldes aus "source_table", das in Feld "nutzung.info" kopiert wird.';


-- Alle Abschnitte der "tatsächlichen Nutzung" vereinigt in einer Tabelle 
-- Sie sind dann mit einem gemeinsamen Geometrie-Index mit einer SQL-Abfrage auffindbar.
-- Dies ist die förderlich für eine performante Auskunft.

CREATE TABLE nutzung (
	gml_id		     character varying NOT NULL,
	beginnt		     character(20),	     -- mehrfache gml_id eindeutig machen
--   endet               character(20),      -- nur "ended IS NULL" kopieren
	nutz_id		     integer,
	class		     integer NOT NULL,   -- NULL-Werte der Quelltabelle durch den num. Wert 0 ersetzen
	info		          integer,
	zustand		     integer,
	"name"		     character varying,
	bezeichnung	     character varying,
	CONSTRAINT nutzung_pk      PRIMARY KEY (gml_id, beginnt),
	CONSTRAINT nutzung_meta_id FOREIGN KEY (nutz_id)
		REFERENCES nutzung_meta (nutz_id) MATCH SIMPLE
		ON UPDATE NO ACTION ON DELETE CASCADE
)
WITH (OIDS=FALSE);


SELECT AddGeometryColumn('nutzung','wkb_geometry',:alkis_epsg,'POLYGON',2);
-- Vereinzelt auch vorkommende MULTIPOLYGON
-- 2015-03-10: Massenhaft "ST_CurvePolygon"
--ALTER TABLE nutzung DROP CONSTRAINT enforce_geotype_wkb_geometry;
-- 2015-03-16 diese wieder rückgängig, statt dessen Parameter beim Konverter-Aufruf.

-- 'class' ist nur innerhalb einer Gruppe ein sinvoller Index
CREATE INDEX idx_nutz_cls  ON nutzung USING btree (nutz_id, class);

-- Geometrischer Index für die räumliche Suche
CREATE INDEX nutzung_geom_idx ON nutzung USING gist (wkb_geometry);

COMMENT ON TABLE  nutzung             IS 'Zusammenfassung von 26 Tabellen des Objektbereiches "Tatsächliche Nutzung".';
COMMENT ON COLUMN nutzung.gml_id      IS 'Identifikator, global eindeutig';
COMMENT ON COLUMN nutzung.nutz_id     IS 'Index fuer die Quell-Tabelle bei der Zusammenfassung in der Tabelle "nutzung".';
COMMENT ON COLUMN nutzung.class       IS 'Klassifizierung innerhalb der Nutzung. Aus verschiedenen Feldern importiert. Siehe "nutzung_meta.fldclass".';
COMMENT ON COLUMN nutzung.info        IS 'Weitere verschlüsselte Information zur Nutzung. Aus verschiedenen Feldern importiert. Siehe "nutzung_meta.fldinfo".';
COMMENT ON COLUMN nutzung.name        IS 'NAM Eigenname';
COMMENT ON COLUMN nutzung.bezeichnung IS 'weitere unverschlüsselte Information wie Zweitname, Bezeichnung, fachliche Nummerierung usw.';
COMMENT ON COLUMN nutzung.zustand     IS 'ZUS "Zustand" beschreibt, ob der Abschnitt ungenutzt ist.';


-- Schluesseltabelle: classes innerhalb einer Nutzungsart.
-- Wird nicht aus NAS geladen sondern durch das manuell zu pflegende Script "nutzungsart_metadaten.sql"
CREATE TABLE nutzung_class (
	nutz_id       integer NOT NULL,
	class         integer, --  NOT NULL,
	label         character varying(100),
	blabla        character varying(1000),
    CONSTRAINT nutzung_class_pk PRIMARY KEY (nutz_id, class),
	CONSTRAINT nutzung_class_id FOREIGN KEY (nutz_id)
		REFERENCES nutzung_meta (nutz_id) MATCH SIMPLE
		ON UPDATE NO ACTION ON DELETE CASCADE
);

  COMMENT ON TABLE  nutzung_class            IS 'Schlüsseltabelle. Feinere Klassifizierung der zusammen gefassten Nutzungsarten.';
  COMMENT ON COLUMN nutzung_class.nutz_id    IS 'Index fuer die Quell-Tabelle bei der Zusammenfassung in der Tabelle nutzung.';
  COMMENT ON COLUMN nutzung_class.class      IS 'Key, Schlüsselwert oder NULL';
  COMMENT ON COLUMN nutzung_class.label      IS 'Entschlüsselung. Art der Nutzung, Dies Feld soll in der Auskunft angezeigt werden.';
  COMMENT ON COLUMN nutzung_class.blabla     IS 'Weitere Erläuterungen und Definitionen dazu.';


-- Fehlersuche nach GDAL Patch #5444:
-- Da nun gml_id nicht mehr PRIMARY KEY der Ausgangstabellen ist , kommt es auch zu Doppelbelegungen der Zusammenfassung.
-- Diese Fälle suchen.
CREATE OR REPLACE VIEW nutzung_mehrfache_gml AS
	SELECT a.gml_id, a.nutz_id, a.beginnt as beginnt1, b.beginnt as beginnt2
	FROM nutzung a 
	JOIN nutzung b ON a.gml_id = b.gml_id
	WHERE a.beginnt < b.beginnt
	--LIMIT 100
	;

-- Vorkommende Geometry-Typen

--  SELECT a.gml_id, st_geometrytype(a.wkb_geometry) as geomtype ,a.artderbebauung, a.zustand, a.name, a.beginnt
--  FROM ax_wohnbauflaeche a WHERE geometrytype(wkb_geometry) <> 'POLYGON';

--  SELECT a.gml_id, st_geometrytype(a.wkb_geometry) as geomtype ,a.artderbebauung, a.zustand, a.name, a.beginnt
--  FROM ax_wohnbauflaeche a WHERE geometrytype(wkb_geometry) <> 'POLYGON';

-- Ergebnis:    Ein MULTIPOLYGON
-- Konsequenz:  nur Polygone kopieren.

-- END --



-- ALKIS PostNAS 0.7

-- ======================================================
-- Zusammenfassung der Tabellen der tatsächlichen Nutzung
-- ======================================================

-- Um bei einer Feature.Info (Welche Nutzung an dieser Stelle?) 
-- oder einer Verschneidung (Welche Nutzungen auf dem Flurstück?) 
-- nicht 26 verschiedene Tabellen abfragen zu müssen, werden die wichtigsten 
-- Felder dieser Tabellen zusammen gefasst.

-- Teil 2: Laden der statischen Tabellen mit Metadaten und Schlüsseln (Classes)

-- Stand 

--  2012-02-10 PostNAS 07, Umbenennung
--  2013-11-18 Auch jeweils einen 0-Wert in "nutzung_class.class" laden für die Fälle wo die Quelltabelle ein "IS NULL" enthält.
--             Weitere Werte erfasst.

-- WARNUNG:  Wenn in der Praxis weitere Schlüssel vorkommen, die in dieser Tabelle "nutzung_class" noch nicht 
--           vorkommen, dann kann das bei Equivalenz-Abfragen (INNER JOIN) dazu führen, dass die 
--           Nutzungsarten-Abschnitte mit den hier fehlenden Schlüsseln ausgelassen werden.
-- Lösung: - Bei SQL-Abfragen diese Tabelle mit "LEFT JOIN" verknüpfen.
--         - Im PostProcessing (pp_) diese Tabelle durch vorkommende Schlüssel aus der der Tabelle "nutzung" ergänzen.


-- DoDo: Sollte die Durchnummerierung der Gruppen (Spalte "nutz_id") ersetzt werden durch
--       den Wert "Kennung" aus der GeoInfoDok?
--  http://www.bezreg-koeln.nrw.de/extra/33alkis/dokumente/GeoInfoDok/ALKIS/ALKIS_OK_V6-0.html#_3DFA354A0193

-- Objektartengruppe:Siedlung

-- nutz_id Kennung Name

-- 1       41001 'Wohnbaufläche'
-- 2       41002 'Industrie- und Gewerbefläche'
-- 3       41003 'Halde'
-- 4       41004 'Bergbaubetrieb'
-- 5       41005 'Tagebau, Grube, Steinbruch'
-- 6       41006 'Fläche gemischter Nutzung'
-- 7       41007 'Fläche besonderer funktionaler Prägung'
-- 8       41008 'Sport-, Freizeit- und Erholungsfläche'
-- 9       41009 'Friedhof'
-- ?       41010 'Siedlungsfläche'

-- Objektartengruppe:Verkehr

-- 10      42001 'Straßenverkehr'
-- ?       42002 'Straße'
-- ?       42003 'Straßenachse'
-- ?       42005 'Fahrbahnachse'
-- 11      42006 'Weg'
-- ?       42008 'Fahrwegachse'
-- 12      42009 'Platz'
-- 13      42010 'Bahnverkehr'
-- ?       42014 'Bahnstrecke'
-- 14      42015 'Flugverkehr'
-- 15      42016 'Schiffsverkehr'

-- Objektartengruppe:Vegetation

-- 16      43001 'Landwirtschaft'
-- 17      43002 'Wald'
-- 18      43003 'Gehölz'
-- 19      43004 'Heide'
-- 20      43005 'Moor'
-- 21      43006 'Sumpf'
-- 22      43007 'Unland/Vegetationslose Fläche'
-- ?       43008 'Fläche zur Zeit unbestimmbar'

-- Objektartengruppe:Gewässer

-- 24      44001 'Fließgewässer'
-- ?       44002 'Wasserlauf'
-- ?       44003 'Kanal'
-- ?       44004 'Gewässerachse'
-- 25      44005 'Hafenbecken'
-- 26      44006 'Stehendes Gewässer'
-- 27      44007 'Meer'

SET client_encoding = 'UTF-8';


-- Tabellen  l e e r e n 
DELETE FROM nutzung_meta;
DELETE FROM nutzung_class;


-- Über die Tabelle "nutzung_meta" wird dokumentiert, welche Felder der Ursprungstabellen 
-- in die Zielfelder "class" und "info" der zusammen gefassten Tabelle "nutzung" geladen werden,


-- ****  Objektbereich: Tatsächliche Nutzung  ****

-- ** Objektartengruppe: Siedlung **

-- 01 REO: ax_Wohnbauflaeche

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (1, 'Siedlung','ax_wohnbauflaeche','Wohnbaufläche', 'Art der Bebauung', null);

-- Classes (ArtDerBebauung):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (1,    0, '');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (1, 1000, 'Offen',       '"Offen" beschreibt die Bebauung von "Wohnbaufläche", die vorwiegend durch einzelstehende Gebäude charakterisiert wird.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (1, 2000, 'Geschlossen', '"Geschlossen" beschreibt die Bebauung von "Wohnbaufläche", die vorwiegend durch zusammenhängende Gebäude charakterisiert wird. Die Gebäudeabdeckung ist in der Regel >50 Prozent der Wohnbaufläche.');


-- Zustand: 2 Werte
-- 2100,'Außer Betrieb, stillgelegt, verlassen', '"Außer Betrieb, stillgelegt; verlassen" bedeutet, dass sich die Fläche nicht mehr in regelmäßiger, der Bestimmung entsprechenden Nutzung befindet.');
-- 8000,'Erweiterung, Neuansiedlung'


-- 02 REO: ax_IndustrieUndGewerbeflaeche
-- -------------------------------------
-- Metadaten
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (2, 'Siedlung','ax_industrieundgewerbeflaeche','Industrie- und Gewerbefläche', 'Funktion', null);

-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 1700,'Industrie und Gewerbe', '"Industrie und Gewerbe" bezeichnet Flächen, auf denen vorwiegend Industrie- und Gewerbebetriebe vorhanden sind. Darin sind Gebäude- und Freiflächen und die Betriebsläche Lagerplatz enthalten.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1710,'Produktion');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1720,'Handwerk');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1730,'Tankstelle');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 1740,'Lagerplatz', '"Lagerplatz" bezeichnet Flächen, auf denen inner- und außerhalb von Gebäuden wirtschaftliche Güter gelagert werden.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1750,'Transport');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1760,'Forschung');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1770,'Grundstoff');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1780,'Betriebliche Sozialeinrichtung');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1790,'Werft');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 1400,'Handel und Dienstleistung', '"Handel und Dienstleistung" bezeichnet eine Fläche, auf der vorwiegend Gebäude stehen, in denen Handels- und/oder Dienstleistungsbetriebe ansässig sind.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1410,'Verwaltung, freie Berufe');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1420,'Bank, Kredit');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1430,'Versicherung');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1440,'Handel');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 1450,'Ausstellung, Messe', '"Ausstellung, Messe" bezeichnet eine Fläche mit Ausstellungshallen und sonstigen Einrichtungen zur Präsentation von Warenmustern.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1460,'Beherbergung');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1470,'Restauration');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 1480,'Vergnügung');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 1490,'Gärtnerei', '"Gärtnerei" bezeichnet eine Fläche mit Gebäuden, Gewächshäusern und sonstigen Einrichtungen, zur Aufzucht von Blumen und Gemüsepflanzen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2500,'Versorgungsanlage', '"Versorgungsanlage" bezeichnet eine Fläche, auf der vorwiegend Anlagen und Gebäude zur Versorgung der Allgemeinheit mit Elektrizität, Wärme und Wasser vorhanden sind.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2501,'Gebäude- und Freifläche Versorgungsanlage');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2502,'Betriebsfläche Versorgungsanlage');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2510,'Förderanlage', '"Förderanlage" bezeichnet eine Fläche mit Einrichtungen zur Förderung von Erdöl, Erdgas, Sole, Kohlensäure oder Erdwärme aus dem Erdinneren.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2520,'Wasserwerk', '"Wasserwerk" bezeichnet eine Fläche mit Bauwerken und sonstigen Einrichtungen zur Gewinnung und/ oder zur Aufbereitung von (Trink-)wasser.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2521,'Gebäude- und Freifläche Versorgungsanlage, Wasser');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2522,'Betriebsfläche Versorgungsanlage, Wasser');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2530,'Kraftwerk', '"Kraftwerk" bezeichnet eine Fläche mit Bauwerken und sonstigen Einrichtungen zur Erzeugung von elektrischer Energie.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2531,'Gebäude- und Freifläche Versorgungsanlage, Elektrizität');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2532,'Betriebsfläche Versorgungsanlage, Elektrizität');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2540,'Umspannstation', '"Umspannstation" bezeichnet eine Fläche mit Gebäuden und sonstigen Einrichtungen, um Strom auf eine andere Spannungsebene zu transformieren.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2550,'Raffinerie', '"Raffinerie" bezeichnet eine Fläche mit Bauwerken und sonstigen Einrichtungen zur Aufbereitung von Erdöl.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2551,'Gebäude- und Freifläche Versorgungsanlage, Öl');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2552,'Betriebsfläche Versorganlage, Öl');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2560,'Gaswerk');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2561,'Gebäude- und Freifläche Versorgungsanlage, Gas');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2562,'Betriebsfläche Versorgungsanlage, Gas');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2570,'Heizwerk', '"Heizwerk" bezeichnet eine Fläche mit Bauwerken und sonstigen Einrichtungen zur Erzeugung von Wärmeenergie zu Heizzwecken.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2571,'Gebäude- und Freifläche Versorgungsanlage, Wärme');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2572,'Betriebsfläche Versorgungsanlage, Wärme');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2580,'Funk- und Fernmeldeanlage', '"Funk- und Fernmeldeanlage" bezeichnet eine Fläche, auf der vorwiegend Anlagen und Gebäude zur elektronischen Informationenvermittlung stehen.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2581,'Gebäude- und Freifläche Versorgungsanlage, Funk- und Fernmeldewesen');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2582,'Betriebsfläche Versorgungsanlage, Funk- und Fernmeldewesen');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2600,'Entsorgung', '"Entsorgung" bezeichnet eine Fläche, auf der vorwiegend Anlagen und Gebäude zur Verwertung und Entsorgung von Abwasser und festen Abfallstoffen vorhanden sind.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2601,'Gebäude- und Freifläche Entsorgungsanlage');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2602,'Betriebsfläche Entsorgungsanlage');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2610,'Kläranlage, Klärwerk', '"Kläranlage, Klärwerk" bezeichnet eine Fläche mit Bauwerken und sonstigen Einrichtungen zur Reinigung von Abwasser.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2611,'Gebäude- und Freifläche Entsorgungsanlage, Abwasserbeseitigung');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2612,'Betriebsfläche Entsorgungsanlage, Abwasserbeseitigung');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2620,'Abfallbehandlungsanlage', '"Abfallbehandlungsanlage" bezeichnet eine Fläche mit Bauwerken und sonstigen Einrichtungen, auf der Abfälle mit chemisch/physikalischen und biologischen oder thermischen Verfahren oder Kombinationen dieser Verfahren behandelt werden.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2621,'Gebäude- und Freifläche Entsorgungsanlage, Abfallbeseitigung');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2622,'Betriebsfläche Entsorgungsanlage, Abfallbeseitigung');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, 2623,'Betriebsfläche Entsorgungsanlage, Schlamm');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2630,'Deponie (oberirdisch)', '"Deponie (oberirdisch)" bezeichnet eine Fläche, auf der oberirdisch Abfallstoffe gelagert werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, 2640,'Deponie (untertägig)', '"Deponie (untertägig)" bezeichnet eine oberirdische Betriebsfläche, unter der Abfallstoffe eingelagert werden (Untertagedeponie).');


-- MUSTER:
--INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (2, __,'__');
--INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (2, __,'__', '____');


-- Zustand als 2. Feld?

--*Fördergut:
-- 1000 Erdöl        'Erdöl' ist ein flüssiges und brennbares Kohlenwasserstoffgemisch, das gefördert wird.
-- 2000 Erdgas       'Erdgas' ist ein in der Erdkruste vorkommendes brennbares Naturgas, das gefördert wird.
-- 3000 Sole, Lauge  'Sole, Lauge' ist ein kochsalzhaltiges Wasser, das gefördert wird.
-- 4000 Kohlensäure  'Kohlensäure' ist eine schwache Säure, die durch Lösung von Kohlendioxid in Wasser entsteht und gefördert wird.
-- 5000 Erdwärme     'Erdwärme' ist eine auf natürlichem Wege sich erneuernde Wärmeenergie, die aus einer geothermisch geringen Tiefenstufe der Erdkruste gefördert wird.

--*Lagergut:
-- 7000 Abraum
-- 1000 Baustoffe
-- 4000 Erde
-- 2000 Kohle
-- 3000 Öl
-- 6000 Schlacke
-- 8000 Schrott, Altmaterial

--*Primärenergie:
-- 1000 Wasser    --'Wasser' bedeutet, dass das Kraftwerk potentielle und kinetische Energie des Wasserkreislaufs in elektrische Energie umwandelt.
-- 2000 Kernkraft --'Kernkraft' bedeutet, dass das Kraftwerk die durch Kernspaltung gewonnene Energie in eine andere Energieform umwandelt.
-- 3000 Sonne     --'Sonne' bedeutet, dass das Kraftwerk bzw. Heizwerk Sonnenenergie in eine andere Energieform umwandelt.
-- 4000 Wind      --'Wind' bedeutet, dass das Kraftwerk die Strömungsenergie des Windes in elektrische Energie umwandelt.
-- 5000 Gezeiten  --'Gezeiten' bedeutet, dass das Kraftwerk die kinetische Energie der Meeresgezeiten in elektrische Energie umwandelt.
-- 6000 Erdwärme  --'Erdwärme' bedeutet, dass das Heizwerk die geothermische Energie der Erde nutzt.
-- 7000 Verbrennung --'Verbrennung' bedeutet, dass das Kraftwerk bzw. Heizwerk die durch Verbrennung freiwerdende Energie in eine andere Energieform umwandelt.
-- 7100 Kohle     --'Kohle' bedeutet, dass das Kraftwerk bzw. Heizwerk die durch Verbrennung von Kohle freiwerdende Energie in eine andere Energieform umwandelt.
-- 7200 Öl        --'Öl' bedeutet, dass das Kraftwerk bzw. Heizwerk die durch Verbrennung von Öl freiwerdende Energie in eine andere Energieform umwandelt.
-- 7300 Gas       --'Gas' bedeutet, dass das Kraftwerk bzw. Heizwerk die durch Verbrennung von Gas freiwerdende Energie in eine andere Energieform umwandelt.
-- 7400 Müll, Abfall --'Müll, Abfall' bedeutet, dass das Kraftwerk bzw. Heizwerk die durch Verbrennung von Müll bzw. Abfall freiwerdende Energie in eine andere Energieform umwandelt.


-- 03 REO: ax_Halde
-- -------------------------------------
-- 'Halde' ist eine Fläche, auf der Material langfristig gelagert wird und beschreibt die auch im Relief 
-- zu modellierende tatsächliche Aufschüttung. 
-- Aufgeforstete Abraumhalden werden als Objekte der Objektart 'Wald' erfasst.

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (3, 'Siedlung','ax_halde','Halde', 'Lagergut', null);

-- Classes (Lagergut):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (3,    0,'');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (3, 1000,'Baustoffe');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (3, 2000,'Kohle');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (3, 4000,'Erde');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (3, 5000,'Schutt');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (3, 6000,'Schlacke');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (3, 7000,'Abraum');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (3, 8000,'Schrott, Altmaterial');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (3, 9999,'Sonstiges');

-- Zustand: 2 Werte


-- 04 ax_Bergbaubetrieb
-- -------------------------------------
-- 'Bergbaubetrieb' ist eine Fläche, die für die Förderung des Abbaugutes unter Tage genutzt wird.

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (4, 'Siedlung','ax_bergbaubetrieb','Bergbaubetrieb', 'Abbaugut', null);

-- Classes (Abbaugut):
-- 'Abbaugut' gibt an, welches Material abgebaut wird.
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (4,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 1000,'Erden, Lockergestein', '"Erden, Lockergestein" bedeutet, dass feinkörnige Gesteine abgebaut werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 1001,'Ton', '"Ton" ist ein Abbaugut, das aus gelblichem bis grauem Lockergestein besteht und durch Verwitterung älterer Gesteine entsteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 1007,'Kalk, Kalktuff, Kreide', '"Kalk, Kalktuff, Kreide" ist ein Abbaugut, das aus erdigem weißen Kalkstein besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 2000,'Steine, Gestein, Festgestein', '"Steine, Gestein, Festgestein" bedeutet, dass grobkörnige oder feste Gesteine abgebaut werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 2002,'Schiefer, Dachschiefer', '"Schiefer, Dachschiefer" ist ein toniges Abbaugut, das in dünne ebene Platten spaltbar ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 2003,'Metamorpher Schiefer', '"Metamorpher Schiefer" ist ein Abbaugut, dessen ursprüngliche Zusammensetzung und Struktur durch Wärme und Druck innerhalb der Erdkruste verändert worden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 2005,'Kalkstein', '"Kalkstein" ist ein Abbaugut, das als weit verbreitetes Sedimentgestein überwiegend aus Calciumcarbonat besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 2006,'Dolomitstein', '"Dolomitstein" ist ein Abbaugut, das überwiegend aus calcium- und magnesiumhaltigen Mineralien besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 2013,'Basalt, Diabas', '"Basalt, Diabas" ist ein Abbaugut, das aus basischem Ergussgestein besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 2021,'Talkschiefer, Speckstein', '"Talkschiefer, Speckstein" ist ein farbloses bis graugrünes, sich fettig anfühlendes Abbaugut, das aus dem weichen Mineral Talk besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3000,'Erze', '"Erze" bedeutet, dass die in der Natur vorkommenden, metallhaltigen Mineralien und Mineralgemische abgebaut oder gespeichert werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3001,'Eisen', '"Eisen" wird als Eisenerz abgebaut und durch Verhüttung gewonnen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3002,'Buntmetallerze', '"Buntmetallerze" ist das Abbaugut, das alle Nichteisenmetallerze als Sammelbegriff umfasst.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3003,'Kupfer', '"Kupfer" wird als Kupfererz abgebaut und durch Verhüttung gewonnen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3004,'Blei', '"Blei" wird als Bleierz abgebaut und durch spezielle Verfahren gewonnen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3005,'Zink', '"Zink" wird als Zinkerz abgebaut und durch spezielle Verfahren gewonnen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3006,'Zinn', '"Zinn" wird als Zinnerz abgebaut und durch spezielle Verfahren gewonnen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3007,'Wismut, Kobalt, Nickel', '"Wismut, Kobalt, Nickel" werden als Erze abgebaut und durch spezielle Verfahren gewonnen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3008,'Uran', '"Uran" wird als Uranerz abgebaut und durch spezielle Verfahren gewonnen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3009,'Mangan', '"Mangan" wird als Manganerz abgebaut und durch spezielle Verfahren gewonnen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3010,'Antimon', '"Antimon" wird als Antimonerz abgebaut und durch spezielle Verfahren gewonnen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 3011,'Edelmetallerze', '"Edelmetallerze" ist das Abbaugut, aus dem Edelmetalle (z. B. Gold, Silber) gewonnen werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 4000,'Treib- und Brennstoffe', '"Treib- und Brennstoffe" bedeutet, dass die in der Natur vorkommenden brennbaren organischen und anorganischen Substanzen abgebaut oder gewonnen werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 4020,'Kohle', '"Kohle" ist ein Abbaugut, das durch Inkohlung (Umwandlungsprozess pflanzlicher Substanzen) entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 4021,'Braunkohle', '"Braunkohle" ist ein Abbaugut, das durch einen bestimmten Grad von Inkohlung (Umwandlungsprozess pflanzlicher Substanzen) entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 4022,'Steinkohle', '"Steinkohle" ist ein Abbaugut, das durch vollständige Inkohlung (Umwandlungsprozess pflanzlicher Substanzen) entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 4030,'Ölschiefer', '"Ölschiefer" ist ein Abbaugut, das aus dunklem, bitumenhaltigem, tonigem Gestein besteht');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 5000,'Industrieminerale, Salze ', '"Industrieminerale, Salze" bedeutet, dass die in der Natur vorkommenden Mineralien abgebaut werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 5001,'Gipsstein', '"Gipsstein" ist ein natürliches Abbaugut.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 5002,'Anhydritstein', '"Anhydritstein" ist ein Abbaugut, das aus wasserfreiem Gips besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 5003,'Steinsalz', '"Steinsalz" ist ein Abbaugut, das aus Salzstöcken gewonnen wird und aus Natriumchlorid besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 5004,'Kalisalz', '"Kalisalz" ist ein Abbaugut, das aus Salzstöcken gewonnen wird und aus Chloriden und Sulfaten besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 5005,'Kalkspat', '"Kalkspat" ist ein weißes oder hell gefärbtes Abbaugut (Calciumcarbonat).');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 5006,'Flussspat', '"Flussspat" ist ein Abbaugut, das aus Calciumfluorid besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 5007,'Schwerspat', '"Schwerspat" ist ein formenreiches, rhombisches weißes bis farbiges Abbaugut.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (4, 5011,'Graphit', '"Graphit" ist ein bleigraues, weiches, metallglänzendes Abbaugut, das aus fast reinem Kohlenstoff besteht.');

-- Zustand: 2 Werte


-- 05 REO: ax_TagebauGrubeSteinbruch
-- -------------------------------------
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo) 
VALUES (5, 'Siedlung','ax_tagebaugrubesteinbruch','Tagebau, Grube, Steinbruch', 'Abbaugut', null);

-- Classes (Abbaugut):                                                          Ton Steine Scherben
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (5,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1000,'Erden, Lockergestein', '"Erden, Lockergestein" bedeutet, dass feinkörnige Gesteine abgebaut werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1001,'Ton',         '"Ton" ist ein Abbaugut, das aus gelblichem bis grauem Lockergestein besteht und durch Verwitterung älterer Gesteine entsteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1002,'Bentonit',    '"Bentonit" ist ein tonartiges Abbaugut, das durch Verwitterung vulkanischer Asche (Tuffe) entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1003,'Kaolin',      '"Kaolin" ist ein Abbaugut, das aus weißem, erdigem Gestein, fast reinem Aluminiumsilikat (kieselsaure Tonerde) besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1004,'Lehm',        '"Lehm" ist ein Abbaugut, das durch Verwitterung entstanden ist und aus gelb bis braun gefärbtem sandhaltigem Ton besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1005,'Löß, Lößlehm', '"Löß, Lößlehm" ist ein Abbaugut das aus feinsten gelblichen Sedimenten besteht und eine hohe Wasserspeicherfähigkeit aufweist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1006,'Mergel',      '"Mergel" ist ein Abbaugut das aus kalk- und tonartigem Sedimentgestein besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1007,'Kalk, Kalktuff, Kreide', '"Kalk, Kalktuff, Kreide" ist ein Abbaugut, das aus erdigem weißen Kalkstein besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1008,'Sand',        '"Sand" ist ein Abbaugut, das aus kleinen, losen Mineralkörnern (häufig Quarz) besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1009,'Kies, Kiessand', '"Kies, Kiessand" ist ein Abbaugut, das aus vom Wasser rund geschliffenen Gesteinsbrocken besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1011,'Farberden',    '"Farberden" ist ein Abbaugut, das durch Verwitterung entstanden ist und vorrangig aus eisenhaltigem Gestein besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1012,'Quarzsand',    '"Quarzsand" ist ein Abbaugut, das vorwiegend aus kleinen, losen Quarzkörnern besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 1013,'Kieselerde',   '"Kieselerde" ist ein Abbaugut, das durch tertiäre Binnenseeablagerungen aus Kieselschalen toter Kieselalgen entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2000,'Steine, Gestein, Festgestein', '"Steine, Gestein, Festgestein" bedeutet, dass grobkörnige oder feste Gesteine abgebaut werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2001,'Tonstein',     '"Tonstein" ist ein gelblich bis graues Abbaugut, das überwiegend aus Tonmineralien besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2002,'Schiefer, Dachschiefer', '"Schiefer, Dachschiefer" ist ein toniges Abbaugut, das in dünne ebene Platten spaltbar ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2003,'Metamorpher Schiefer', '"Metamorpher Schiefer" ist ein Abbaugut, dessen ursprüngliche Zusammensetzung und Struktur durch Wärme und Druck innerhalb der Erdkruste verändert worden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2004,'Mergelstein',  '"Mergelstein" ist ein Abbaugut, das sich größtenteils aus Ton und Kalk zusammensetzt.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2005,'Kalkstein',    '"Kalkstein" ist ein Abbaugut, das als weit verbreitetes Sedimentgestein überwiegend aus Calciumcarbonat besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2006,'Dolomitstein', '"Dolomitstein" ist ein Abbaugut, das überwiegend aus calcium- und magnesiumhaltigen Mineralien besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2007,'Travertin',    '"Travertin" ist ein Abbaugut, das aus gelblichen Kiesel- oder Kalktuffen besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2008,'Marmor',       '"Marmor" ist ein Abbaugut, das als rein weißer kristalliner, körniger Kalkstein (Calciumcarbonat) vorkommt.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2009,'Sandstein',    '"Sandstein" ist ein Abbaugut, das aus verfestigtem Sedimentgestein besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2010,'Grauwacke',    '"Grauwacke" ist ein Abbaugut, das aus tonhaltigem Sandstein besteht und mit Gesteinsbruchstücken angereichert sein kann.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2011,'Quarzit',      '"Quarzit" ist ein sehr hartes metamorphes Abbaugut, das vorwiegend aus feinkörnigen Quarzmineralien besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2012,'Gneis',        '"Gneis" ist ein metamorphes Abbaugut mit Schieferung, das aus Feldspat, Quarz und Glimmer besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2013,'Basalt, Diabas', '"Basalt, Diabas" ist ein Abbaugut, das aus basischem Ergussgestein besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2014,'Andesit',      '"Andesit" ist ein Abbaugut, das aus Ergussgestein besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2015,'Porphyr, Quarzporphyr', '"Porphyr, Quarzporphyr" ist ein eruptiv entstandenes Abbaugut, das aus einer dichten Grundmasse und groben Einsprenglingen besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2016,'Granit',        '"Granit" ist ein eruptiv entstandenes Abbaugut, das aus körnigem Feldspat, Quarz, Glimmer besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2017,'Granodiorit',   '"Granodiorit" ist ein hell- bis dunkelgraues Abbaugut. Es ist ein mittelkörniges Tiefengestein mit den Hauptbestandteilen Feldspat, Quarz, Hornblende und Biotit.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2018,'Tuff-, Bimsstein', '"Tuff-, Bimsstein" ist ein helles, sehr poröses Abbaugut, das durch rasches Erstarren der Lava entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2019,'Trass',        '"Trass" ist ein Abbaugut, das aus vulkanischem Aschentuff (Bimsstein) besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2020,'Lavaschlacke',   '"Lavaschlacke" ist ein Abbaugut, das aus ausgestoßenem, geschmolzenen Vulkangestein besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 2021,'Talkschiefer, Speckstein', '"Talkschiefer, Speckstein" ist ein farbloses bis graugrünes, sich fettig anfühlendes Abbaugut, das aus dem weichen Mineral Talk besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 4000,'Treib- und Brennstoffe', '"Treib- und Brennstoffe" bedeutet, dass die in der Natur vorkommenden brennbaren organischen und anorganischen Substanzen abgebaut oder gewonnen werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 4010,'Torf',          '"Torf" ist ein Abbaugut, das aus der unvollkommenen Zersetzung abgestorbener pflanzlicher Substanz unter Luftabschluss in Mooren entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 4020,'Kohle',         '"Kohle" ist ein Abbaugut, das durch Inkohlung (Umwandlungsprozess pflanzlicher Substanzen) entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 4021,'Braunkohle',    '"Braunkohle" ist ein Abbaugut, das durch einen bestimmten Grad von Inkohlung (Umwandlungsprozess pflanzlicher Substanzen) entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 4022,'Steinkohle',    '"Steinkohle" ist ein Abbaugut, das durch vollständige Inkohlung (Umwandlungsprozess pflanzlicher Substanzen) entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 4030,'Ölschiefer',    '"Ölschiefer" ist ein Abbaugut, das aus dunklem, bitumenhaltigen, tonigen Gestein besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 5000,'Industrieminerale, Salze', '-"Industrieminerale, Salze" bedeutet, dass die in der Natur vorkommenden Mineralien abgebaut werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 5001,'Gipsstein',    '"Gipsstein" ist ein natürliches Abbaugut.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 5002,'Anhydritstein', '"Anhydritstein" ist ein Abbaugut, das aus wasserfreiem Gips besteht.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 5005,'Kalkspat',      '"Kalkspat" ist ein weißes oder hell gefärbtes Abbaugut (Calciumcarbonat).');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 5007,'Schwerspat',    '"Schwerspat" ist ein formenreiches, rhombisches weißes bis farbiges Abbaugut.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 5008,'Quarz',         '"Quarz" ist ein Abbaugut, das aus verschiedenen Gesteinsarten (Granit, Gneis, Sandstein) gewonnen wird.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 5009,'Feldspat',      '"Feldspat" ist ein weiß bis grauweißes gesteinsbildendes Mineral von blättrigem Bruch, das abgebaut wird.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 5010,'Pegmatitsand',  '"Pegmatitsand" ist ein Abbaugut, das durch Verwitterung von Granit und Gneis entstanden ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (5, 9999,'Sonstiges',     '"Sonstiges" bedeutet, dass das Abbaugut bekannt, aber nicht in der Attributwertliste aufgeführt ist.');

-- 2. Feld: "Zustand"
-- 2100   Außer Betrieb, stillgelegt, verlassen
-- "Außer Betrieb, stillgelegt; verlassen" bedeutet, dass sich 'Tagebau, Grube, Steinbruch' nicht mehr in regelmäßiger, der Bestimmung entsprechenden Nutzung befindet.


-- 06 REO: ax_FlaecheGemischterNutzung
-- -------------------------------------

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (6, 'Siedlung','ax_flaechegemischternutzung','Fläche gemischter Nutzung', 'Funktion', null);

-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2100,'Gebäude- und Freifläche, Mischnutzung mit Wohnen');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2110,'Gebäude- und Freifläche, Mischnutzung mit Wohnen / Wohnen mit Öffentlich ');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2120,'Gebäude- und Freifläche, Mischnutzung mit Wohnen / Wohnen mit Handel und Dienstleistungen');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2130,'Gebäude- und Freifläche, Mischnutzung mit Wohnen / Wohnen mit Gewerbe und Industrie ');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2140,'Gebäude- und Freifläche, Mischnutzung mit Wohnen / Öffentlich mit Wohnen');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2150,'Gebäude- und Freifläche, Mischnutzung mit Wohnen / Handel und Dienstleistungen mit Wohnen');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2160,'Gebäude- und Freifläche, Mischnutzung mit Wohnen / Gewerbe und Industrie mit Wohnen');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2700,'Gebäude- und Freifläche Land- und Forstwirtschaft');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2710,'Gebäude- und Freifläche Land- und Forstwirtschaft / Wohnen');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2720,'Gebäude- und Freifläche Land- und Forstwirtschaft / Betrieb');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 2730,'Gebäude- und Freifläche Land- und Forstwirtschaft / Wohnen und Betrieb');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 6800,'Landwirtschaftliche Betriebsfläche');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (6, 7600,'Forstwirtschaftliche Betriebsfläche');


-- Art der Bebauung
-- Offen       1000 -- "Offen" beschreibt die Bebauung von 'Fläche gemischter Nutzung', die vorwiegend durch einzelstehende Gebäude charakterisiert wird.
-- Geschlossen 2000 -- "Geschlossen" beschreibt die Bebauung von 'Fläche gemischter Nutzung', die vorwiegend durch zusammenhängende Gebäude charakterisiert wird. Die Gebäudeabdeckung ist in der Regel > 50 Prozent der Fläche.


-- 07 REO: ax_FlaecheBesondererFunktionalerPraegung
-- -------------------------------------
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (7, 'Siedlung','ax_flaechebesondererfunktionalerpraegung','Fläche besonderer funktionaler Prägung', 'Funktion', 'Art der Bebauung');


-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (7,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (7, 1100,'Öffentliche Zwecke');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (7, 1110,'Öffentliche Zwecke / Verwaltung', '"Verwaltung" bezeichnet eine Fläche auf der vorwiegend Gebäude der öffentlichen Verwaltung, z. B. Rathaus, Gericht, Kreisverwaltung stehen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (7, 1120,'Öffentliche Zwecke / Bildung und Forschung', '"Bildung und Forschung" bezeichnet eine Fläche, auf der vorwiegend Gebäude stehen, in denen geistige, kulturelle und soziale Fähigkeiten vermittelt werden und/oder wissenschaftliche Forschung betrieben wird (z.B. Schulen, Universitäten, Forschungsinstitute).');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (7, 1130,'Öffentliche Zwecke / Kultur', '"Kultur" bezeichnet eine Fläche auf der vorwiegend Anlagen und Gebäude für kulturelle Zwecke, z.B. Konzert- und Museumsgebäude, Bibliotheken, Theater, Schlösser und Burgen sowie Rundfunk- und Fernsehgebäude stehen.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (7, 1140,'Öffentliche Zwecke / Religiöse Einrichtung');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (7, 1150,'Öffentliche Zwecke / Gesundheit, Kur', '"Gesundheit, Kur" bezeichnet eine Fläche auf der vorwiegend Gebäude des Gesundheitswesens stehen, z.B. Krankenhäuser, Heil- und Pflegeanstalten.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (7, 1160,'Öffentliche Zwecke / Soziales', '"Soziales" bezeichnet eine Fläche auf der vorwiegend Gebäude des Sozialwesens stehen, z. B. Kindergärten, Jugend- und Senioreneinrichtungen, Freizeit-, Fremden- und Obdachlosenheime.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (7, 1170,'Öffentliche Zwecke / Sicherheit und Ordnung', '"Sicherheit und Ordnung" bezeichnet eine Fläche auf der vorwiegend Anlagen und Gebäude der Polizei, der Bundeswehr, der Feuerwehr und der Justizvollzugsbehörden stehen.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (7, 1200,'Parken');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (7, 1300,'Historische Anlage');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (7, 1310,'Historische Anlage / Burg-, Festungsanlage');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (7, 1320,'Historische Anlage / Schlossanlage');


-- 08 REO: ax_SportFreizeitUndErholungsflaeche
-- -------------------------------------
-- 'Sport-, Freizeit- und Erholungsfläche' ist eine bebaute oder unbebaute Fläche, 
-- die dem Sport, der Freizeitgestaltung oder der Erholung dient.

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (8, 'Siedlung','ax_sportfreizeitunderholungsflaeche','Sport-, Freizeit- und Erholungsfläche', 'Funktion', null);

-- Classes:
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4100,'Sportanlage', '"Sportanlage" ist eine Fläche mit Bauwerken und Einrichtungen, die zur Ausübung von (Wettkampf-)sport und für Zuschauer bestimmt ist.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4101,'Gebäude- u. Freifläche Erholung, Sport');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4110,'Golfplatz', '"Golfplatz" ist eine Fläche mit Bauwerken und Einrichtungen, die zur Ausübung des Golfsports genutzt wird.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4120,'Sportplatz');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4130,'Rennbahn');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4140,'Reitplatz');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4150,'Schießanlage');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4160,'Eis-, Rollschuhbahn');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4170,'Tennisplatz');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4200,'Freizeitanlage', '"Freizeitanlage" ist eine Fläche mit Bauwerken und Einrichtungen, die zur Freizeitgestaltung bestimmt ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4210,'Zoo', '"Zoo" ist ein Gelände mit Tierschauhäusern und umzäunten Gehegen, auf dem Tiere gehalten und gezeigt werden.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4211,'Gebäude- u. Freifläche Erholung, Zoologie');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4220,'Safaripark, Wildpark', '"Safaripark, Wildpark", ist ein Gelände mit umzäunten Gehegen, in denen Tiere im Freien gehalten und gezeigt werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4230,'Freizeitpark', '"Freizeitpark" ist ein Gelände mit Karussells, Verkaufs- und Schaubuden und/oder Wildgattern, das der Freizeitgestaltung dient.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4240,'Freilichttheater', '"Freilichttheater" ist eine Anlage mit Bühne und Zuschauerbänken für Theateraufführungen im Freien.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4250,'Freilichtmuseum', '"Freilichtmuseum" ist eine volkskundliche Museumsanlage, in der Wohnformen oder historische Betriebsformen in ihrer natürlichen Umgebung im Freien dargestellt sind.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4260,'Autokino, Freilichtkino', '"Autokino, Freilichtkino" ist ein Lichtspieltheater im Freien, in dem der Film im Allgemeinen vom Auto aus angesehen wird.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4270,'Verkehrsübungsplatz');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4280,'Hundeübungsplatz');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4290,'Modellflugplatz', '"Modellflugplatz" ist eine Fläche, die zur Ausübung des Modellflugsports dient.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4300,'Erholungsfläche');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4301,'Gebäude- und Freifläche Erholung');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4310,'Wochenend- und Ferienhausfläche', '"Wochenend- und Ferienhausfläche" bezeichnet eine extra dafür ausgewiesene Fläche auf der vorwiegend Wochenend- und Ferienhäuser stehen dürfen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4320,'Schwimmbad, Freibad', '"Schwimmbad, Freibad" ist eine Anlage mit Schwimmbecken oder Anlage an Ufern von Gewässern für den Badebetrieb und Schwimmsport.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4321,'Gebäude- u. Freifläche Erholung, Bad');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4330,'Campingplatz', '"Campingplatz" ist eine Fläche für den Aufbau einer größeren Zahl von Zelten oder zum Abstellen und Benutzen von Wohnwagen mit ortsfesten Anlagen und Einrichtungen.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4331,'Gebäude- u. Freifläche Erholung, Camping');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4400,'Grünanlage', '"Grünanlage" ist eine Anlage mit Bäumen, Sträuchern, Rasenflächen, Blumenrabatten und Wegen, die vor allem der Erholung und Verschönerung des Stadtbildes dient.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4410,'Grünfläche');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4420,'Park', '"Park" ist eine landschaftsgärtnerisch gestaltete Grünanlage, die der Repräsentation und der Erholung dient.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4430,'Botanischer Garten');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4431,'Gebäude- u. Freifläche Erholung, Botanik');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (8, 4440,'Kleingarten', '"Kleingarten" (Schrebergarten) ist eine Anlage von Gartengrundstücken, die von Vereinen verwaltet und verpachtet werden.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4450,'Wochenendplatz');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4460,'Garten');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 4470,'Spielplatz, Bolzplatz');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (8, 9999,'Sonstiges');


-- 09 REO: ax_Friedhof
-- -------------------------------------
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass) -- kein info
VALUES (9, 'Siedlung','ax_friedhof','Friedhof', 'Funktion');

-- Class (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (9,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (9, 9401,'Gebäude- und Freifläche Friedhof');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (9, 9402,'Friedhof (ohne Gebäude)');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (9, 9403,'Friedhof (Park)');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (9, 9404,'Historischer Friedhof');


-- ** Verkehr **

-- 10 ax_Strassenverkehr
-- -------------------------------------
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (10, 'Verkehr','ax_strassenverkehr','Straßenverkehr', 'Funktion', 'Zweitname');

-- Class (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (10,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (10, 2311,'Gebäude- und Freifläche zu Verkehrsanlagen, Straße');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (10, 2312,'Verkehrsbegleitfläche Straße', '"Verkehrsbegleitfläche Straße" bezeichnet eine bebaute oder unbebaute Fläche, die einer Straße zugeordnet wird. Die "Verkehrsbegleitfläche Straße" ist nicht Bestandteil der Fahrbahn.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (10, 2313,'Straßenentwässerungsanlage');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (10, 5130,'Fußgängerzone');


-- 11 ax_Weg
-- -------------------------------------

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (11, 'Verkehr','ax_weg','Weg', 'Funktion', 'Bezeichnung');

-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (11,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (11, 5210,'Fahrweg');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (11, 5211,'Hauptwirtschaftsweg');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (11, 5212,'Wirtschaftsweg');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (11, 5220,'Fußweg');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (11, 5230,'Gang');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (11, 5240,'Radweg');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (11, 5250,'Rad- und Fußweg');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (11, 5260,'Reitweg');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (11, 9999,'Sonstiges');


-- 12 ax_Platz
-- -------------------------------------

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (12, 'Verkehr','ax_platz','Platz', 'Funktion', 'Zweitname');

-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (12,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (12, 5130,'Fußgängerzone', '"Fußgängerzone" ist ein dem Fußgängerverkehr vorbehaltener Bereich, in dem ausnahmsweise öffentlicher Personenverkehr, Lieferverkehr oder Fahrradverkehr zulässig sein kann.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (12, 5310,'Parkplatz', '"Parkplatz" ist eine zum vorübergehenden Abstellen von Fahrzeugen bestimmte Fläche.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (12, 5320,'Rastplatz', '"Rastplatz" ist eine Anlage zum Halten, Parken oder Rasten der Verkehrsteilnehmer mit unmittelbarem Anschluss zur Straße ohne Versorgungseinrichtung, ggf. mit Toiletten.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (12, 5330,'Raststätte', '"Raststätte" ist eine Anlage an Verkehrsstraßen mit Bauwerken und Einrichtungen zur Versorgung und Erholung von Reisenden.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (12, 5340,'Marktplatz');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (12, 5350,'Festplatz', '"Festplatz" ist eine Fläche, auf der zeitlich begrenzte Festveranstaltungen stattfinden');


-- 13 ax_Bahnverkehr
-- -------------------------------------

--Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (13, 'Verkehr','ax_bahnverkehr','Bahnverkehr', 'Funktion', 'Bahnkategorie');

-- Classes (Funktion):)
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (13,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (13, 2321,'Gebäude- und Freifläche zu Verkehrsanlagen, Schiene');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (13, 2322,'Verkehrsbegleitfläche Bahnverkehr', '"Verkehrsbegleitfläche Bahnverkehr" bezeichnet eine bebaute oder unbebaute, an den Bahnkörper angrenzende Fläche, die dem Schienenverkehr dient.');


-- alternative Kategorie:

-- Bahnkategorie

--Eisenbahn 1100
-- 'Eisenbahn' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, auf dem im Nah- und Fernverkehr Personen befördert und Güter transportiert werden.
--Güterverkehr 1102
-- 'Güterverkehr' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, auf dem im Nah- und Fernverkehr ausschließlich Güter transportiert werden.
--S-Bahn 1104
-- 'S-Bahn' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, der zur schnellen Personenbeförderung in Ballungsräumen dient und meist auf eigenen Gleisen verläuft.
--Stadtbahn 1200
-- 'Stadtbahn' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, auf dem eine elektrisch betriebene Schienenbahn zur Personenbeförderung im öffentlichen Nahverkehr fährt. Sie kann sowohl ober- als auch unterirdisch verlaufen.
--Straßenbahn 1201
-- 'Straßenbahn' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, auf dem eine elektrisch betriebene Schienbahn zur Personenbeförderung fährt. Sie verläuft i. d. R. oberirdisch.
--U-Bahn 1202
-- 'U-Bahn' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, auf dem eine elektrisch betriebene Schienenbahn zur Personenbeförderung in Großstädten fährt. Sie verläuft i. d. R. unterirdisch.
--Seilbahn, Bergbahn 1300
-- 'Seilbahn, Bergbahn' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, auf dem eine Schienenbahn große Höhenunterschiede überwindet.
--Zahnradbahn 1301
-- 'Zahnradbahn' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, auf dem eine Schienenbahn mittels Zahnradantrieb große Höhenunterschiede in stark geneigtem Gelände überwindet.
--Standseilbahn 1302
-- 'Standseilbahn' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, auf dem eine Schienenbahn auf einer stark geneigten, meist kurzen und geraden Strecke verläuft. Mit Hilfe eines oder mehrerer Zugseile wird ein Schienenfahrzeug bergauf gezogen und gleichzeitig ein zweites bergab gelassen.
--Museumsbahn 1400
-- 'Museumsbahn' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, auf dem ausschließlich Touristen in alten, meist restaurierten Zügen befördert werden.
--Magnetschwebebahn 1600
-- 'Magnetschwebebahn' ist die Bezeichnung für einen schienengebundenen Verkehrsweg, auf dem räderlose Schienenfahrzeuge mit Hilfe von Magnetfeldern an oder auf einer Fahrschiene schwebend entlanggeführt werden.


-- 14 ax_Flugverkehr
-- -------------------------------------

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (14, 'Verkehr','ax_flugverkehr','Flugverkehr', 'Art', 'Bezeichnung');

-- Classes (Funktion):
--INSERT INTO nutzung_class (nutz_id, class, label) VALUES (14, 5501,'Gebäude- und Freifläche zu Verkehrsanlagen, Luftfahrt');

-- Classes (Art):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (14,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (14, 5510,'Flughafen', '"Flughafen" ist eine Anlage mit Gebäuden, Bauwerken, Start- und Landebahnen sowie sonstigen flugtechnischen Einrichtungen zur Abwicklung des Flugverkehrs.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (14, 5511,'Internationaler Flughafen', '"Internationaler Flughafen" ist ein Flughafen, der in der Luftfahrtkarte 1 : 500000 (ICAO) als solcher ausgewiesen ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (14, 5512,'Regionalflughafen', '"Regionalflughafen" ist ein Flughafen der gemäß Raumordnungsgesetz als Regionalflughafen eingestuft ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (14, 5520,'Verkehrslandeplatz', '"Verkehrslandeplatz" ist ein Flugplatz, der in der Luftfahrtkarte 1:500000 (ICAO) als solcher ausgewiesen ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (14, 5530,'Hubschrauberflugplatz', '"Hubschrauberflugplatz" ist ein Flugplatz, der in der Luftfahrtkarte 1:500000 (ICAO) als solcher ausgewiesen ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (14, 5540,'Landeplatz, Sonderlandeplatz', '"Landeplatz, Sonderlandeplatz" ist eine Fläche, die in der Luftfahrtkarte 1:500000 (ICAO) als Landeplatz, Sonderlandeplatz ausgewiesen ist.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (14, 5550,'Segelfluggelände', '"Segelfluggelände" ist eine Fläche, die in der Luftfahrtkarte 1:500000 (ICAO) als Segelfluggelände ausgewiesen ist.');

-- Nutzung:

--Zivil 1000
-- "Zivil" bedeutet, dass 'Flugverkehr' privaten, öffentlichen oder religiösen Zwecken dient und nicht militärisch genutzt wird.
--Militärisch 2000
-- "Militärisch" bedeutet, dass 'Flugverkehr' nur von Streitkräften genutzt wird.
--Teils zivil, teils militärisch 3000
-- "Teils zivil, teils militärisch" bedeutet dass ''Flugverkehr' sowohl zivil als auch militärisch genutzt wird.



-- 15 ax_Schiffsverkehr
-- -------------------------------------

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass)  -- keine info
VALUES (15, 'Verkehr','ax_schiffsverkehr','Schiffsverkehr', 'Funktion');

-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (15,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (15, 2341,'Gebäude und Freifläche zu Verkehrsanlagen, Schifffahrt');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (15, 5610,'Hafenanlage (Landfläche)', '"Hafenanlage (Landfläche)" bezeichnet die Fläche innerhalb von "Hafen", die nicht von Wasser bedeckt ist und die ausschließlich zum Betrieb des Hafens dient.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (15, 5620,'Schleuse (Landfläche)', '"Schleuse (Landfläche)" bezeichnet die Fläche innerhalb von "Schleuse", die nicht von Wasser bedeckt ist und die ausschließlich zum Betrieb der Schleuse dient..');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (15, 5630,'Anlegestelle');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (15, 5640,'Fähranlage');


-- ** Objektartengruppe: Vegetation **

-- Die Objektartengruppe mit der Bezeichnung 'Vegetation' und der Kennung '43000' 
-- umfasst die Flächen außerhalb der Ansiedlungen, die durch land- oder forstwirtschaftliche Nutzung, 
-- durch natürlichen Bewuchs oder dessen Fehlen geprägt werden.


-- 16 ax_Landwirtschaft
-- -------------------------------------
-- 'Landwirtschaft' ist eine Fläche für den Anbau von Feldfrüchten sowie eine Fläche, 
-- die beweidet und gemäht werden kann, einschließlich der mit besonderen Pflanzen angebauten Fläche. 
-- Die Brache, die für einen bestimmten Zeitraum (z. B. ein halbes oder ganzes Jahr) landwirtschaftlich unbebaut bleibt, 
-- ist als 'Landwirtschaft' bzw. 'Ackerland' zu erfassen.

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass)
VALUES (16, 'Vegetation','ax_landwirtschaft','Landwirtschaft', 'Vegetationsmerkmal');

-- Classes:
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (16,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1010,'Ackerland',     '"Ackerland" ist eine Fläche für den Anbau von Feldfrüchten (z.B. Getreide, Hülsenfrüchte, Hackfrüchte) und Beerenfrüchten (z.B. Erdbeeren). Zum Ackerland gehören auch die Rotationsbrachen, Dauerbrachen sowie Flächen, die zur Erlangung der Ausgleichszahlungen der EU stillgelegt worden sind.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1011,'Streuobstacker', '"Streuobstacker" beschreibt den Bewuchs einer Ackerfläche mit Obstbäumen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1012,'Hopfen',         '"Hopfen" ist eine mit speziellen Vorrichtungen ausgestattete Agrarfläche für den Anbau von Hopfen.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (16, 1013,'Spargel');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1020,'Grünland',       '"Grünland" ist eine Grasfläche, die gemäht oder beweidet wird.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1021,'Streuobstwiese', '"Streuobstwiese" beschreibt den Bewuchs einer Grünlandfläche mit Obstbäumen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1030,'Gartenland',     '"Gartenland" ist eine Fläche für den Anbau von Gemüse, Obst und Blumen sowie für die Aufzucht von Kulturpflanzen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1031,'Baumschule',     '"Baumschule" ist eine Fläche, auf der Holzgewächse aus Samen, Ablegern oder Stecklingen unter mehrmaligem Umpflanzen (Verschulen) gezogen werden.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1040,'Weingarten',     '"Weingarten" ist eine mit speziellen Vorrichtungen ausgestattete Agrarfläche auf der Weinstöcke angepflanzt sind.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1050,'Obstplantage',   '"Obstplantage" ist eine landwirtschaftliche Fläche, die mit Obstbäumen und Obststräuchern bepflanzt ist');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1051,'Obstbaumplantage', '"Obstbaumplantage" ist eine landwirtschaftliche Fläche, die ausschließlich mit Obstbäumen bepflanzt ist.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (16, 1052,'Obststrauchplantage');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (16, 1200,'Brachland',      '"Brachland" ist eine Fläche der Landwirtschaft, die seit längerem nicht mehr zu Produktionszwecken genutzt wird.');


-- 17 ax_Wald
-- -------------------------------------
-- 'Wald' ist eine Fläche, die mit Forstpflanzen (Waldbäume und Waldsträucher) bestockt ist.

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (17, 'Vegetation','ax_wald','Wald', 'Vegetationsmerkmal', 'Bezeichnung');

-- Classes (Vegetationsmerkmal):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (17,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (17, 1100,'Laubholz',              '"Laubholz" beschreibt den Bewuchs einer Vegetationsfläche mit Laubbäumen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (17, 1200,'Nadelholz',             '"Nadelholz" beschreibt den Bewuchs einer Vegetationsfläche mit Nadelbäumen.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (17, 1300,'Laub- und Nadelholz',   '"Laub- und Nadelholz" beschreibt den Bewuchs einer Vegetationsfläche mit Laub- und Nadelbäumen.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (17, 1310,'Laubwald mit Nadelholz');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (17, 1320,'Nadelwald mit Laubholz');


-- 18 ax_Gehoelz
-- -------------------------------------

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (18, 'Vegetation','ax_gehoelz','Gehölz','Funktion', 'Vegetationsmerkmal');

-- Classes (VEG)
--INSERT INTO nutzung_class (nutz_id, class, label) VALUES (18, 1400,'Latschenkiefer');

-- Classes (Funktion)
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (18,    0,''); 
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (18, 1000,'Windschutz');


-- 19 ax_Heide
-- -------------------------------------
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title)
VALUES (19, 'Vegetation','ax_heide','Heide');

-- Keine Classes
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (19,    0,'');


-- 20 ax_Moor
-- -------------------------------------
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title)
VALUES (20, 'Vegetation','ax_moor','Moor');

-- Keine Classes
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (20,    0,'');


-- 21 ax_Sumpf
-- -------------------------------------
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title)
VALUES (21, 'Vegetation','ax_sumpf','Sumpf');

-- Keine Classes
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (21,    0,'');
 

-- 22 ax_UnlandVegetationsloseFlaeche
-- -------------------------------------

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (22, 'Vegetation','ax_unlandvegetationsloseflaeche','Unland, vegetationslose Fläche', 'Funktion', 'Oberflächenmaterial');

-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (22,    0,'');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (22, 1000,'Vegetationslose Fläche',  '"Vegetationslose Fläche" ist eine Fläche ohne nennenswerten Bewuchs aufgrund besonderer Bodenbeschaffenheit.');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (22, 1100,'Gewässerbegleitfläche',   '"Gewässerbegleitfläche" bezeichnet eine bebaute oder unbebaute Fläche, die einem Fließgewässer zugeordnet wird. Die Gewässerbegleitfläche ist nicht Bestandteil der Gewässerfläche.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (22, 1110,'Bebaute Gewässerbegleitfläche');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (22, 1120,'Unbebaute Gewässerbegleitfläche');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (22, 1200,'Sukzessionsfläche',       '"Sukzessionsfläche" ist eine Fläche, die dauerhaft aus der landwirtschaftlichen oder sonstigen bisherigen Nutzung herausgenommen ist und die in den Urzustand z. B. Gehölz, Moor, Heide übergeht.');


-- Info (Oberflächenmaterial)
--INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (22, 1010,'Fels',             '"Fels" bedeutet, dass die Erdoberfläche aus einer festen Gesteinsmasse besteht.');
--INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (22, 1020,'Steine, Schotter', '"Steine, Schotter" bedeutet, dass die Erdoberfläche mit zerkleinertem Gestein unterschiedlicher Größe bedeckt ist.');
--INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (22, 1030,'Geröll',           '"Geröll" bedeutet, dass die Erdoberfläche mit durch fließendes Wasser abgerundeten Gesteinen bedeckt ist.');
--INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (22, 1040,'Sand',             '"Sand" bedeutet, dass die Erdoberfläche mit kleinen, losen Gesteinskörnern bedeckt ist.');
--INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (22, 1110,'Schnee',           '"Schnee" bedeutet, dass die Erdoberfläche für die größte Zeit des Jahres mit Schnee bedeckt ist.');
--INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (22, 1120,'Eis, Firn',        '"Eis, Firn" bedeutet, dass die Erdoberfläche mit altem, grobkörnigem, mehrjährigem Schnee im Hochgebirge bedeckt ist, der unter zunehmendem Druck zu Gletschereis wird.');


-- ** Gewässer **

-- 24 ax_Fliessgewaesser
-- -------------------------------------
-- 'Fließgewässer' ist ein geometrisch begrenztes, oberirdisches, auf dem Festland fließendes Gewässer, 
-- das die Wassermengen sammelt, die als Niederschläge auf die Erdoberfläche fallen oder in Quellen austreten, 
-- und in ein anderes Gewässer, ein Meer oder in einen See transportiert
--   oder
-- in einem System von natürlichen oder künstlichen Bodenvertiefungen verlaufendes Wasser, 
-- das zur Be- und Entwässerung an- oder abgeleitet wird
--   oder
-- ein geometrisch begrenzter, für die Schifffahrt angelegter künstlicher Wasserlauf, 
-- der in einem oder in mehreren Abschnitten die jeweils gleiche Höhe des Wasserspiegels besitzt.

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass)
VALUES (24, 'Gewässer','ax_fliessgewaesser','Fließgewässer', 'Funktion');

-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (24,    0,'');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (24, 8200,'Fluss');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (24, 8210,'Altwasser');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (24, 8220,'Altarm');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (24, 8230,'Flussmündungstrichter', '"Flussmündungstrichter" ist der Bereich des Flusses im Übergang zum Meer. Er beginnt dort, wo die bis dahin etwa parallel verlaufenden Ufer des Flusses sich trichterförmig zur offenen See hin erweitern. Die Abgrenzungen der Flussmündungstrichter ergeben sich aus dem Bundeswasserstraßengesetz (meerseitig) und den Bekanntmachungen der Wasser- und Schifffahrtsverwaltung sowie höchst-richterlicher Rechtsprechung (binnenseitig).');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (24, 8300,'Kanal',                 '"Kanal" ist ein für die Schifffahrt angelegter, künstlicher Wasserlauf.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (24, 8400,'Graben');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (24, 8410,'Fleet');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (24, 8500,'Bach');


-- 25 ax_Hafenbecken
-- -------------------------------------

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (25, 'Gewässer','ax_hafenbecken','Hafenbecken', 'Funktion', 'Nutzung');

-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (25,    0,'');
INSERT INTO nutzung_class (nutz_id, class, label) VALUES (25, 8810,'Sportboothafenbecken');

-- Nutzung:

-- Zivil 1000
-- 'Zivil' bedeutet, dass 'Hafenbecken' privaten oder öffentlichen Zwecken dient und nicht militärisch genutzt wird.
-- Militärisch 2000
-- 'Militärisch' bedeutet, dass 'Hafenbecken' nur von Streitkräften genutzt wird.
-- Teils zivil, teils militärisch 3000
-- 'Teils zivil, teils militärisch' bedeutet, dass 'Hafenbecken' sowohl zivil als auch militärisch genutzt wird.


-- 26 ax_StehendesGewaesser
-- -------------------------------------

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (26, 'Gewässer','ax_stehendesgewaesser','stehendes Gewässer', 'Funktion', 'Gewässerkennziffer');

-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (26,    0,'');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (26, 8610,'See');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (26, 8620,'Teich');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (26, 8630,'Stausee');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (26, 8631,'Speicherbecken');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (26, 8640,'Baggersee', '"Baggersee" ist ein künstlich geschaffenes Gewässer, aus dem Bodenmaterial gefördert wird.');
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (26, 9999,'Sonstiges');

-- hydrologischesMerkmal
--  2000   Nicht ständig Wasser führend
--  "Nicht ständig Wasser führend" heißt, dass ein Gewässer nicht ganzjährig Wasser führt.


-- 27 ax_meer
-- -------------------------------------

-- Metadaten:
INSERT INTO nutzung_meta (nutz_id, gruppe, source_table, title, fldclass, fldinfo)
VALUES (27, 'Gewässer','ax_meer','Meer', 'Funktion', 'Bezeichnung');

-- Classes (Funktion):
INSERT INTO nutzung_class (nutz_id, class, label)         VALUES (27,    0,'');
INSERT INTO nutzung_class (nutz_id, class, label, blabla) VALUES (27, 8710,'Küstengewässer', '"Küstengewässer" ist die Fläche zwischen der Küstenlinie bei mittlerem Hochwasser oder der seewärtigen Begrenzung der oberirdischen Gewässer und der seewärtigen Begrenzung des deutschen Hoheitsgebietes. Dem mittleren Hochwasser ist der mittlere Wasserstand der Ostsee gleichzusetzen.');

--tidemerkmal:

-- Mit Tideeinfluss 1000
-- "Mit Tideeinfluss" sind periodische Änderungen des Wasserspiegels und horizontale Bewegungen des Wassers, hervorgerufen durch die Massenanziehungs- und Fliehkräfte des Systems Sonne, Mond und Erde in Verbindung mit der Erdrotation.

-- END --

--
-- ALKIS PostNAS 0.7
--
-- ======================================================
-- Zusammenfassung der Tabellen der tatsächlichen Nutzung
-- ======================================================
--
-- Um bei einer Feature.Info (Welche Nutzung an dieser Stelle?) 
-- oder einer Verschneidung (Welche Nutzungen auf dem Flurstück?) 
-- nicht 26 verschiedene Tabellen abfragen zu müssen, werden die wichtigsten 
-- Felder dieser Tabellen zusammen gefasst.
--
-- Teil 3: Laden der (redundanten) Tabelle "nutzung", notwendig nach jeder Fortführung.
--
-- Stand 
--
--  2012-02-10 PostNAS 07, Umbenennung
--  2012-04-24 keine historischen Flaechen (..WHERE endet IS NULL), 
--             Feld 'beginnt' mitnehmen wegen Doppelbelegung gml_id (noch klären)
--  2013-11-18 - Spalte nutzung.class mit Wert 0 füllen wenn Quellspalte NULL ist.
--             - Korrektur der Schlüsseltabelle "nutzung_class":
--               Fehlende Werte aus konvertierten Daten ergänzen. Wenn dies in der Praxis wirklich 
--               vorkommt, sollte das Lade-Script "nutzungsart_metadaten.sql" ergänzt werden.
--  2015-03-10 Korrektur: bei ax_TagebauGrubeSteinbruch ist nutz_id = 5
--             Einschränkung " AND st_geometrytype(wkb_geometry) = 'ST_Polygon' " deaktivieren, denn
--             es ist ein neuer Geometrietyp "ST_CurvePolygon" aufgetaucht.
--  2016-04-14 Korrektur: bei ax_TagebauGrubeSteinbruch: Im SQL '...FROM ax_bergbaubetrieb...' durch 
--      	'...FROM ax_tagebauGrubesteinbruch...' ersetzt


SET client_encoding = 'UTF-8';


-- Tabelle  l e e r e n
-- --------------------
DELETE FROM nutzung;


-- Tabelle  l a d e n 
-- --------------------

-- Welche Felder der Ursprungstabellen in die Zielfelder "class" und "info" geladen werden,
-- wird dokumentiert über die Tabelle "nutzung_meta" im Script "alkis_nutzungsart_meta.sql".


-- ****  Objektbereich: Tatsächliche Nutzung  ****

-- ** Objektartengruppe: Siedlung **

-- 01 REO: ax_Wohnbauflaeche
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                       info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 1,       coalesce(artderbebauung, 0), null ,zustand, name, null,        wkb_geometry 
  FROM ax_wohnbauflaeche
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;

-- 02 REO: ax_IndustrieUndGewerbeflaeche
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 2,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry 
  FROM ax_industrieundgewerbeflaeche
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 03 REO: ax_Halde
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 3,       coalesce(lagergut, 0), null, zustand, name, null,        wkb_geometry 
  FROM ax_halde
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 04 ax_Bergbaubetrieb
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 4,       coalesce(abbaugut, 0), null, zustand, name, null,        wkb_geometry 
  FROM ax_bergbaubetrieb
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 05 REO: ax_TagebauGrubeSteinbruch
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 5,       coalesce(abbaugut, 0), null, zustand, name, null,        wkb_geometry 
  FROM ax_tagebauGrubesteinbruch
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 06 REO: ax_FlaecheGemischterNutzung
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 6,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry 
  FROM ax_flaechegemischternutzung
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 07 REO: ax_FlaecheBesondererFunktionalerPraegung
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,           zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 7,       coalesce(funktion, 0), artderbebauung, zustand, name, null,        wkb_geometry 
  FROM ax_flaechebesondererfunktionalerpraegung
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 08 REO: ax_SportFreizeitUndErholungsflaeche
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 8,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry 
  FROM ax_sportfreizeitunderholungsflaeche
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;
-- weiteres Feld: name char(20)?


-- 09 REO: ax_Friedhof
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 9,       coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry 
  FROM ax_friedhof
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- ** Objektartengruppe: Verkehr **

-- 10 ax_Strassenverkehr
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,   zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 10,      coalesce(funktion, 0), null,   zustand, name, zweitname,   wkb_geometry 
  FROM ax_strassenverkehr
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 11 ax_Weg
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,  zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 11,      coalesce(funktion, 0), null,  null,    name, bezeichnung, wkb_geometry 
  FROM ax_weg
  WHERE endet IS NULL;


-- 12 ax_Platz
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 12,      coalesce(funktion, 0), null, null,    name, zweitname,   wkb_geometry 
  FROM ax_platz
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 13 ax_Bahnverkehr
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,          zustand, name,        bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 13,      coalesce(funktion, 0), bahnkategorie, zustand, bezeichnung, null,        wkb_geometry 
  FROM ax_bahnverkehr
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;
-- bahnkategorie ist alternativ ein geeignetes class-Feld


-- 14 ax_Flugverkehr
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,  zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 14,      coalesce(art, 0),      null,  zustand, name, bezeichnung, wkb_geometry 
  FROM ax_flugverkehr
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 15 ax_Schiffsverkehr
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 15,      coalesce(funktion, 0), null, zustand, name, null,        wkb_geometry 
  FROM ax_schiffsverkehr
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- ** Objektartengruppe: Vegetation **

-- 16 ax_Landwirtschaft
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                           info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 16,      coalesce(vegetationsmerkmal, 0), null, null,    name, null,        wkb_geometry 
  FROM ax_landwirtschaft
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 17 ax_Wald
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                           info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 17,      coalesce(vegetationsmerkmal, 0), null, null,    name, bezeichnung, wkb_geometry 
  FROM ax_wald
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 18 ax_Gehoelz
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,  zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 18,      coalesce(funktion, 0), vegetationsmerkmal, null,    null, null,        wkb_geometry 
  FROM ax_gehoelz
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 19 ax_Heide
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,  info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 19,      0,      null, null,    name, null,        wkb_geometry 
  FROM ax_heide
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 20 ax_Moor
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,  info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 20,          0,  null, null,    name, null,        wkb_geometry 
  FROM ax_moor
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 21 ax_Sumpf
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,  info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 21,          0,  null, null,    name, null,        wkb_geometry 
  FROM ax_sumpf
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 22 ax_UnlandVegetationsloseFlaeche
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,                 zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 22,      coalesce(funktion, 0), oberflaechenmaterial, null,    name, null,        wkb_geometry 
  FROM ax_unlandvegetationsloseflaeche
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;

-- (23 Nummerierungslücke)

-- ** Objektartengruppe: Gewässer **

-- 24 ax_Fliessgewaesser
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand,  name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 24,      coalesce(funktion, 0), null, zustand,  name, null,        wkb_geometry 
  FROM ax_fliessgewaesser
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 25 ax_Hafenbecken
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info,    zustand,   name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 25,      coalesce(funktion, 0), nutzung, null,      name, null,        wkb_geometry 
  FROM ax_hafenbecken
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 26 ax_StehendesGewaesser
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung,         wkb_geometry)
  SELECT             gml_id, beginnt, 26,      coalesce(funktion, 0), null, null,    name, gewaesserkennziffer, wkb_geometry 
  FROM ax_stehendesgewaesser
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- 27 ax_Meer
-- -------------------------------------
INSERT INTO nutzung (gml_id, beginnt, nutz_id, class,                 info, zustand, name, bezeichnung, wkb_geometry)
  SELECT             gml_id, beginnt, 27,      coalesce(funktion, 0), null, null,    name, bezeichnung, wkb_geometry 
  FROM ax_meer
  WHERE endet IS NULL
--  AND st_geometrytype(wkb_geometry) = 'ST_Polygon'
  ;


-- Ergaenzung der Schlüsseltabelle
-- -------------------------------

-- Fehlende Einträge in der manuell gefüllten Tabelle "nutzung_class" (Theorie, aus GeoInfoDok)
-- durch Einträge aus der zusammen gefassten Tabelle "nutzung" ergänzen (Praxis).

-- Wenn in der Praxis weitere Schlüssel vorkommen, die in der Tabelle "nutzung_class" noch nicht 
-- enthalten sind, dann kann das bei Equivalenz-Abfragen (INNER JOIN) dazu führen, dass die 
-- Nutzungsarten-Abschnitte mit den dort fehlenden Schlüsseln ausgelassen werden.

INSERT INTO  nutzung_class ( nutz_id, class, label, blabla )
  SELECT DISTINCT 
         n.nutz_id,
         n.class,
        '(unbekannt)' AS label, 
        'Schlüssel wurde im PostProcessing aus der Tabelle "nutzung" ergänzt' AS blabla
     FROM nutzung n  -- Daten aus Konverter -- die Praxis
     WHERE NOT EXISTS 
     ( SELECT c.class
         FROM nutzung_class c -- vorbereitete Metadaten aus GeoInfoDok  -- die Theorie
        WHERE n.nutz_id = c.nutz_id 
          AND n.class = c.class
      )
      ORDER BY n.nutz_id, n.class ;

-- END --

-- ALKIS-Datenbank aus dem Konverter PostNAS

-- Z u s a e t z l i c h e   S c h l u e s s e l t a b e l l e n

-- Dieses Script fuegt der Datenbank einige Schluesseltabellen hinzu, die der 
-- Konverter PostNAS NICHT aufbaut, weil sie nicht in den NAS-Daten enthalten sind.
-- Die Schluessel sind der Dokumentation zu entnehmen.

-- Die Tabellen werden vom Buchwerk-Auskunftsprogramm benoetigt.

-- Dies Script kann nach dem Anlegen der Datenbank mit dem Script 'alkis_PostNAS_schema.sql' verarbeitet werden.

-- Version
--  2014-09-30  F.J. Umbenennung Schlüsseltabellen (Prefix) von "ax_*" nach "v_*"
--                   Der Prefix "ax_" sollte Objekt-Tabellen des ALKIS-Namenschemas vorbehalten sein.
--                   Vorgehen bei Umstellung: neue Tabellen anlegen, Programme und Views umstellen, alte Tab. löschen

  SET client_encoding = 'UTF8';

-- G e b ä u d e - B a u w e i s e
-- -------------------------------
-- Wird z.B. benoetigt in Buchauskunft, Modul 'alkisgebaeudenw.php'
-- Nicht im Grunddatenbestand NRW 
-- Siehe http://www.kreis-euskirchen.de/service/downloads/geoinformation/Kreis_EU_Gebaeudeerfassung.pdf
-- alter Name: ax_gebaeude_bauweise
DROP TABLE v_geb_bauweise;
CREATE TABLE v_geb_bauweise (
    bauweise_id            integer, 
    bauweise_beschreibung  character varying,
    CONSTRAINT pk_v_geb_bauweise PRIMARY KEY (bauweise_id)
  );

COMMENT ON TABLE v_geb_bauweise 
 IS 'Gebäude, Spalte: Bauweise - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_gebaeude", Feld "bauweise".';

COMMENT ON COLUMN v_geb_bauweise.bauweise_id           IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_geb_bauweise.bauweise_beschreibung IS 'Bezeichnung, Bedeutung';

INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (1100,'Freistehendes Einzelgebäude');
INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (1200,'Freistehender Gebäudeblock');
INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (1300,'Einzelgarage');
INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (1400,'Doppelgarage');
INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (1500,'Sammelgarage');
INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (2100,'Doppelhaushälfte');
INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (2200,'Reihenhaus');
INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (2300,'Haus in Reihe');
INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (2400,'Gruppenhaus');
INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (2500,'Gebäudeblock in geschlossener Bauweise');
INSERT INTO v_geb_bauweise (bauweise_id, bauweise_beschreibung) VALUES (4000,'Offene Halle');


-- G e b a e u d e - F u n k t i o n
-- ---------------------------------
-- Objektart = 'ax_gebaeude'
-- alter Name: ax_gebaeude_funktion
DROP TABLE v_geb_funktion; 
CREATE TABLE v_geb_funktion (
    wert        integer, 
    bezeichner  character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
   );

COMMENT ON TABLE  v_geb_funktion 
 IS 'Gebäude, Spalte: Funktion - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_gebaeude", Feld "funktion".';

COMMENT ON COLUMN v_geb_funktion.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_geb_funktion.bezeichner IS 'Bezeichnung, Bedeutung';

INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1000,'Wohngebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1010,'Wohnhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1020,'Wohnheim');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1021,'Kinderheim');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1022,'Seniorenheim');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1023,'Schwesternwohnheim');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1024,'Studenten-, Schülerwohnheim');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1025,'Schullandheim');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1100,'Gemischt genutztes Gebäude mit Wohnen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1110,'Wohngebäude mit Gemeinbedarf');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1120,'Wohngebäude mit Handel und Dienstleistungen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1121,'Wohn- und Verwaltungsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1122,'Wohn- und Bürogebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1123,'Wohn- und Geschäftsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1130,'Wohngebäude mit Gewerbe und Industrie');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1131,'Wohn- und Betriebsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1210,'Land- und forstwirtschaftliches Wohngebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1220,'Land- und forstwirtschaftliches Wohn- und Betriebsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1221,'Bauernhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1222,'Wohn- und Wirtschaftsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1223,'Forsthaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1310,'Gebäude zur Freizeitgestaltung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1311,'Ferienhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1312,'Wochenendhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (1313,'Gartenhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2000,'Gebäude für Wirtschaft oder Gewerbe');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2010,'Gebäude für Handel und Dienstleistungen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2020,'Bürogebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2030,'Kreditinstitut');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2040,'Versicherung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2050,'Geschäftsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2051,'Kaufhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2052,'Einkaufszentrum');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2053,'Markthalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2054,'Laden');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2055,'Kiosk');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2056,'Apotheke');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2060,'Messehalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2070,'Gebäude für Beherbergung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2071,'Hotel, Motel, Pension');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2072,'Jugendherberge');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2073,'Hütte (mit Übernachtungsmöglichkeit)');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2074,'Campingplatzgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2080,'Gebäude für Bewirtung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2081,'Gaststätte, Restaurant');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2082,'Hütte (ohne Übernachtungsmöglichkeit)');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2083,'Kantine');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2090,'Freizeit- und Vergnügungsstätte');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2091,'Festsaal');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2092,'Kino');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2093,'Kegel-, Bowlinghalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2094,'Spielkasino');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2100,'Gebäude für Gewerbe und Industrie');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2110,'Produktionsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2111,'Fabrik');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2112,'Betriebsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2113,'Brauerei');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2114,'Brennerei');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2120,'Werkstatt');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2121,'Sägewerk');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2130,'Tankstelle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2131,'Waschstraße, Waschanlage, Waschhalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2140,'Gebäude für Vorratshaltung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2141,'Kühlhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2142,'Speichergebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2143,'Lagerhalle, Lagerschuppen, Lagerhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2150,'Speditionsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2160,'Gebäude für Forschungszwecke');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2170,'Gebäude für Grundstoffgewinnung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2171,'Bergwerk');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2172,'Saline');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2180,'Gebäude für betriebliche Sozialeinrichtung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2200,'Sonstiges Gebäude für Gewerbe und Industrie');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2210,'Mühle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2211,'Windmühle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2212,'Wassermühle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2213,'Schöpfwerk');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2220,'Wetterstation');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2310,'Gebäude für Handel und Dienstleistung mit Wohnen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2320,'Gebäude für Gewerbe und Industrie mit Wohnen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2400,'Betriebsgebäude zu Verkehrsanlagen (allgemein)');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2410,'Betriebsgebäude für Straßenverkehr');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2411,'Straßenmeisterei');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2412,'Wartehalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2420,'Betriebsgebäude für Schienenverkehr');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2421,'Bahnwärterhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2422,'Lokschuppen, Wagenhalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2423,'Stellwerk, Blockstelle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2424,'Betriebsgebäude des Güterbahnhofs');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2430,'Betriebsgebäude für Flugverkehr');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2431,'Flugzeughalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2440,'Betriebsgebäude für Schiffsverkehr');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2441,'Werft (Halle)');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2442,'Dock (Halle)');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2443,'Betriebsgebäude zur Schleuse');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2444,'Bootshaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2450,'Betriebsgebäude zur Seilbahn');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2451,'Spannwerk zur Drahtseilbahn');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2460,'Gebäude zum Parken');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2461,'Parkhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2462,'Parkdeck');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2463,'Garage');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2464,'Fahrzeughalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2465,'Tiefgarage');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2500,'Gebäude zur Versorgung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2501,'Gebäude zur Energieversorgung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2510,'Gebäude zur Wasserversorgung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2511,'Wasserwerk');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2512,'Pumpstation');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2513,'Wasserbehälter');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2520,'Gebäude zur Elektrizitätsversorgung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2521,'Elektrizitätswerk');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2522,'Umspannwerk');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2523,'Umformer');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2527,'Reaktorgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2528,'Turbinenhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2529,'Kesselhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2540,'Gebäude für Fernmeldewesen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2560,'Gebäude an unterirdischen Leitungen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2570,'Gebäude zur Gasversorgung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2571,'Gaswerk');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2580,'Heizwerk');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2590,'Gebäude zur Versorgungsanlage');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2591,'Pumpwerk (nicht für Wasserversorgung)');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2600,'Gebäude zur Entsorgung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2610,'Gebäude zur Abwasserbeseitigung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2611,'Gebäude der Kläranlage');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2612,'Toilette');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2620,'Gebäude zur Abfallbehandlung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2621,'Müllbunker');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2622,'Gebäude zur Müllverbrennung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2623,'Gebäude der Abfalldeponie');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2700,'Gebäude für Land- und Forstwirtschaft');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2720,'Land- und forstwirtschaftliches Betriebsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2721,'Scheune');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2723,'Schuppen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2724,'Stall');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2726,'Scheune und Stall');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2727,'Stall für Tiergroßhaltung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2728,'Reithalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2729,'Wirtschaftsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2732,'Almhütte');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2735,'Jagdhaus, Jagdhütte');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2740,'Treibhaus, Gewächshaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2741,'Treibhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (2742,'Gewächshaus, verschiebbar');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3000,'Gebäude für öffentliche Zwecke');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3010,'Verwaltungsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3011,'Parlament');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3012,'Rathaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3013,'Post');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3014,'Zollamt');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3015,'Gericht');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3016,'Botschaft, Konsulat');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3017,'Kreisverwaltung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3018,'Bezirksregierung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3019,'Finanzamt');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3020,'Gebäude für Bildung und Forschung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3021,'Allgemein bildende Schule');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3022,'Berufsbildende Schule');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3023,'Hochschulgebäude (Fachhochschule, Universität)');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3024,'Forschungsinstitut');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3030,'Gebäude für kulturelle Zwecke');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3031,'Schloss');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3032,'Theater, Oper');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3033,'Konzertgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3034,'Museum');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3035,'Rundfunk, Fernsehen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3036,'Veranstaltungsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3037,'Bibliothek, Bücherei');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3038,'Burg, Festung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3040,'Gebäude für religiöse Zwecke');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3041,'Kirche');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3042,'Synagoge');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3043,'Kapelle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3044,'Gemeindehaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3045,'Gotteshaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3046,'Moschee');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3047,'Tempel');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3048,'Kloster');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3050,'Gebäude für Gesundheitswesen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3051,'Krankenhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3052,'Heilanstalt, Pflegeanstalt, Pflegestation');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3053,'Ärztehaus, Poliklinik');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3060,'Gebäude für soziale Zwecke');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3061,'Jugendfreizeitheim');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3062,'Freizeit-, Vereinsheim, Dorfgemeinschafts-, Bürgerhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3063,'Seniorenfreizeitstätte');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3064,'Obdachlosenheim');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3065,'Kinderkrippe, Kindergarten, Kindertagesstätte');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3066,'Asylbewerberheim');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3070,'Gebäude für Sicherheit und Ordnung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3071,'Polizei');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3072,'Feuerwehr');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3073,'Kaserne');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3074,'Schutzbunker');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3075,'Justizvollzugsanstalt');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3080,'Friedhofsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3081,'Trauerhalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3082,'Krematorium');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3090,'Empfangsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3091,'Bahnhofsgebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3092,'Flughafengebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3094,'Gebäude zum U-Bahnhof');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3095,'Gebäude zum S-Bahnhof');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3097,'Gebäude zum Busbahnhof');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3098,'Empfangsgebäude Schifffahrt');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3100,'Gebäude für öffentliche Zwecke mit Wohnen');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3200,'Gebäude für Erholungszwecke');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3210,'Gebäude für Sportzwecke');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3211,'Sport-, Turnhalle');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3212,'Gebäude zum Sportplatz');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3220,'Badegebäude');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3221,'Hallenbad');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3222,'Gebäude im Freibad');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3230,'Gebäude im Stadion');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3240,'Gebäude für Kurbetrieb');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3241,'Badegebäude für medizinische Zwecke');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3242,'Sanatorium');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3260,'Gebäude im Zoo');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3261,'Empfangsgebäude des Zoos');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3262,'Aquarium, Terrarium, Voliere');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3263,'Tierschauhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3264,'Stall im Zoo');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3270,'Gebäude im botanischen Garten');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3271,'Empfangsgebäude des botanischen Gartens');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3272,'Gewächshaus (Botanik)');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3273,'Pflanzenschauhaus');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3280,'Gebäude für andere Erholungseinrichtung');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3281,'Schutzhütte');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (3290,'Touristisches Informationszentrum');
INSERT INTO v_geb_funktion (wert, bezeichner) VALUES (9998,'Nach Quellenlage nicht zu spezifizieren');


-- W e i t e r e   G e b a e u d e - F u n k t i o n
-- -------------------------------------------------
-- alter Name: ax_gebaeude_weiterefunktion
DROP TABLE v_geb_weiterefkt;
CREATE TABLE v_geb_weiterefkt (
    wert        integer,
    bezeichner  character varying,
    erklaer     character varying,
    CONSTRAINT pk_v_geb_weitfkt_w PRIMARY KEY (wert)
   );

COMMENT ON TABLE  v_geb_weiterefkt 
 IS 'Gebäude, Spalte: Weitere Funktion - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_gebaeude", Feld "weiterefunktion".';

COMMENT ON COLUMN v_geb_weiterefkt.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_geb_weiterefkt.bezeichner IS 'Lange Bezeichnung';
COMMENT ON COLUMN v_geb_weiterefkt.erklaer    IS 'ALKIS erklärt uns die Welt';

INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1000, 'Bankfiliale',    '"Bankfiliale" ist eine Einrichtung in der Geldgeschäfte getätigt werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1010, 'Hotel',          '"Hotel" ist ein Beherbergungs- und/oder Verpflegungsbetrieb.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1020, 'Jugendherberge', '"Jugendherberge" ist eine zur Förderung von Jugendreisen dienende Aufenthalts- und Übernachtungsstätte.');	
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1030, 'Gaststätte',     '"Gaststätte" ist eine Einrichtung, in der gegen Entgelt Mahlzeiten und Getränke zum sofortigen Verzehr angeboten werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1040, 'Kino',           '"Kino" ist eine Einrichtung, in der alle Arten von Filmen bzw. Lichtspielen für ein Publikum abgespielt werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1050, 'Spielkasino',    '"Spielkasino" ist eine Einrichtung, in der öffentlich zugänglich staatlich konzessioniertes Glücksspiel betrieben wird.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1060, 'Tiefgarage',     '"Tiefgarage" ist ein Bauwerk unterhalb der Erdoberfläche, in dem Fahrzeuge abgestellt werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1070, 'Parkdeck',       '"Parkdeck" ist eine Fläche auf einem Gebäude, auf der Fahrzeuge abgestellt werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1080, 'Toilette',       '"Toilette" ist eine Einrichtung mit sanitären Vorrichtungen zum Verrichtung der Notdurft.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1090, 'Post',           '"Post" ist eine Einrichtung, von der aus Briefe, Pakete befördert und weitere Dienstleistungen angeboten werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1100, 'Zoll',           '"Zoll" ist eine Einrichtung der Zollabfertigung.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1110, 'Theater',        '"Theater" ist eine Einrichtung, in der Bühnenstücke aufgeführt werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1120, 'Museum',         '"Museum" ist eine Einrichtung in der Sammlungen von (historischen) Objekten oder Reproduktionen davon ausgestellt werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1130, 'Bibliothek',     '"Bibliothek" ist eine Einrichtung, in der Bücher und Zeitschriften gesammelt, aufbewahrt und ausgeliehen werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1140, 'Kapelle',        '"Kapelle" ist eine Einrichtung für (christliche) gottesdienstliche Zwecke.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1150, 'Moschee',        '"Moschee" ist ein Einrichtung, in der sich Muslime zu Gottesdiensten versammeln oder zu anderen Zwecken treffen.');	
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1160, 'Tempel',         '');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1170, 'Apotheke',       '"Apotheke" ist ein Geschäft, in dem Arzneimittel hergestellt und verkauft werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1180, 'Polizeiwache',   '"Polizeiwache" ist eine Dienststelle der Polizei.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1190, 'Rettungsstelle', '"Rettungsstelle" ist eine Einrichtung zur Aufnahme, Erstbehandlung und gezielten Weiterverlegung von Patienten mit Erkrankungen und Unfällen aller Art.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1200, 'Touristisches Informationszentrum', '"Touristisches Informationszentrum" ist eine Auskunftsstelle für Touristen.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1210, 'Kindergarten',    '"Kindergarten" ist eine Einrichtung, in der Kinder im Vorschulalter betreut werden.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1220, 'Arztpraxis',      '"Arztpraxis" ist die Arbeitsstätte eines Arztes.');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1230, 'Supermarkt',      '');
INSERT INTO v_geb_weiterefkt (wert, bezeichner, erklaer) VALUES (1240, 'Geschäft',        '');


-- G e b ä u d e   D a c h f o r m
-- -------------------------------
-- alter Name: ax_gebaeude_dachform
DROP TABLE v_geb_dachform;
CREATE TABLE v_geb_dachform 
   (wert        integer, 
    bezeichner  character varying,
    CONSTRAINT pk_v_geb_dach_w PRIMARY KEY (wert)
   );

COMMENT ON TABLE  v_geb_dachform 
 IS 'Gebäude, Spalte: Dachform - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_gebaeude", Feld "dachform".';

COMMENT ON COLUMN v_geb_dachform.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_geb_dachform.bezeichner IS 'Lange Bezeichnung';

INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (1000, 'Flachdach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (2100, 'Pultdach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (2200, 'Versetztes Pultdach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (3100, 'Satteldach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (3200, 'Walmdach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (3300, 'Krüppelwalmdach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (3400, 'Mansardendach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (3500, 'Zeltdach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (3600, 'Kegeldach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (3700, 'Kuppeldach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (3800, 'Sheddach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (3900, 'Bogendach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (4000, 'Turmdach');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (5000, 'Mischform');
INSERT INTO v_geb_dachform (wert, bezeichner) VALUES (9999, 'Sonstiges');


-- G e b ä u d e   Z u s t a n d
-- -----------------------------
-- alter Name: ax_gebaeude_zustand
DROP TABLE v_geb_zustand; 
CREATE TABLE v_geb_zustand 
   (wert        integer, 
    bezeichner  character varying,
    erklaer     character varying,
    CONSTRAINT pk_v_geb_zustand_w PRIMARY KEY (wert)
   );

COMMENT ON TABLE  v_geb_zustand 
 IS 'Gebäude, Spalte: Zustand - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "___", Feld "___".';

COMMENT ON COLUMN v_geb_zustand.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_geb_zustand.erklaer    IS 'ggf. zusätzliche Erklärung';
COMMENT ON COLUMN v_geb_zustand.bezeichner IS 'Lange Bezeichnung';

INSERT INTO v_geb_zustand (wert, bezeichner) VALUES (1000, 'In behelfsmäßigem Zustand');
INSERT INTO v_geb_zustand (wert, bezeichner) VALUES (2000, 'In ungenutztem Zustand');
INSERT INTO v_geb_zustand (wert, bezeichner, erklaer) VALUES (2100, 'Außer Betrieb, stillgelegt, verlassen', '"Außer Betrieb, stillgelegt, verlassen" bedeutet, dass das Gebäude auf Dauer nicht mehr bewohnt oder genutzt wird');
INSERT INTO v_geb_zustand (wert, bezeichner, erklaer) VALUES (2200, 'Verfallen, zerstört', '"Verfallen, zerstört" bedeutet, dass sich der ursprüngliche Zustand des Gebäudes durch menschliche oder zeitliche Einwirkungen so verändert hat, dass eine Nutzung nicht mehr möglich ist.');
INSERT INTO v_geb_zustand (wert, bezeichner) VALUES (2300, 'Teilweise zerstört');
INSERT INTO v_geb_zustand (wert, bezeichner) VALUES (3000, 'Geplant und beantragt');
INSERT INTO v_geb_zustand (wert, bezeichner) VALUES (4000, 'Im Bau');


-- LageZurErdoberflaeche
-- ---------------------
-- nur 2 Werte:
-- 1200, Unter der Erdoberfläche
--	    "Unter der Erdoberfläche" bedeutet, dass sich das Gebäude unter der Erdoberfläche befindet.
-- 1400, Aufgeständert
--	    "Aufgeständert" bedeutet, dass ein Gebäude auf Stützen steht.


-- Dachgeschossausbau
-- ------------------
-- nur 4 Werte:
-- 1000 Nicht ausbaufähig
-- 2000 Ausbaufähig
-- 3000 Ausgebaut
-- 4000 Ausbaufähigkeit unklar


-- B u c h u n g s t s t e l l e  -  B u c h u n g s a r t
-- -------------------------------------------------------
-- Objektart = 'ax_buchungsstelle'
-- alter Name: ax_buchungsstelle_buchungsart
DROP TABLE v_bs_buchungsart; 
CREATE TABLE v_bs_buchungsart (
   wert integer,
   bezeichner character varying,
   CONSTRAINT pk_v_bsba_w PRIMARY KEY (wert)
  );

COMMENT ON TABLE  v_bs_buchungsart 
 IS 'Buchungsstelle (Grundstück), Spalte: Buchungsart - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_buchungsstelle", Feld "buchungsart".';

COMMENT ON COLUMN v_bs_buchungsart.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_bs_buchungsart.bezeichner IS 'Lange Bezeichnung';

-- 51 Werte
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1100,'Grundstück');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1101,'Aufgeteiltes Grundstück WEG');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1102,'Aufgeteiltes Grundstück Par. 3 Abs. 4 GBO');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1200,'Ungetrennter Hofraum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1301,'Wohnungs-/Teileigentum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1302,'Miteigentum Par. 3 Abs. 4 GBO');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1303,'Anteil am ungetrennten Hofraum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1401,'Aufgeteilter Anteil Wohnungs-/Teileigentum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1402,'Aufgeteilter Anteil Miteigentum Par. 3 Abs. 4 GBO');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1403,'Aufgeteilter Anteil am ungetrennten Hofraum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1501,'Anteil an Wohnungs-/Teileigentumsanteil');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1502,'Anteil an Miteigentumsanteil Par. 3 Abs. 4 GBO');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (1503,'Anteil am Anteil zum ungetrennten Hofraum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2101,'Erbbaurecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2102,'Untererbbaurecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2103,'Gebäudeeigentum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2104,'Fischereirecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2105,'Bergwerksrecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2106,'Nutzungsrecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2107,'Realgewerberecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2108,'Gemeinderecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2109,'Stavenrecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2110,'Hauberge');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2201,'Aufgeteiltes Erbbaurecht WEG');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2202,'Aufgeteiltes Untererbbaurecht WEG');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2203,'Aufgeteiltes Recht Par. 3 Abs. 4 GBO');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2204,'Aufgeteiltes Recht, Körperschaft');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2205,'Aufgeteiltes Gebäudeeigentum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2301,'Wohnungs-/Teilerbbaurecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2302,'Wohnungs-/Teiluntererbbaurecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2303,'Erbbaurechtsanteil Par. 3 Abs. 4 GBO');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2304,'Anteiliges Recht, Körperschaft');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2305,'Anteil am Gebäudeeigentum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2401,'Aufgeteilter Anteil Wohnungs-/Teilerbbaurecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2402,'Aufgeteilter Anteil Wohnungs-/Teiluntererbbaurecht');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2403,'Aufgeteilter Erbbaurechtsanteil Par. 3 Abs. 4 GBO');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2404,'Aufgeteiltes anteiliges Recht, Körperschaft');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2405,'Aufgeteilter Anteil am Gebäudeeigentum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2501,'Anteil am Wohnungs-/Teilerbbaurechtsanteil');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2502,'Anteil am Wohnungs-/Teiluntererbbaurechtsanteil');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2503,'Anteil am Erbbaurechtsanteil Par. 3 Abs. 4 GBO');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2504,'Anteil am anteiligen Recht, Körperschaft');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (2505,'Anteil am Anteil zum Gebäudeeigentum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (3100,'Vermerk subjektiv dinglicher Rechte (Par. 9 GBO)');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (4100,'Stockwerkseigentum');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (5101,'Von Buchungspflicht befreit Par. 3 Abs. 2 GBO');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (5200,'Anliegerflurstück');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (5201,'Anliegerweg');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (5202,'Anliegergraben');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (5203,'Anliegerwasserlauf, Anliegergewässer');
INSERT INTO v_bs_buchungsart (wert, bezeichner) VALUES (6101,'Nicht gebuchtes Fischereirecht');


-- N a m e n s n u m m e r  -  E i g e n t u e m e r a r t
-- -------------------------------------------------------
-- Objektart = 'AX_Namensnummer'
-- alter Name: ax_namensnummer_eigentuemerart
DROP TABLE v_namnum_eigart; 
CREATE TABLE v_namnum_eigart (
   wert integer,
   bezeichner character varying,
   CONSTRAINT pk_v_nnea_w PRIMARY KEY (wert)
  );

COMMENT ON TABLE  v_namnum_eigart 
 IS 'Namensnummer, Spalte: Eigentümerart - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_namensnummer", Feld "eigentuemerart".';

COMMENT ON COLUMN v_namnum_eigart.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_namnum_eigart.bezeichner IS 'Lange Bezeichnung';

INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (1000,'Natürliche Personen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (1100,'Natürliche Person - Alleineigentum oder Ehepartner');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (1200,'Natürliche Person - Wohnsitz im Land');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (1300,'Natürliche Person - Wohnsitz außerhalb des Landes');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (1500,'Natürliche Person - Gemeinschaftseigentum');

INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (2000,'Juristische Personen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (2100,'Gemeinnützige Bau-, Wohnungs- oder Siedlungsgesellschaft oder -genossenschaft einschließlich Heimstätte');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (2200,'Sonstige gemeinnützige Institution (Träger von Krankenhäusern, Altenheimen usw.) ');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (2300,'Privates Wohnungsunternehmen, private Baugesellschaft u.ä.');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (2400,'Kreditinstitut');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (2500,'Versicherungsunternehmen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (2900,'Andere Unternehmen, Gesellschaften usw.');

INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (3000,'Körperschaften');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (3100,'Stiftung');

INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (4000,'Kirchliches Eigentum');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (4100,'Evangelische Kirche');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (4200,'Katholische Kirche ');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (4900,'Andere Kirchen, Religionsgemeinschaften usw.');

INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5100,'Bundesrepublik Deutschland');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5101,'Bundesrepublik Deutschland, Bundesstraßenverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5102,'Bundesrepublik Deutschland, Bundeswehrverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5103,'Bundesrepublik Deutschland, Forstverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5104,'Bundesrepublik Deutschland, Finanzverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5105,'Bundesrepublik Deutschland, Zivilschutz');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5106,'Bundesrepublik Deutschland, Wasserstraßenverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5107,'Bundesrepublik Deutschland, Bundeseisenbahnvermögen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5210,'Eigentum des Volkes nach DDR-Recht');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5220,'Eigentum der Genossenschaften und deren Einrichtungen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5230,'Eigentum der gesellschaftlichen Organisationen und deren Einrichtungen ');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5240,'Kommunale Gebietskörperschaften nach DDR-Recht');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5300,'Ausländischer Staat');

INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5400,'Kreis');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5500,'Gemeinde');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5600,'Kommunale Gebietskörperschaften ');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5700,'Andere Gebietskörperschaften, Regionalverbände usw.');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5800,'Zweckverbände, Kommunale Betriebe');

INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5920,'Eigenes Bundesland');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5921,'Eigenes Bundesland, Denkmalpflege');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5922,'Eigenes Bundesland, Domänenverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5923,'Eigenes Bundesland, Eichverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5924,'Eigenes Bundesland, Finanzverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5925,'Eigenes Bundesland, Forstverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5926,'Eigenes Bundesland, Gesundheitswesen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5927,'Eigenes Bundesland, Polizeiverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5928,'Eigenes Bundesland, innere Verwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5929,'Eigenes Bundesland, Justizverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5930,'Eigenes Bundesland, Kultusverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5931,'Eigenes Bundesland, Landespflanzenschutzverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5932,'Eigenes Bundesland, Arbeitsverwaltung ');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5933,'Eigenes Bundesland, Sozialwesen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5934,'Eigenes Bundesland, Landesbetrieb Straßen und Verkehr');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5935,'Eigenes Bundesland, Umweltverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5936,'Eigenes Bundesland, Vermessungs- und Katasterverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5937,'Eigenes Bundesland, Wasserwirtschaftsverwaltung ');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5938,'Eigenes Bundesland, Wirtschaftsverwaltung');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (5939,'Eigenes Bundesland, Liegenschafts- und Baubetreuung (LBB)');

INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6000,'Anderes Bundesland (allg.)');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6001,'Schleswig-Holstein');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6002,'Hamburg');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6003,'Niedersachsen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6004,'Bremen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6005,'Nordrhein-Westfalen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6006,'Hessen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6007,'Rheinland-Pfalz');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6008,'Baden-Württemberg');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6009,'Bayern');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6010,'Saarland');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6012,'Brandenburg');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6011,'Berlin');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6013,'Mecklenburg-Vorpommern');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6014,'Sachsen');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6015,'Sachsen-Anhalt');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (6016,'Thüringen');

INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (7100,'Deutsche Bahn AG');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (8000,'Herrenlos');
INSERT INTO v_namnum_eigart (wert, bezeichner) VALUES (9000,'Eigentümer unbekannt');

-- In der Praxis kommt vor:
--   SELECT DISTINCT eigentuemerart FROM ax_namensnummer ORDER BY eigentuemerart;


-- B a u - , R a u m -  oder  B o d e n - O r d n u n g s r e c h t  -  A r t  d e r  F e s t l e g u n g
-- ------------------------------------------------------------------------------------------------------
-- Objektart = 'ax_bauraumoderbodenordnungsrecht'
-- alter Name: ax_bauraumoderbodenordnungsrecht_artderfestlegung
DROP TABLE v_baurecht_adf; 
CREATE TABLE v_baurecht_adf (
	wert        integer, 
	bezeichner  character varying,
	CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE  v_baurecht_adf 
IS 'Bau-, Raum- oder Bodenordnungsrecht, Spalte: Art der Festlegung - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_bauraumoderbodenordnungsrecht", Feld "artderfestlegung".';

COMMENT ON COLUMN v_baurecht_adf.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_baurecht_adf.bezeichner IS 'Lange Bezeichnung';

INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1700,'Festlegung nach Baugesetzbuch - Allgemeines Städtebaurecht');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1710,'Bebauungsplan');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1720,'Veränderungssperre nach Baugesetzbuch');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1730,'Vorkaufrechtssatzung');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1740,'Enteignungsverfahren');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1750,'Umlegung nach dem BauGB');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1760,'Bauland');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1770,'Vereinfachte Umlegung');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1780,'Vorhaben- und Erschließungsplan');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1790,'Flächennutzungsplan');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1800,'Festlegung nach Baugesetzbuch - Besonderes Städtebaurecht');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1810,'Städtebauliche Entwicklungsmaßnahme');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1811,'Städtebauliche Entwicklungsmaßnahme (Beschluss zu vorbereitenden Untersuchungen gefasst)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1820,'Erhaltungssatzung');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1821,'Städtebauliches Erhaltungsgebiet');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1822,'Soziales Erhaltungsgebiet');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1823,'Erhaltungsgebiet zur städtebaulichen Umstrukturierung');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1824,'Soziales Erhaltungsgebiet (Aufstellungsbeschluss gefasst)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1830,'Städtebauliche Gebote');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1840,'Sanierung');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1841,'Sanierung (Beschluss zu vorbereitenden Untersuchungen gefasst)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (1900,'Wohnungsbauerleichterungsgesetz');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2100,'Flurbereinigungsgesetz');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2110,'Flurbereinigung (Par. 1, 37 FlurbG)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2120,'Vereinfachtes Flurbereinigungsverfahren (Par. 86 FlurbG)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2130,'Unternehmensflurbereinigung (nach Par. 87 oder 90 FlurbG)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2140,'Beschleunigtes Zusammenlegungsverfahren (Par. 91 FlurbG)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2150,'Freiwilliger Landtausch (Par. 103a FlurbG)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2160,'Verfahren nach dem Gemeinheitsteilungsgesetz');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2170,'Verfahren nach dem Gemeinschaftswaldgesetz');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2180,'Freiwilliger Nutzungstausch');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2200,'Verfahren nach dem Landwirtschaftsanpassungsgesetz');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2210,'Flurneuordnung');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2220,'Freiwilliger Landtausch (Par. 54 LwAnpG)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2230,'Bodenordnungsverfahren (Par. 56 LwAnpG)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2240,'Zusammenführung von Boden- und Gebäudeeigentum (Par. 64 LwAnpG)');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2300,'Bodensonderungsgesetz');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2310,'Unvermessenes Eigentum');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2320,'Unvermessenes Nutzungsrecht');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2330,'Ergänzende Bodenneuordnung');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2340,'Komplexe Bodenneuordnung');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2400,'Vermögenszuordnungsgesetz');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2410,'Vermögenszuordnung nach Plan');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2411,'Vermögenszuordnung nach dem Aufteilungsplan');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2412,'Vermögenszuordnung nach dem Zuordnungsplan');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2500,'Landesraumordnungsgesetz');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2510,'Wasservorranggebiete');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2600,'Bauordnung');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2610,'Baulast');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2611,'Begünstigende Baulast');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2612,'Belastende Baulast');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2700,'Grenzfeststellungsverfahren nach Hamb. Wassergesetz');
INSERT INTO v_baurecht_adf (wert, bezeichner) VALUES (2800,'Verkehrsflächenbereinigung');


-- B o d e n s c h a e t z u n g -  K u l t u r a r t
-- --------------------------------------------------
-- alter Name: ax_bodenschaetzung_kulturart
DROP TABLE v_bschaetz_kulturart;
CREATE TABLE v_bschaetz_kulturart (
    wert integer,
	kurz character varying,
    bezeichner character varying,
    CONSTRAINT [REDACTED] PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_bschaetz_kulturart 
 IS 'Bodenschätzung, Spalte: Kulturart - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_bodenschaetzung", Feld "kulturart".';

COMMENT ON COLUMN v_bschaetz_kulturart.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_bschaetz_kulturart.kurz       IS 'Kürzel';
COMMENT ON COLUMN v_bschaetz_kulturart.bezeichner IS 'Lange Bezeichnung';

INSERT INTO v_bschaetz_kulturart (wert, kurz, bezeichner) VALUES (1000,'A'  , 'Ackerland (A)');
INSERT INTO v_bschaetz_kulturart (wert, kurz, bezeichner) VALUES (2000,'AGr', 'Acker-Grünland (AGr)');
INSERT INTO v_bschaetz_kulturart (wert, kurz, bezeichner) VALUES (3000,'Gr' , 'Grünland (Gr)');
INSERT INTO v_bschaetz_kulturart (wert, kurz, bezeichner) VALUES (4000,'GrA', 'Grünland-Acker (GrA)');


-- B o d e n s c h a e t z u n g  -  B o d e n a r t
-- -------------------------------------------------
-- alter Name: ax_bodenschaetzung_bodenart
DROP TABLE v_bschaetz_bodenart;
CREATE TABLE v_bschaetz_bodenart (
    wert integer,
    kurz character varying,
    bezeichner character varying,
    CONSTRAINT [REDACTED] PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_bschaetz_bodenart 
 IS 'Bodenschätzung, Spalte: Bodenart - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_bodenschaetzung", Feld "bodenart".';

COMMENT ON COLUMN v_bschaetz_bodenart.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_bschaetz_bodenart.kurz       IS 'Kürzel, Kartenanzeige';
COMMENT ON COLUMN v_bschaetz_bodenart.bezeichner IS 'Lange Bezeichnung';

INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (1100,'S',     'Sand (S)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (2100,'lS',    'Lehmiger Sand (lS)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (3100,'L',     'Lehm (L)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (4100,'T',     'Ton (T)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (5000,'Mo',    'Moor (Mo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (1200,'Sl',    'Anlehmiger Sand (Sl)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (2200,'SL',    'Stark lehmiger Sand (SL)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (3200,'sL',    'Sandiger Lehm (sL)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (4200,'LT',    'Schwerer Lehm (LT)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (6110,'SMo',   'Sand, Moor (SMo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (6120,'lSMo',  'Lehmiger Sand, Moor (lSMo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (6130,'LMo',   'Lehm, Moor (LMo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (6140,'TMo',   'Ton, Moor (TMo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (6210,'MoS',   'Moor,Sand (MoS)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (6220,'MolS',  'Moor, Lehmiger Sand (MolS)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (6230,'MoL',   'Moor, Lehm (MoL)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (6240,'MoT',   'Moor, Ton (MoT)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7110,'S/sL',  'Sand auf sandigem Lehm (S/sL)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7130,'S/LT',  'Sand auf schwerem Lehm (S/LT)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7210,'Sl/L',  'Anlehmiger Sand auf Lehm (Sl/L)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7220,'Sl/LT', 'Anlehmiger Sand auf schwerem Lehm (Sl/LT)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7230,'Sl/T',  'Anlehmiger Sand auf Ton (Sl/T)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7310,'lS/LT', 'Lehmiger Sand auf schwerem Lehm (lS/LT)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7320,'lS/S',  'Lehmiger Sand auf Sand (lS/S)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7400,'SL/T)', 'Stark lehmiger Sand auf Ton (SL/T)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7510,'T/SL',  'Ton auf stark lehmigen Sand (T/SL)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7530,'T/Sl',  'Ton auf anlehmigen Sand (T/Sl)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7610,'LT/lS', 'Schwerer Lehm auf lehmigen Sand (LT/lS)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7620,'LT/Sl', 'Schwerer Lehm auf anlehmigen Sand (LT/Sl)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7630,'LT/S',  'Schwerer Lehm auf Sand (LT/S)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7710,'L/Sl',  'Lehm auf anlehmigen Sand (L/Sl)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7800,'sL/S',  'Sandiger Lehm auf Sand (sL/S)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7120,'S/L',   'Sand auf Lehm (S/L)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7140,'S/T',   'Sand auf Ton (S/T)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7330,'lS/T',  'Lehmiger Sand auf Ton (lS/T)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7520,'T/lS',  'Ton auf lehmigen Sand (T/lS)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7540,'T/S',   'Ton auf Sand (T/S)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (7720,'L/S',   'Lehm auf Sand (L/S)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (8110,'S/Mo',  'Sand auf Moor (S/Mo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (8120,'lS/Mo', 'Lehmiger Sand auf Moor (lS/Mo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (8130,'L/Mo',  'Lehm auf Moor (L/Mo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (8140,'T/Mo',  'Ton auf Moor (T/Mo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (8210,'Mo/S',  'Moor auf Sand (Mo/S)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (8220,'Mo/lS', 'Moor auf lehmigen Sand (Mo/lS)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (8230,'Mo/L',  'Moor auf Lehm (Mo/L)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (8240,'Mo/T',  'Moor auf Ton (Mo/T)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9120,'L+Mo',  'Bodenwechsel vom Lehm zu Moor (L+Mo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9130,'lSg',   'Lehmiger Sand mit starkem Steingehalt (lSg)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9140,'Lg',    'Lehm mit starkem Steingehalt (Lg)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9150,'lS+St', 'lehmiger Sand mit Steinen und Blöcken (lS+St)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9160,'L+St',  'Lehm mit Steinen und Blöcken (L+St)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9170,'St+lS', 'Steine und Blöcke mit lehmigem Sand (St+lS)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9180,'St+L',  'Steine und Blöcke mit Lehm (St+L)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9190,'lS+Fe', 'lehmiger Sand mit Felsen (lS+Fe)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9200,'L+Fe',  'Lehm mit Felsen (L+Fe)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9210,'Fe+lS', 'Felsen mit lehmigem Sand (Fe+lS)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9220,'Fe+L',  'Felsen mit Lehm (Fe+L)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9310,'S/lS',  'Sand auf lehmigen Sand (S/lS)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9320,'Sl/Me', 'Anlehmiger Sand auf Mergel (Sl/Me)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9330,'Sl/sL', 'Anlehmiger Sand auf sandigem Lehm (Sl/sL)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9340,'lS/L',  'Lehmiger Sand auf Lehm (lS/L)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9350,'lS/Me', 'Lehmiger Sand auf Mergel (lS/Me)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9360,'lS/sL', 'Lehmiger Sand auf sandigem Lehm (lS/sL)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9370,'lSMe',  'Lehmiger Sand, Mergel (lSMe)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9380,'lSMo/Me','Lehmiger Sand, Moor auf Mergel (lSMo/Me)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9390,'SlMo',  'Anlehmiger Sand, Moor (SlMo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9410,'L/Me',  'Lehm auf Mergel (L/Me)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9420,'LMo/Me','Lehm, Moor auf Mergel (LMo/Me)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9430,'LT/Mo', 'Schwerer Lehm auf Moor (LT/Mo)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9440,'T/Me',  'Ton auf Mergel (T/Me)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9450,'Mo/Me', 'Moor auf Mergel (Mo/Me)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9460,'MoL/Me','Moor, Lehm auf Mergel (MoL/Me)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9470,'MoMe',  'Moor, Mergel (MoMe)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9480,'LöD',   'LößDiluvium (LöD)');
INSERT INTO v_bschaetz_bodenart (wert, kurz, bezeichner) VALUES (9490,'AlD',   'AlluviumDiluvium (AlD)');


-- B o d e n s c h a e t z u n g  -  Z u s t a n d s s t u f e
-- ------------------------------------------------------------
-- alter Name: ax_bodenschaetzung_zustandsstufe
DROP TABLE v_bschaetz_zustandsstufe; 
CREATE TABLE v_bschaetz_zustandsstufe (
    wert integer,
    kurz character varying,
    bezeichner character varying,
    CONSTRAINT [REDACTED] PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_bschaetz_zustandsstufe 
 IS 'Bodenschätzung, Spalte: Zustandsstufe - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_bodenschaetzung", Feld "zustandsstufe".';

COMMENT ON COLUMN v_bschaetz_zustandsstufe.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_bschaetz_zustandsstufe.kurz       IS 'Kürzel, Kartenanzeige';
COMMENT ON COLUMN v_bschaetz_zustandsstufe.bezeichner IS 'Lange Bezeichnung';

INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (1100,'1','Zustandsstufe (1)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (1200,'2','Zustandsstufe (2)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (1300,'3','Zustandsstufe (3)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (1400,'4','Zustandsstufe (4)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (1500,'5','Zustandsstufe (5)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (1600,'6','Zustandsstufe (6)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (1700,'7','Zustandsstufe (7)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (1800,'-','Zustandsstufe Misch- und Schichtböden sowie künstlichveränderte Böden (-)');

INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (2100,'I','Bodenstufe (I)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (2200,'II','Bodenstufe (II)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (2300,'III','Bodenstufe (III)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (2400,'-','Bodenstufe Misch- und Schichtböden sowie künstlich veränderte Böden (-)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (3100,'II+III','Bodenstufe (II+III)');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (3200,'(III)','Bodenstufe ("(III)")');
INSERT INTO v_bschaetz_zustandsstufe (wert, kurz, bezeichner) VALUES (3300,'IV','Bodenstufe (IV)');


-- B o d e n s c h a e t z u n g   -  Muster-, Landesmuster- und Vergleichsstueck
-- ------------------------------------------------------------------------------
-- alter Name: ax_musterlandesmusterundvergleichsstueck_merkmal
DROP TABLE v_muster_merkmal; 
CREATE TABLE v_muster_merkmal (
    wert integer,
    kurz character varying,
    bezeichner character varying,
    CONSTRAINT [REDACTED] PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_muster_merkmal 
 IS 'Muster-, Landesmuster- und Vergleichsstück, Spalte: Merkmal - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_musterlandesmusterundvergleichsstueck", Feld "merkmal".';

COMMENT ON COLUMN v_muster_merkmal.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_muster_merkmal.kurz       IS 'Kürzel, Kartenanzeige';
COMMENT ON COLUMN v_muster_merkmal.bezeichner IS 'Lange Bezeichnung';

INSERT INTO v_muster_merkmal (wert, kurz, bezeichner) VALUES (1000,'M','Musterstück (M)');
INSERT INTO v_muster_merkmal (wert, kurz, bezeichner) VALUES (2000,'L','Landesmusterstück (L)');
INSERT INTO v_muster_merkmal (wert, kurz, bezeichner) VALUES (3000,'V','Vergleichsstück (V)');


-- B o d e n s c h a e t z u n g  -  Grabloch der Bodenschaetzung
-- --------------------------------------------------------------
-- alter Name: ax_grablochderbodenschaetzung_bedeutung
DROP TABLE v_grabloch_bedeutg; 
CREATE TABLE v_grabloch_bedeutg (
    wert integer,
    bezeichner character varying,
    CONSTRAINT [REDACTED] PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_grabloch_bedeutg
 IS 'Grabloch der Bodenschätzung, Spalte: Bedeutung - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_grablochderbodenschaetzung", Feld "bedeutung".';

COMMENT ON COLUMN v_grabloch_bedeutg.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_grabloch_bedeutg.bezeichner IS 'Lange Bezeichnung';

INSERT INTO v_grabloch_bedeutg (wert, bezeichner) VALUES (1100, 'Grabloch, bestimmend, lagerichtig (innerhalb der Fläche)');
INSERT INTO v_grabloch_bedeutg (wert, bezeichner) VALUES (1200, 'Grabloch, bestimmend, lagerichtig (außerhalb des Abschnitts)');
INSERT INTO v_grabloch_bedeutg (wert, bezeichner) VALUES (1300, 'Grabloch, nicht lagerichtig, im Abschnitt nicht vorhanden');
INSERT INTO v_grabloch_bedeutg (wert, bezeichner) VALUES (2000, 'Grabloch für Muster-, Landesmuster-, Vergleichsstück');
INSERT INTO v_grabloch_bedeutg (wert, bezeichner) VALUES (3000, 'Grabloch, nicht bestimmend');


-- B o d e n s c h a e t z u n g   -  Entstehungsart oder Klimastufe / Wasserverhaeltnisse
-- ----------------------------------------------------------------------------------------
-- alter Name: ax_bodenschaetzung_entstehungsartoderklimastufe
DROP TABLE v_bschaetz_entsteh_klima;
CREATE TABLE v_bschaetz_entsteh_klima (
    wert integer,
    kurz character varying,
    bezeichner character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_bschaetz_entsteh_klima
 IS 'Bodenschätzung, Spalte: Entstehungsart oder Klimastufe - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_bodenschaetzung", Feld "entstehungsartoderklimastufe".';

COMMENT ON COLUMN v_bschaetz_entsteh_klima.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_bschaetz_entsteh_klima.kurz       IS 'Kürzel, Kartenanzeige';
COMMENT ON COLUMN v_bschaetz_entsteh_klima.bezeichner IS 'Lange Bezeichnung';


INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1000,'D',   'Diluvium (D)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1100,'DAl', 'Diluvium über Alluvium (DAl)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1200,'DLö', 'Diluvium über Löß (DLö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1300,'DV',  'Diluvium über Verwitterung (DV)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1400,'Dg',  'Diluvium, gesteinig (Dg)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1410,'DgAl','Diluvium, gesteinig über Alluvium (DgAl)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1420,'DgLö','Diluvium, gesteinig über Löß (DgLö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1430,'DgV', 'Diluvium, gesteinig über Verwitterung (DgV)');

INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2000,'Lö',  'Löß (Lö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2100,'LöD', 'Löß über Diluvium (LöD)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2110,'LöDg','Löß, Diluvium, Gesteinsböden (LöDg)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2120,'LöDV','Löß, Diluvium, Verwitterung (LöDV)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2200,'LöAl','Löß über Alluvium (LöAl)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2300,'LöV', 'Löß über Verwitterung (LöV)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2310,'LöVg','Löß, Verwitterung, Gesteinsböden (LöVg)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2400,'LöVg','Löß über Verwitterung, gesteinig (LöVg)');

INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3000,'Al',  'Alluvium (Al)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3100,'AlD', 'Alluvium über Diluvium (AlD)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3200,'AlLö','Alluvium über Löß (AlLö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3300,'AlV', 'Alluvium über Verwitterung (AlV)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3400,'Alg', 'Alluvium, gesteinig (Alg)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3410,'AlgD','Alluvium, gesteinig über Diluvium (AlgD)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3420,'AlgLö','Alluvium, gesteinig über Löß (AlgLö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3430,'AlgV','Alluvium, gesteinig über Verwitterung (AlgV)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3500,'AlMa','Alluvium, Marsch (AlMa)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3610,'AlMo','Alluvium, Moor (AlMo)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3620,'MoAI','Moor, Alluvium (MoAI)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3700,'Me',  'Mergel (Me)');

INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4000,'V',   'Verwitterung (V)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4100,'VD',  'Verwitterung über Diluvium (VD)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4200,'VAl', 'Verwitterung über Alluvium (VAl)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4300,'VLö', 'Verwitterung über Löß (VLö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4400,'Vg',  'Verwitterung, Gesteinsböden (Vg)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4410,'VgD', 'Verwitterung, Gesteinsböden über Diluvium (VgD)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(5000,'-',   'Entstehungsart nicht erkennbar (-)');

INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(6100,'a',   'Klimastufe 8° C und darüber (a)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(6200,'b',   'Klimastufe 7,9° - 7,0° C (b)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(6300,'c',   'Klimastufe 6,9° - 5,7° C (c)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(6400,'d',   'Klimastufe 5,6° C und darunter (d)');

INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7100,'1',   'Wasserstufe (1)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7200,'2',   'Wasserstufe (2)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7300,'3',   'Wasserstufe (3)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7400,'4',   'Wasserstufe (4)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7410,'4-',  'Wasserstufe (4-)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7500,'5',   'Wasserstufe (5)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7510,'5-',  'Wasserstufe (5-)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7520,'3-',  'Wasserstufe (3-)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7530,'3+4', 'Wasserstufe (3+4)');


-- B o d e n s c h a e t z u n g   -  sonstige Angaben
-- ---------------------------------------------------
-- alter Name: ax_bodenschaetzung_sonstigeangaben
DROP TABLE v_bschaetz_sonst;
CREATE TABLE v_bschaetz_sonst (
    wert integer,
    kurz character varying,
    bezeichner character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_bschaetz_sonst
 IS 'Bodenschätzung, Spalte: sonstige Angaben - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_bodenschaetzung", Feld "sonstigeangaben".';

COMMENT ON COLUMN v_bschaetz_sonst.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_bschaetz_sonst.kurz       IS 'Kürzel, Kartenanzeige';
COMMENT ON COLUMN v_bschaetz_sonst.bezeichner IS 'Lange Bezeichnung';

INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(1100,'Wa+',   'Nass, zu viel Wasser (Wa+)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(1200,'Wa-',   'Trocken, zu wenig Wasser (Wa-)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(1300,'Wa gt', 'Besonders günstige Wasserverhältnisse (Wa gt)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(1400,'RiWa',  'Rieselwasser, künstliche Bewässerung (RiWa)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(2100,'W',     'Unbedingtes Wiesenland (W)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(2200,'Str',   'Streuwiese (Str) ');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(2300,'Hu',    'Hutung (Hu)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(2400,'A-Hack','Acker-Hackrain (A-Hack)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(2500,'Gr-Hack','Grünland-Hackrain (Gr-Hack)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(2600,'G',     'Garten (G)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(3000,'N',     'Neukultur (N)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(4000,'T',     'Tiefkultur (T) ');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(5000,'Ger',   'Geringstland (Ger)');
INSERT INTO v_bschaetz_sonst (wert, kurz, bezeichner) VALUES(9000,'',      'Nachschätzung erforderlich ');

-- Testfall dazu finden:
-- SELECT gml_id, sonstigeangaben, x(st_Centroid(wkb_geometry)) AS x, y(st_Centroid(wkb_geometry)) AS y 
--  FROM ax_bodenschaetzung WHERE NOT sonstigeangaben[1] IS NULL LIMIT 10; -- NOT sonstigeangaben[2] IS NULL


-- B e w e r t u n g  - Klassifizierung
-- ------------------------------------
-- alter Name: ax_bewertung_klassifizierung
DROP TABLE v_bewertg_klass;
CREATE TABLE v_bewertg_klass (
    wert integer,
    bezeichner character varying,
    erklaer character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_bewertg_klass
IS 'Bewertung, Spalte: Klassifizierung - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_bewertung", Feld "klassifizierung".';

COMMENT ON COLUMN v_bewertg_klass.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_bewertg_klass.bezeichner IS 'Lange Bezeichnung';
COMMENT ON COLUMN v_bewertg_klass.erklaer    IS 'ggf. weitere Erlärung';

INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1100, 'Unbebautes Grundstück', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1120, 'Unbebautes Grundstück mit Gebäude von untergeordneter Bedeutung ', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1130, 'Unbebautes Grundstück mit einem dem Verfall preisgegebenen Gebäude', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1140, 'Unbebautes Grundstück für Erholungs- und Freizeitzwecke', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1210, 'Einfamilienhausgrundstück', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1220, 'Zweifamilienhausgrundstück', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1230, 'Mietwohngrundstück', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1240, 'Gemischtgenutztes Grundstück', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1250, 'Geschäftsgrundstück', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1260, 'Sonstiges bebautes Grundstück', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1310, 'Einfamilienhaus auf fremdem Grund und Boden', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1320, 'Zweifamilienhaus auf fremdem Grund und Boden', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1330, 'Mietwohngrundstück, Mietwohngebäude auf fremdem Grund und Boden', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1340, 'Gemischtgenutztes Grundstück, gemischtgenutztes Gebäude auf fremdem Grund und Boden ', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1350, 'Geschäftsgrundstück, Geschäftsgebäude auf fremdem Grund und Boden', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(1360, 'Sonstige bebaute Grundstücke, sonstige Gebäude auf fremdem Grund und Boden', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2110, 'Landwirtschaftliche Nutzung', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2120, 'Hopfen', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2130, 'Spargel', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2190, 'Sonstige Sonderkulturen', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2200, 'Holzung', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2300, 'Weingarten (allgemein)', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2310, 'Weingarten 1', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2320, 'Weingarten 2', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2330, 'Weingarten 3', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2340, 'Weingarten 4', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2350, 'Weingarten 5', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2360, 'Weingarten 6', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2370, 'Weingarten 7', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2380, 'Weingarten 8', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2390, 'Weingarten 9', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2410, 'Gartenland', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2420, 'Obstplantage', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2430, 'Baumschule', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2440, 'Anbaufläche unter Glas ', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2450, 'Kleingarten', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2510, 'Weihnachtsbaumkultur', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2520, 'Saatzucht', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2530, 'Teichwirtschaft', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2610, 'Abbauland der Land- und Forstwirtschaft ', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2620, 'Geringstland', '"Geringstland" sind Flächen geringster Ertragsfähigkeit ohne Wertzahlen nach dem Bodenschätzungsgesetz, das sind unkultivierte Moor- und Heideflächen (sofern nicht gesondert geführt), ehemals bodengeschätzte Flächen und ehemalige Weinbauflächen, die ihren Kulturzustand verloren haben.');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2630, 'Unland',   '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2640, 'Moor',     '"Moor" ist eine unkultivierte Fläche mit einer (mindestens 20 cm starken) Auflage aus vertorften und vermoorten Pflanzenresten, soweit sie nicht als Torfstich benutzt wird.');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2650, 'Heide',    '"Heide" ist eine unkultivierte, sandige, überwiegend mit Heidekraut oder Ginster bewachsene Fläche.');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2700, 'Reet',     '"Reet" ist eine ständig oder zeitweise unter Wasser stehende und mit Reet bewachsene Fläche.');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2710, 'Reet I',   'Reetfläche, deren Nutzung eingestuft ist in Güteklasse I (gut).');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2720, 'Reet II',  'Reetfläche, deren Nutzung eingestuft ist in Güteklasse II (mittel).');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2730, 'Reet III', 'Reetfläche, deren Nutzung eingestuft ist in Güteklasse III (gering).');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2800, 'Nebenfläche des Betriebs der Land- und Forstwirtschaft', '');
INSERT INTO v_bewertg_klass (wert, bezeichner, erklaer) VALUES(2899, 'Noch nicht klassifiziert', '');


-- F o r s t r e c h t  -  A r t   d e r   F e s t l e g u n g
-- -----------------------------------------------------------
-- alter Name: ax_forstrecht_artderfestlegung
DROP TABLE v_forstrecht_adf; 
CREATE TABLE v_forstrecht_adf (
    wert integer,
    bezeichner character varying,
    CONSTRAINT pk_v_forst_adf_w  PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_forstrecht_adf
IS 'Forstrecht, Spalte: Art der Festlegung - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_forstrecht_adf (bezeichner, wert) VALUES('Klassifizierung nach Bundes- oder Landeswaldgesetz',3900);
INSERT INTO v_forstrecht_adf (bezeichner, wert) VALUES('Staatswald Bund',3910);
INSERT INTO v_forstrecht_adf (bezeichner, wert) VALUES('Staatswald Land',3920);
INSERT INTO v_forstrecht_adf (bezeichner, wert) VALUES('Kommunalwald',3930);
INSERT INTO v_forstrecht_adf (bezeichner, wert) VALUES('Anstalts- und Stiftungswald',3940);
INSERT INTO v_forstrecht_adf (bezeichner, wert) VALUES('Anderer öffentlicher Wald',3950);
INSERT INTO v_forstrecht_adf (bezeichner, wert) VALUES('Privater Gemeinschaftswald',3960);
INSERT INTO v_forstrecht_adf (bezeichner, wert) VALUES('Großprivatwald',3970);
INSERT INTO v_forstrecht_adf (bezeichner, wert) VALUES('Kleinprivatwald',3980);
INSERT INTO v_forstrecht_adf (bezeichner, wert) VALUES('Anderer Privatwald',3990);


-- F o r s t r e c h t - B e s o n d e r e   F u n k t i o n
-- ---------------------------------------------------------
-- alter Name: ax_forstrecht_besonderefunktion
DROP TABLE v_forstrecht_besfkt; 
CREATE TABLE v_forstrecht_besfkt(
    wert integer,
    bezeichner character varying,
    CONSTRAINT [REDACTED] PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_forstrecht_besfkt
IS 'Forstrecht, Spalte: besondere Funktion - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Ohne besondere gesetzliche Bindung',1000);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Ohne besondere gesetzliche Bindung nach LWaldG- Holzboden',1010);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Schutzwald',2000);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Schutzwald - Holzboden',2010);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Erholungswald',3000);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Erholungswald - Holzboden',3010);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Bannwald',4000);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Nationalpark - Holzboden',4010);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Naturschutzgebiet - Holzboden',5010);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Schutz- und Erholungswald',6000);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Schutz- und Erholungswald - Holzboden',6010);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Nationalpark - Nichtholzboden',7010);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Naturschutzgebiet - Nichtholzboden',8010);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Andere Forstbetriebsfläche',9000);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Nichtholzboden',9010);
INSERT INTO v_forstrecht_besfkt (bezeichner, wert) VALUES('Sonstiges',9999);


-- D a t e n e r h e b u n g
-- -------------------------
-- Datentyp: AX_LI_Source_MitDatenerhebung
-- alter Name: ax_datenerhebung
DROP TABLE v_datenerhebung; 
CREATE TABLE v_datenerhebung (
    wert integer,
    bezeichner character varying,
    CONSTRAINT pk_v_derhebung_w PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_datenerhebung
IS 'Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus Katastervermessung ermittelt', 1000); -- (G)
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aufgrund Anforderungen mit Netzanschluss ermittelt', 1100);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aufgrund Anforderungen mit Bezug zur Flurstücksgrenze ermittelt', 1200);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstiger Vermessung ermittelt', 1900);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus Luftbildmessung oder Fernerkundungsdaten ermittelt', 2000);-- 	
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus Katasterunterlagen und Karten für graphische Zwecke ermittelt', 4000);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus Katasterzahlen für graphische Zwecke ermittelt', 4100);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus Katasterkarten digitalisiert', 4200);-- (G)
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus Katasterkarten digitalisiert, Kartenmaßstab M größer gleich 1 zu 1000', 4210);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus Katasterkarten digitalisiert, Kartenmaßstab 1 zu 1000 größer M größer gleich 1 zu 2000', 4220);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus Katasterkarten digitalisiert, Kartenmaßstab 1 zu 2000 größer M größer gleich 1 zu 3000', 4230);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus Katasterkarten digitalisiert, Kartenmaßstab 1 zu 3000 größer M größer gleich 1 zu 5000', 4240);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus Katasterkarten digitalisiert, Kartenmaßstab 1 zu 5000 größer M', 4250);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstigen Unterlagen digitalisiert', 4300);-- (G)
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstigen Unterlagen digitalisiert, Kartenmaßstab M größer gleich 1 zu 1000', 4310);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstigen Unterlagen digitalisiert, Kartenmaßstab 1 zu 1000 größer M größer gleich 1 zu 2000', 4320);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstigen Unterlagen digitalisiert, Kartenmaßstab 1 zu 2000 größer M größer gleich 1 zu 3000', 4330);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstigen Unterlagen digitalisiert, Kartenmaßstab 1 zu 3000 größer M größer gleich 1 zu 5000', 4340);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstigen Unterlagen digitalisiert, Kartenmaßstab 1 zu 5000 größer M', 4350);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstigen Unterlagen digitalisiert, mit sonstigen geometrischen Bedingungen und bzw. oder Homogenisierung (M größer gleich 1 zu 1000)', 4360);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstigen Unterlagen digitalisiert, mit Berechnung oder Abstandsbedingung (M größer gleich 1 zu 1000)', 4370);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstigen Unterlagen digitalisiert, mit sonstigen geometrischen Bedingungen und bzw. oder Homogenisierung (M kleiner 1 zu 1000)', 4380);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Aus sonstigen Unterlagen digitalisiert, mit Berechnung oder Abstandsbedingungen (M kleiner 1 zu 1000)', 4390);
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Nach Quellenlage nicht zu spezifizieren', 9998);--  (G)
INSERT INTO v_datenerhebung (bezeichner, wert) VALUES('Sonstiges', 9999);


-- Sonstiges Bauwerk oder sonstige Einrichtung - Bauwerksfunktion
-- --------------------------------------------------------------
-- alter Name: ax_sonstigesbauwerkodersonstigeeinrichtung_bauwerksfunktion
DROP TABLE v_sbauwerk_bwfkt; 
CREATE TABLE v_sbauwerk_bwfkt (
    wert integer,
    bezeichner character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_sbauwerk_bwfkt
IS 'Sonstiges Bauwerk oder sonstige Einrichtung, Spalte: Bauwerksfunktion - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Überdachung',1610);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Carport',1611);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Treppe',1620);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Freitreppe',1621);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Rolltreppe',1622);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Treppenunterkante',1630);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Kellereingang',1640);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Rampe',1650);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Terrasse',1670);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Mauer',1700);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Mauerkante, rechts',1701);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Mauerkante, links',1702);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Mauermitte',1703);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Stützmauer',1720);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Stützmauer, rechts',1721);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Stützmauer, links',1722);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Stützmauermitte',1723);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Zaun',1740);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Denkmal, Denkstein, Standbild',1750);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Bildstock, Wegekreuz, Gipfelkreuz',1760);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Bildstock',1761);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Wegekreuz',1762);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Gipfelkreuz',1763);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Meilenstein, historischer Grenzstein',1770);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Brunnen',1780);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Brunnen (Trinkwasserversorgung)',1781);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Springbrunnen, Zierbrunnen',1782);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Ziehbrunnen',1783);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Spundwand',1790);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Höckerlinie',1791);
INSERT INTO v_sbauwerk_bwfkt (bezeichner, wert) VALUES ('Sonstiges',9999);


-- Bauteil - Bauart
-- -------------------------
-- alter Name: ax_bauteil_bauart
DROP TABLE v_bauteil_bauart; 
CREATE TABLE v_bauteil_bauart (
    wert integer, 
    bezeichner character varying,  
    kennung integer,
    objektart character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_bauteil_bauart
IS 'Bauteil, Spalte: Bauart - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (1100,'Geringergeschossiger Gebäudeteil',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (1200,'Höhergeschossiger Gebäudeteil (nicht Hochhaus)',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (1300,'Hochhausgebäudeteil',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (1400,'Abweichende Geschosshöhe',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2000,'Keller',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2100,'Tiefgarage',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2300,'Loggia',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2350,'Wintergarten',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2400,'Arkade',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2500,'Auskragende/zurückspringende Geschosse',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2510,'Auskragende Geschosse',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2520,'Zurückspringende Geschosse',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2610,'Durchfahrt im Gebäude',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2620,'Durchfahrt an überbauter Verkehrsstraße',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2710,'Schornstein im Gebäude',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (2720,'Turm im Gebäude',31002,'ax_bauteil');
INSERT INTO v_bauteil_bauart (wert, bezeichner,kennung,objektart) VALUES (9999,'Sonstiges',31002,'ax_bauteil');


-- Klassifizierung nach Straßenrecht - Art der Festlegung 
-- ------------------------------------------------------
-- alter Name: ax_klassifizierungnachstrassenrecht_artdf
DROP TABLE v_klass_strass_adf; 
CREATE TABLE v_klass_strass_adf (
    wert integer, 
    bezeichner character varying,  
    kennung integer, 
    objektart character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_klass_strass_adf
IS 'Klassifizierung nach Straßenrecht, Spalte: Art der Festlegung - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_klass_strass_adf (bezeichner, wert) VALUES ('Klassifizierung nach Bundes- oder Landesstraßengesetz',1100);
INSERT INTO v_klass_strass_adf (bezeichner, wert) VALUES ('Bundesautobahn',1110);
INSERT INTO v_klass_strass_adf (bezeichner, wert) VALUES ('Bundesstraße',1120);
INSERT INTO v_klass_strass_adf (bezeichner, wert) VALUES ('Landes- oder Staatsstraße',1130);
INSERT INTO v_klass_strass_adf (bezeichner, wert) VALUES ('Kreisstraße',1140);
INSERT INTO v_klass_strass_adf (bezeichner, wert) VALUES ('Gemeindestraße',1150);
INSERT INTO v_klass_strass_adf (bezeichner, wert) VALUES ('Ortsstraße',1160);
INSERT INTO v_klass_strass_adf (bezeichner, wert) VALUES ('Gemeindeverbindungsstraße',1170);
INSERT INTO v_klass_strass_adf (bezeichner, wert) VALUES ('Sonstige öffentliche Straße',1180);
INSERT INTO v_klass_strass_adf (bezeichner, wert) VALUES ('Privatstraße',1190);


-- Klassifizierung nach Wasserrecht - Art der Festlegung
-- ----------------------------------------------------
-- alter Name: ax_klassifizierungnachwasserrecht_artdf
DROP TABLE v_klass_wasser_adf; 
CREATE TABLE v_klass_wasser_adf (
    wert integer, 
    bezeichner character varying,  
    kennung integer,
    objektart character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_klass_wasser_adf
IS 'Klassifizierung nach Wasserrecht, Spalte: Art der Festlegung - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_klass_wasser_adf (bezeichner, wert) VALUES ('Klassifizierung nach Bundes- oder Landeswassergesetz',1300);
INSERT INTO v_klass_wasser_adf (bezeichner, wert) VALUES ('Gewässer I. Ordnung - Bundeswasserstraße',1310);
INSERT INTO v_klass_wasser_adf (bezeichner, wert) VALUES ('Gewässer I. Ordnung - nach Landesrecht',1320);
INSERT INTO v_klass_wasser_adf (bezeichner, wert) VALUES ('Gewässer II. Ordnung',1330);
INSERT INTO v_klass_wasser_adf (bezeichner, wert) VALUES ('Gewässer III. Ordnung',1340);


-- Andere Festlegung nach Strassenrecht - Art der Festlegung
-- ---------------------------------------------------------
-- alter Name: ax_anderefestlegungnachstrassenrecht_artdf
DROP TABLE v_andstrass_adf; 
CREATE TABLE v_andstrass_adf (
    wert integer, 
    bezeichner character varying,  
    kennung integer,
    objektart character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_andstrass_adf
IS 'Andere Festlegung nach Strassenrecht, Spalte: Art der Festlegung - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Bundesfernstraßengesetz',1210);
INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Anbauverbot',1220);
INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Anbauverbot nach Bundesfernstraßengesetz',1230);
INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Anbauverbot (40m)',1231);
INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Anbauverbot (20m)',1232);
INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Anbaubeschränkung',1240);
INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Anbaubeschränkung (100m)',1241);
INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Anbaubeschränkung (40m)',1242);
INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Veränderungssperre nach Bundesfernstraßengesetz',1250);
INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Landesstraßengesetz',1260);
INSERT INTO v_andstrass_adf (bezeichner, wert) VALUES ('Veränderungssperre',1280);


-- Natur-, Umwelt- oder Bodenschutzrecht - Art der Festlegung
-- ----------------------------------------------------------
-- alter Name: ax_naturumweltoderbodenschutzrecht_artdf
DROP TABLE v_umweltrecht_adf; 
CREATE TABLE v_umweltrecht_adf (
    wert integer, 
    bezeichner character varying,  
    kennung integer, 
    objektart character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_umweltrecht_adf
IS 'Natur-, Umwelt- oder Bodenschutzrecht, Spalte: Art der Festlegung - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Schutzfläche nach Europarecht',610);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Flora-Fauna-Habitat-Gebiet',611);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Vogelschutzgebiet',612);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Schutzflächen nach Landesnaturschutzgesetz',620);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Naturschutzgebiet',621);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Geschützter Landschaftsbestandteil',622);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Landschaftsschutzgebiet',623);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Naturpark',624);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Bundesbodenschutzgesetz',630);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Verdachtsfläche auf schädliche Bodenveränderung',631);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Schädliche Bodenveränderung',632);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Altlastenverdächtige Fläche',633);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Altlast',634);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Bundesimmisionsschutzgesetz',640);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Belastungsgebiet',641);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Schutzbedürftiges Gebiet',642);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Gefährdetes Gebiet',643);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Naturschutzgesetz',650);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Besonders geschütztes Biotop',651);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Besonders geschütztes Feuchtgrünland',652);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Naturdenkmal',653);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Einstweilige Sicherstellung, Veränderungssperre',654);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Vorkaufsrecht',655);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Ausgleichs- oder Kompensationsfläche',656);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Bodenschutzgesetz',660);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Dauerbeobachtungsflächen',661);
INSERT INTO v_umweltrecht_adf (bezeichner, wert) VALUES ('Bodenschutzgebiet',662);


-- Denkmalschutzrecht - Art der Festlegung
-- ---------------------------------------
-- alter Name: ax_denkmalschutzrecht_artdf
DROP TABLE v_denkmal_adf; 
CREATE TABLE v_denkmal_adf (
    wert integer, 
    bezeichner character varying,  
    kennung integer,
    objektart character varying,
    CONSTRAINT pk_v_denkmal_adf_w PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_denkmal_adf
IS 'Denkmalschutzrecht, Spalte: Art der Festlegung - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Kulturdenkmal',2700);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Bau- und Kunstdenkmal nach Landesdenkmalschutzgesetz',2710);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Baudenkmal',2711);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Kunstdenkmal',2712);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Gartendenkmal',2713);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Archäologisches Denkmal (auch Bodendenkmal) nach Landesdenkmalschutzgesetz',2800);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Archäologisches Denkmal',2810);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Bodendenkmal',2820);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Schutzgebiet oder -bereiche nach Landesdenkmalschutzgesetz',2900);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Denkmalzone oder -bereich',2910);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Geschützter Baubereich',2920);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Grabungsschutzgebiet',2930);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Befestigungen',3100);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Befestigung (Burg)',3110);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Burg (Fliehburg, Ringwall)',3111);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Erdwerk',3112);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Ringwall',3113);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Steinwerk',3114);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Festung',3115);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Gräftenanlage',3116);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Schanze',3117);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Lager',3118);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Wachturm (römisch), Warte',3120);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Wachturm',3121);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Warte',3122);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Befestigung (Wall, Graben)',3130);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Grenzwall, Schutzwall',3131);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Limes',3132);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Landwehr',3133);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Stadtwall',3134);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historischer Wall',3135);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historische Siedlung',3200);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Pfahlbau',3210);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Wüstung',3220);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Wurt',3230);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Abri',3240);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Höhle',3250);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historische Bestattung',3300);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Großsteingrab (Dolmen, Hünenbett)',3310);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Grabhügel',3320);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Grabhügelfeld',3330);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Urnenfriedhof',3340);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Körpergräberfeld',3350);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Reihengräberfriedhof',3360);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historisches land- oder forstwirtschaftliches Objekt',3400);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historischer Pflanzkamp',3410);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historisches Viehgehege',3420);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Sandfang',3430);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historisches Ackersystem',3440);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historische Bergbau-, Verhüttungs- oder sonstige Produktionsstätte',3500);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historisches Bergbaurelikt',3510);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historischer Meiler',3520);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historischer Ofen',3530);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historischer Verhüttungsplatz',3540);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historische Straße oder Weg',3600);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Heerstraße',3610);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Hohlweg',3620);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Moorweg',3630);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Wegespur',3640);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historisches wasserwirtschaftliches Objekt',3700);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historische Wasserleitung',3710);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Aquädukt',3720);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historischer Deich',3730);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historischer Damm',3740);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historischer Graben',3750);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Steinmal',3800);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Schalenstein',3810);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Rillenstein',3820);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Wetzrillen',3830);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Kreuzstein',3840);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Historischer Grenzstein',3850);
INSERT INTO v_denkmal_adf (bezeichner, wert) VALUES ('Menhir',3860);


-- Sonstiges Recht - Art der Festlegung 
-- ------------------------------------
-- alter Name: ax_sonstigesrecht_artdf
DROP TABLE v_sonstrecht_adf; 
CREATE TABLE v_sonstrecht_adf (
    wert integer, 
    bezeichner character varying,  
    kennung integer,
    objektart character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_sonstrecht_adf
IS 'Sonstiges Recht, Spalte: Art der Festlegung - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script.';

INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Luftverkehrsgesetz',4100);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Bauschutzbereich',4110);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Beschränkter Bauschutzbereich',4120);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Bundeskleingartengesetz',4200);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Dauerkleingarten',4210);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Berggesetz',4300);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Bodenbewegungsgebiet',4301);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Bruchfeld',4302);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Baubeschränkung',4310);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Reichsheimstättengesetz',4400);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Reichsheimstätte',4410);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Schutzbereichsgesetz',4500);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Schutzbereich',4510);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Eisenbahnneuordnungsgesetz',4600);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Übergabebescheidverfahren',4610);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Baubeschränkungen durch Richtfunkverbindungen',4710);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Truppenübungsplatz, Standortübungsplatz',4720);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Vermessungs- und Katasterrecht',4800);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Schutzfläche Festpunkt',4810);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Schutzfläche Festpunkt, 1 m Radius',4811);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Schutzfläche Festpunkt, 2 m Radius',4812);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Schutzfläche Festpunkt, 5 m Radius',4813);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Schutzfläche Festpunkt, 10 m Radius',4814);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Schutzfläche Festpunkt, 30 m Radius',4815);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Marksteinschutzfläche',4820);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Liegenschaftskatastererneuerung',4830);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Fischereirecht',4900);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Jagdkataster',5100);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Landesgrundbesitzkataster',5200);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Bombenblindgängerverdacht',5300);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Rieselfeld',5400);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Sicherungsstreifen',5500);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Grenzbereinigung',5600);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Hochwasserdeich',5700);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Hauptdeich, 1. Deichlinie',5710);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('2. Deichlinie',5720);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Beregnungsverband',6000);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Weinlage',7000);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Weinbausteillage',7100);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Weinbergsrolle',7200);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Weinbausteilstlage',7300);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Benachteiligtes landwirtschaftliches Gebiet',8000);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Mitverwendung Hochwasserschutz, Oberirdische Anlagen',9100);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Mitverwendung Hochwasserschutz, Unterirdische Anlagen',9200);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Hafennutzungsgebiet',9300);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Hafenerweiterungsgebiet',9400);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Bohrung verfüllt',9500);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Zollgrenze',9600);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Belastung nach §7 Abs. 2 GBO',9700);
INSERT INTO v_sonstrecht_adf (bezeichner, wert) VALUES ('Sonstiges',9999);

-- ENDE --



-- =====
-- ALKIS
-- =====

--  PostNAS 0.8

--  -----------------------------------------
--  Sichten fuer Verwendung im mapfiles (wms)
--  -----------------------------------------

--  Dieses SQL sollte in jeder PostNAS-ALKIS-Datenbank verarbeitet werden, weil es vom Mapfile benötigt wird.

--  2012-04-17 flstnr_ohne_position
--  2012-04-24 pauschal Filter 'endet IS NULL' um historische Objekte auszublenden
--  2012-10-29 Redundanzen in Beziehungen suchen (entstehen durch replace)
--  2013-02-20 Mehrfache Buchungsstellen zum FS suchen, dies sind Auswirkungen eines Fehlers bei Replace
--  2013-03-05 Beschriftungen aus ap_pto auseinander sortieren, neuer View "grenzpunkt"
--  2013-03-12 Optimierung Hausnummern, View "gebaeude_txt" (Funktion und Name)
--  2013-04-15 Unterdrücken doppelter Darstellung in den Views 'ap_pto_stra', 'ap_pto_nam', 'ap_pto_rest'
--  2013-04-16 Thema "Bodenschätzung" und fehlernde Kommentare zum Views ergänzt.
--             Diese Datei aufgeteilt in "sichten.sql" und "sichten_wms.sql"
--  2013-04-22 art="PNR" (Pseudonummer)
--  2013-10-24 View ap_pto_stra wird ersetzt durch die Tabellen "pp_strassenname" und "pp_strassenklas", die im postProcessing gefüllt werden.
--  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-28 Die Tabelle "alkis_beziehungen" überflüssig machen.
--             Relationen nun direkt über neue Spalten in den Objekttabellen. 
--  2014-08-29 P- und L-Straßennamen gegenseitig ausschließen in ap_pto_stra und ap_lto_stra
--  2014-09-30 Umbenennung Schlüsseltabellen (Prefix)
--  2014-10-28 In "ap_pto_rest" keine Anzeige für Texte ohne " advstandardmodell='DKKM1000' "

-- Layer "ag_t_gebaeude"
-- ---------------------
-- Problem: Zu einigen Gebäuden gibt es mehrere Hausnummern.
-- Diese unterscheiden sich im Feld ap_pto.advstandardmodell
-- z.B. 3 verschiedene Einträge mit <NULL>, {DKKM500}, {DKKM1000}

-- Nimmt vorzugsweise den Text der Darstellung aus ap_pto (nach der Migration zunächst ibR immer gefüllt).
-- Wenn der nicht gefüllt ist, wird statt dessen die Nummer aus der verknüpften Labebezeichnung verwendet.

-- DROP VIEW IF EXISTS s_hausnummer_gebaeude;

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.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 ax_lagebezeichnungmithausnummer l       ON l.gml_id = ANY (p.dientzurdarstellungvon) 
  WHERE p.art = 'HNR'
    AND 'DKKM1000' = ANY (p.advstandardmodell) -- erste Näherungslösung um Redundanzen zu unterdrücken
    AND p.endet IS NULL
    AND l.endet IS NULL;

COMMENT ON VIEW s_hausnummer_gebaeude IS 'Sicht für Kartendarstellung: Hausnummern der Hauptgebäude.';
-- ibR: darzustellender Text steht immer in ap_pto.schriftinhalt
-- AED: ap_pto.schriftinhalt ist meist leer, nur selten ein Eintrag

-- ToDo: In PostProcessing die Hausnummer von l.hausnummer in p.schriftinhalt kopieren, wenn leer
--   Das würde die COALESCE-Trickserei ersparen

-- Layer "ag_t_nebengeb"
-- ---------------------
-- ax_gebaeude  >hat>  ax_lagebezeichnungmitpseudonummer, kein Drehwinkel.

-- DROP VIEW IF EXISTS lfdnr_nebengebaeude;

CREATE OR REPLACE VIEW lfdnr_nebengebaeude 
AS 
 SELECT g.ogc_fid, 
        g.wkb_geometry, 
        l.laufendenummer     -- umn: LABELITEM - die laufende Nummer des Nebengebaeudes
   FROM ax_gebaeude g
   JOIN ax_lagebezeichnungmitpseudonummer l
     ON g.hat = l.gml_id
   WHERE g.endet IS NULL AND l.endet IS NULL;

COMMENT ON VIEW lfdnr_nebengebaeude 
  IS 'Sicht für Kartendarstellung: Laufende Nummer des Nebengebäudes zu einer Lagebezeichnung mit der Flächengeometrie des Gebäudes';

-- Gebäude-Text
-- ------------

-- DROP VIEW IF EXISTS gebaeude_txt;

CREATE OR REPLACE VIEW gebaeude_txt 
AS 
 SELECT g.ogc_fid, 
        g.wkb_geometry,
        g.name,                    -- selten gefüllt 
        f.bezeichner AS funktion   -- umn: LABELITEM
   FROM ax_gebaeude g
   JOIN v_geb_funktion f 
     ON g.gebaeudefunktion = f.wert
  WHERE g.endet IS NULL 
    AND g.gebaeudefunktion < 9998; -- "Nach Quellenlage nicht zu spezifizieren" braucht man nicht anzeigen

COMMENT ON VIEW gebaeude_txt 
  IS 'Sicht für Kartendarstellung: Name zum Gebäude und Entschlüsselung der Gebäude-Funktion (Ersatz für Symbole)';

-- Layer "ag_p_flurstueck"
-- -----------------------

-- DROP VIEW IF EXISTS s_zugehoerigkeitshaken_flurstueck;

CREATE OR REPLACE VIEW s_zugehoerigkeitshaken_flurstueck 
AS 
 SELECT p.ogc_fid, 
        p.wkb_geometry, 
        p.drehwinkel * 57.296 AS drehwinkel
   FROM ap_ppo p
   JOIN ax_flurstueck f
     ON f.gml_id = ANY (p.dientZurDarstellungVon)  
  WHERE p.art = 'Haken'
    AND f.endet IS NULL
    AND p.endet IS NULL;

COMMENT ON VIEW s_zugehoerigkeitshaken_flurstueck 
  IS 'Sicht für Kartendarstellung: Zugehörigkeitshaken zum Flurstück.';

-- Layer "s_zuordungspfeil_flurstueck" (Signaturnummer 2004)
-- -----------------------------------

-- DROP VIEW IF EXISTS s_zuordungspfeil_flurstueck;

CREATE OR REPLACE VIEW s_zuordungspfeil_flurstueck 
AS 
 SELECT l.ogc_fid, 
        l.wkb_geometry
   FROM ap_lpo l
   JOIN ax_flurstueck f
     ON f.gml_id = ANY (l.dientZurDarstellungVon) 
  WHERE l.art = 'Pfeil'
    AND f.endet IS NULL
    AND l.endet IS NULL;

COMMENT ON VIEW s_zuordungspfeil_flurstueck 
  IS 'Sicht für Kartendarstellung: Zuordnungspfeil zur Flurstücksnummer, Liniengeometrie.';


-- DROP VIEW IF EXISTS s_zuordungspfeilspitze_flurstueck;

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 ax_flurstueck f
     ON f.gml_id = ANY (l.dientzurdarstellungvon) 
  WHERE l.art = 'Pfeil'
    AND f.endet IS NULL
    AND l.endet IS NULL;

COMMENT ON VIEW s_zuordungspfeilspitze_flurstueck 
  IS 'Sicht für Kartendarstellung: Zuordnungspfeil Flurstücksnummer, Spitze, Punktgeometrie mit Drehwinkel.';


-- Drehwinkel in Bogenmass, wird vom mapserver in Grad benötigt. Umrechnung durch Faktor (180 / Pi)

-- Zuordnungspfeil Bodenschätzung (Signaturnummer 2701)
-- ----------------------------------------------------

CREATE OR REPLACE VIEW s_zuordungspfeil_bodensch
AS 
 SELECT l.ogc_fid, 
        l.wkb_geometry
   FROM ap_lpo l
   JOIN ax_bodenschaetzung b
     ON b.gml_id = ANY (l.dientzurdarstellungvon)
  WHERE l.art = 'Pfeil'
    AND ('DKKM1000' = ANY (l.advstandardmodell))
    AND b.endet IS NULL
    AND l.endet IS NULL;

COMMENT ON VIEW s_zuordungspfeil_bodensch 
  IS 'Sicht für Kartendarstellung: Zuordnungspfeil Bodenschätzung, Liniengeometrie.';


-- DROP VIEW IF EXISTS s_zuordungspfeilspitze_bodensch;
 
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 ax_bodenschaetzung b
     ON b.gml_id = ANY (l.dientzurdarstellungvon )
  WHERE l.art = 'Pfeil'
    AND 'DKKM1000' = ANY (l.advstandardmodell)
    AND b.endet IS NULL
    AND l.endet IS NULL;

COMMENT ON VIEW s_zuordungspfeilspitze_flurstueck IS 'Sicht für Kartendarstellung: Zuordnungspfeil Bodenschätzung, Spitze, Punktgeometrie mit Drehwinkel.';


-- Layer NAME "ap_pto_stra" (Straße) GROUP "praesentation"
-- -------------------------------------------------------
-- Von doppelten Textpositionen nur das passendere Modell anzeigen.
-- Eine Relation wird fuer die Gruppierung verwendet:
--  ap_pto >dientZurDarstellungVon> ax_lagebezeichnungohnehausnummer

-- 2014-08-26: Spalte gml_id hinzugefügt.
-- Auch Zeilen mit leerem Schriftinhalt verwenden. Das wird im PostProcessing noch ergänzt. 

-- DROP VIEW IF EXISTS ap_pto_stra;

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 ax_lagebezeichnungohnehausnummer l
      ON l.gml_id = ANY (p.dientzurdarstellungvon)
   WHERE  p.endet IS NULL
     AND  p.art IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- CLASSES im LAYER
     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
               -- Alternativen zur Legebezeichnung suchen in P- und L-Version
               AND (SELECT s.ogc_fid FROM ap_lto s -- irgend ein Feld eines anderen Textes (suchen)
                      JOIN ax_lagebezeichnungohnehausnummer ls ON ls.gml_id = ANY(s.dientzurdarstellungvon)
                     WHERE ls.gml_id = l.gml_id 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
               AND (SELECT s.ogc_fid FROM ap_pto s
                      JOIN ax_lagebezeichnungohnehausnummer ls ON ls.gml_id = ANY(s.dientzurdarstellungvon)
                     WHERE ls.gml_id = l.gml_id AND NOT s.advstandardmodell IS NULL LIMIT 1 
                   ) IS NULL 
              ) 
         )
;

COMMENT ON VIEW ap_pto_stra 
  IS 'Sicht für Kartendarstellung: Beschriftung aus "ap_pto" für Lagebezeichnung mit Art "Straße", "Weg", "Platz" oder Klassifizierung.
 Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe. Dient im Script pp_laden.sql zum ersten Füllen der Tabelle "pp_strassenname_p".';

-- 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 IF EXISTS ap_lto_stra;

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 ax_lagebezeichnungohnehausnummer l
      ON l.gml_id = ANY (p.dientzurdarstellungvon)
   WHERE  p.endet IS NULL
     AND  p.art   IN ('Strasse','Weg','Platz','BezKlassifizierungStrasse') -- Diese Werte als CLASSES in LAYER behandeln. 
     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
               -- Alternativen zur Lagebezeichnung suchen in P- und L-Version
               AND (SELECT s.ogc_fid FROM ap_lto s -- irgend ein Feld eines anderen Textes (suchen)
                      JOIN ax_lagebezeichnungohnehausnummer ls ON ls.gml_id = ANY(s.dientzurdarstellungvon)
                     WHERE ls.gml_id = l.gml_id 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
               AND (SELECT s.ogc_fid FROM ap_pto s
                      JOIN ax_lagebezeichnungohnehausnummer ls ON ls.gml_id = ANY(s.dientzurdarstellungvon)
                     WHERE ls.gml_id = l.gml_id AND NOT s.advstandardmodell IS NULL LIMIT 1 
                   ) IS NULL 
              ) 
         )
;

COMMENT ON VIEW ap_lto_stra 
  IS 'Sicht für Kartendarstellung: Beschriftung aus "ap_lto" für Lagebezeichnung mit Art "Straße", "Weg", "Platz" oder Klassifizierung.
 Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe. Dient im Script pp_laden.sql zum ersten Füllen der Tabelle "pp_strassenname_l".';

-- 2014-08-26: Daten aus dem View "ap_lto_stra" werden im PostProcessing gespeichert in den Tabellen "pp_strassenname_l".
-- Der View übernimmt die Auswahl des passenden advstandardmodell.
-- In der Tabelle werden dann die leer gebliebenen Label aus dem Katalog noch ergänzt.


-- Layer NAME "ap_pto_nam" GROUP "praesentation"
-- -------------------------------------------------------
-- 'NAM' = Name (Eigenname) und 'ZNM' = Zweitname (touristischer oder volkstümlicher Name) zu ...
--   -- AX_Strassenverkehr oder AX_Platz usw.
--  ap_pto >dientZurDarstellungVon> ?irgendwas?

-- Dieser View wird bisher nicht verwendet. Dazu müsste ein neuer Layer erzeugt werden und die 
-- Arten 'NAM' und 'ZNM' dann aus den View 'ap_pto_rest' heraus genommen werden.

-- Entweder Layer trennen nach Text-Typen "NAM"+"ZNM" und dem Rest
-- ODER           trennen nach fachlichen Ebenen wie "Nutzung" und "Gebäude" und ....

-- DROP VIEW IF EXISTS ap_pto_nam;

CREATE OR REPLACE VIEW ap_pto_nam 
AS 
  SELECT p.ogc_fid,
         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 nutzung l                      -- Im PostProcessing zusammen gefasste Nutzungsarten-Abschnitte
      ON l.gml_id = ANY (p.dientzurdarstellungvon) 
   WHERE NOT p.schriftinhalt IS NULL 
     AND  p.endet IS NULL                            -- nichts historisches
     AND  p.art   IN ('NAM','ZNM')                   -- CLASSES in LAYER
     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 s.gml_id                  -- irgend ein Feld
                      FROM ap_pto s                  -- eines anderen Textes (suchen)
                      JOIN nutzung l2                 -- Im PostProcessing zusammen gefasste Nutzungsarten-Abschnitte
                        ON l2.gml_id = ANY (s.dientzurdarstellungvon) 
                     WHERE NOT s.advstandardmodell IS NULL 
                     LIMIT 1  -- einer reicht als Beweis
                   ) IS NULL 
              ) -- "Subquery IS NULL" liefert true wenn kein weiterer Text gefunden wird
         )
;

COMMENT ON VIEW ap_pto_nam 
  IS 'Sicht für Kartendarstellung: Beschriftung mit Art = Name/Zweitname. Vorzugsweise mit advstandardmodell="DKKM1000", ersatzweise ohne Angabe.';
-- ToDo: Im PostProcessing in einer Tabelle speichern.


-- Layer NAME "ap_pto" GROUP "praesentation"
-- ----------------------------------------
-- REST: Texte, die nicht schon in einem anderen Layer ausgegeben werden
-- Doppelte Darstellung aufgrund verschiedener "advstandardmodell" zum Objekt unterdrücken analog ap_pto_stra und ap_pto_nam

-- DROP VIEW IF EXISTS ap_pto_rest;

CREATE OR REPLACE VIEW ap_pto_rest
AS 
  SELECT p.ogc_fid, 
         p.schriftinhalt, 
         p.art, 
         p.drehwinkel * 57.296 AS winkel, -- * 180 / Pi
         p.wkb_geometry 
    FROM ap_pto p
   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 ('DKKM1000' = ANY (p.advstandardmodell)     -- "Lika 1000" bevorzugen

/*	-- Änderung 2014-10-28: nicht einbeziehen wenn advstandardmodell leer ist.
	-- Sonst doppelte Darstellung von freierText mit Straßennamen auf Nutzungsarten für ABK.

           -- Ersatzweise auch "keine Angabe" (null) akzeptieren, aber nur wenn ...
           OR (p.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 
              ) -- "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.';
-- ToDo: Im PostProcessing in einer Tabelle speichern.

-- Kommt PNR (Pseudonummer) noch im Bestand vor?
--  SELECT * FROM ap_pto WHERE art = 'PNR' LIMIT 100; 


-- Layer "s_zuordungspfeil_gebaeude"
-- -----------------------------------
-- DROP VIEW IF EXISTS s_zuordungspfeil_gebaeude;

CREATE OR REPLACE VIEW s_zuordungspfeil_gebaeude
AS 
 SELECT l.ogc_fid, 
     -- ap_lpo.art, -- TEST
        l.wkb_geometry
   FROM ap_lpo l
   JOIN ax_gebaeude g
     ON g.gml_id = ANY(l.dientzurdarstellungvon)
  WHERE l.art = 'Pfeil'
    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.';


-- Grenzpunkte
-- -----------
-- Zum Punktort des Grenzpunktes auch eine Information zur Vermarkung holen
-- DROP VIEW IF EXISTS grenzpunkt;

CREATE OR REPLACE VIEW grenzpunkt 
AS 
 SELECT o.ogc_fid, 
        o.wkb_geometry, 
     -- g.punktkennung,    -- ggf später als labelitem "rrrrrhhhhAnnnnn" "32483 5751 0 02002"
        g.abmarkung_marke  -- steuert die Darstellung >9000 = unvermarkt
   FROM ax_punktortta o
   JOIN ax_grenzpunkt g
     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)';


-- Sichten vom OBK (Oberbergischer Kreis)
-- --------------------------------------

CREATE OR REPLACE VIEW sk2012_flurgrenze 
AS 
 SELECT fg.ogc_fid, fg.wkb_geometry
   FROM ax_besondereflurstuecksgrenze fg
  WHERE 3000   = ANY (fg.artderflurstuecksgrenze)
    AND 'DLKM' = ANY (fg.advstandardmodell);

COMMENT ON VIEW sk2012_flurgrenze IS 'Sicht für Kartendarstellung: besondere Flurstücksgrenze "Flurgrenze"';

CREATE OR REPLACE VIEW sk2014_gemarkungsgrenze 
AS 
 SELECT gemag.ogc_fid, gemag.wkb_geometry
   FROM ax_besondereflurstuecksgrenze gemag
  WHERE 7003   = ANY (gemag.artderflurstuecksgrenze)
    AND 'DLKM' = ANY (gemag.advstandardmodell);

COMMENT ON VIEW sk2014_gemarkungsgrenze IS 'Sicht für Kartendarstellung: besondere Flurstücksgrenze "Gemarkungsgrenze"';

CREATE OR REPLACE VIEW sk2018_bundeslandgrenze 
AS 
 SELECT blg.ogc_fid, blg.wkb_geometry
   FROM ax_besondereflurstuecksgrenze blg
  WHERE 7102   = ANY (blg.artderflurstuecksgrenze)
    AND 'DLKM' = ANY (blg.advstandardmodell);

COMMENT ON VIEW sk2018_bundeslandgrenze IS 'Sicht für Kartendarstellung: besondere Flurstücksgrenze "Bundeslandgrenze"';

CREATE OR REPLACE VIEW sk2020_regierungsbezirksgrenze 
AS 
 SELECT rbg.ogc_fid, rbg.wkb_geometry
   FROM ax_besondereflurstuecksgrenze rbg
  WHERE 7103   = ANY (rbg.artderflurstuecksgrenze) 
    AND 'DLKM' = ANY (rbg.advstandardmodell);

COMMENT ON VIEW sk2020_regierungsbezirksgrenze IS 'Sicht für Kartendarstellung: besondere Flurstücksgrenze "Regierungsbezirksgrenze"';

CREATE OR REPLACE VIEW sk2022_gemeindegrenze 
AS 
 SELECT gemg.ogc_fid, gemg.wkb_geometry
   FROM ax_besondereflurstuecksgrenze gemg
  WHERE 7106   = ANY (gemg.artderflurstuecksgrenze) 
    AND 'DLKM' = ANY (gemg.advstandardmodell);

COMMENT ON VIEW sk2022_gemeindegrenze IS 'Sicht für Kartendarstellung: besondere Flurstücksgrenze "Gemeindegrenze"';


-- Zusammenfassung "Politische Grenzen"  Art= 7102, 7103, 7104, 7106

-- Grenze der Bundesrepublik Deutschland 7101 (G)
-- .. des Bundeslandes 7102 (G)
-- .. des Regierungsbezirks 7103 (G)
-- .. des Landkreises 7104 (G)
-- .. der Gemeinde 7106
-- .. des Gemeindeteils 7107
-- .. der Verwaltungsgemeinschaft 7108

CREATE OR REPLACE VIEW sk201x_politische_grenze 
AS 
 SELECT ogc_fid, artderflurstuecksgrenze as art, wkb_geometry
   FROM ax_besondereflurstuecksgrenze
--WHERE ( ANY (artderflurstuecksgrenze) IN (7102,7103,7104,7106) ) 
  WHERE (7102 = ANY (artderflurstuecksgrenze) 
     OR  7102 = ANY (artderflurstuecksgrenze) 
     OR  7103 = ANY (artderflurstuecksgrenze) 
     OR  7104 = ANY (artderflurstuecksgrenze) 
     OR  7106 = ANY (artderflurstuecksgrenze)
    )
    AND 'DLKM' = ANY (advstandardmodell);

COMMENT ON VIEW sk201x_politische_grenze IS 'Sicht für Kartendarstellung: besondere Flurstücksgrenze Politische Grenzen (Bund, Land, Kreis, Gemeinde)';
-- Gefällt mir nicht! Array-Felder eignen sich nicht als Filter. Optimierung: in Tabelle speichern


-- Gruppe: Bodenschätzung
-- ----------------------

-- Für Nachschlagen bei Feature-Info: Entschlüsselung in Langform zu einer Klassenfläche, ohne Geometrie.
CREATE OR REPLACE VIEW s_bodensch_ent
AS 
 SELECT bs.ogc_fid,
      --bs.advstandardmodell,   -- NUR TEST
        ka.bezeichner                      AS kulturart_e,
        ba.bezeichner                      AS bodenart_e,
        zs.bezeichner                      AS zustandsstufe_e,
        bs.bodenzahlodergruenlandgrundzahl AS grundz,
        bs.ackerzahlodergruenlandzahl      AS agzahl,
        ea1.bezeichner                     AS entstehart1,
        ea2.bezeichner                     AS entstehart2,
        -- entstehungsartoderklimastufewasserverhaeltnisse ist array!
        bs.sonstigeangaben,                           -- integer array  - Entschlüsseln?
        so1.bezeichner                     AS sonst1, -- Enstschlüsselung 
     -- so2.bezeichner                     AS sonst2, -- immer leer?
        bs.jahreszahl                                 -- integer
   FROM      ax_bodenschaetzung bs
   LEFT JOIN v_bschaetz_kulturart      ka ON bs.kulturart = ka.wert
   LEFT JOIN v_bschaetz_bodenart       ba ON bs.bodenart  = ba.wert
   LEFT JOIN v_bschaetz_zustandsstufe  zs ON bs.zustandsstufeoderbodenstufe = zs.wert
   LEFT JOIN v_bschaetz_entsteh_klima ea1 
          ON bs.entstehungsartoderklimastufewasserverhaeltnisse[1] = ea1.wert   -- [1] fast immer gefüllt
   LEFT JOIN v_bschaetz_entsteh_klima ea2 
          ON bs.entstehungsartoderklimastufewasserverhaeltnisse[2] = ea2.wert   -- [2] manchmal gefüllt
   LEFT JOIN v_bschaetz_sonst so1 ON bs.sonstigeangaben[1] = so1.wert -- [1] selten gefüllt
 --LEFT JOIN v_bschaetz_sonst 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';

-- Variante 1: Nur EIN Layer. 
--             Label mittig in der Fläche, dann ist auch kein Zuordnungs-Pfeil notwendig.

-- Klassenfläche (Geometrie) mit ihrem Kurz-Label-Text, der dann mittig an Standardposition angezeigt werden kann. 
CREATE OR REPLACE VIEW s_bodensch_wms
AS 
 SELECT bs.ogc_fid,
        bs.wkb_geometry,
     -- 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
          coalesce (ea2.kurz, '') -- NULL vermeiden!
          || ' ' ||               -- Zeilenwechsel im Label (UMN: WRAP)
          bs.bodenzahlodergruenlandgrundzahl || '/' ||
          bs.ackerzahlodergruenlandzahl 
        AS derlabel               -- LABELITEM Umbruch am Blank
   FROM      ax_bodenschaetzung bs
   LEFT JOIN v_bschaetz_kulturart      ka ON bs.kulturart = ka.wert
   LEFT JOIN v_bschaetz_bodenart       ba ON bs.bodenart  = ba.wert
   LEFT JOIN v_bschaetz_zustandsstufe  zs ON bs.zustandsstufeoderbodenstufe = zs.wert
   LEFT JOIN v_bschaetz_entsteh_klima ea1 
          ON bs.entstehungsartoderklimastufewasserverhaeltnisse[1] = ea1.wert   -- [1] fast immer gefüllt
   LEFT JOIN v_bschaetz_entsteh_klima ea2 
          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.';


-- Variante 2: Fläche und Text als getrennte Layer. Text an manueller Position, 
--             ggf. außerhalb der Fläche. Dann ist ein Zuordnungspfeil notwendig.

-- Die Fläche ohne Label
CREATE OR REPLACE VIEW s_bodensch_po
AS
 SELECT ogc_fid,
        wkb_geometry,
        kulturart  -- Kulturart, numerischer Schlüssel, CLASSITEM
   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.';

-- Der Label zu den Klassenabschnitten
-- ACHTUNG: Zu einigen Abschnitten gibt es mehrerere (identische) Label an verschiedenen Positionen! 
CREATE OR REPLACE VIEW s_bodensch_tx
AS 
 SELECT bs.ogc_fid,
        p.wkb_geometry,           -- Geomterie (Punkt) des Labels
     -- bs.wkb_geometry,          -- Geometrie der Fläche, nicht des Label
        bs.advstandardmodell,     -- NUR TEST
     -- bs.entstehungsartoderklimastufewasserverhaeltnisse AS entstehart, -- Array der Keys, NUR TEST
        ka.kurz AS kult,  -- Kulturart, CLASSITEM, steuert die Farbe
     -- p.horizontaleausrichtung,  -- Feinpositionierung  ..    (zentrisch)
	 -- p.vertikaleausrichtung,    --  .. des Labels            (basis)   -> uc
     -- Viele Felder zusammen packen zu einem kompakten Zwei-Zeilen-Label:
          ba.kurz  ||              -- Bodenart
          zs.kurz  ||              -- Zustandsstufe
          ea1.kurz ||              -- Entstehungsart oder Klimastufe, Wasserverhaeltnisse
          coalesce (ea2.kurz, '')  -- Noch mal, ist ein Array mit 1 bis 2 Elementen
          || ' ' ||                -- Zeilenwechsel im Label (UMN: WRAP ' ')
          bs.bodenzahlodergruenlandgrundzahl || '/' ||
          bs.ackerzahlodergruenlandzahl 
        AS derlabel                -- LABELITEM, Umbruch am Leerzeichen
   FROM ap_pto                                 p
   JOIN ax_bodenschaetzung                     bs ON bs.gml_id = ANY(p.dientzurdarstellungvon)
   LEFT JOIN v_bschaetz_kulturart      ka ON bs.kulturart = ka.wert
   LEFT JOIN v_bschaetz_bodenart       ba ON bs.bodenart  = ba.wert
   LEFT JOIN v_bschaetz_zustandsstufe  zs ON bs.zustandsstufeoderbodenstufe = zs.wert
   LEFT JOIN v_bschaetz_entsteh_klima ea1 
          ON bs.entstehungsartoderklimastufewasserverhaeltnisse[1] = ea1.wert 
   LEFT JOIN v_bschaetz_entsteh_klima ea2 
          ON bs.entstehungsartoderklimastufewasserverhaeltnisse[2] = ea2.wert 
  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.';

-- Redundanz suchen:
--  SELECT ogc_fid, count(advstandardmodell) AS anzahl FROM s_bodensch_tx GROUP BY ogc_fid HAVING count(advstandardmodell) > 1;
--  SELECT * FROM s_bodensch_tx WHERE ogc_fid in (2848, 1771, 3131, 3495) ORDER BY ogc_fid;

-- END --


-- B o d e n s c h a e t z u n g   -  Entstehungsart oder Klimastufe / Wasserverhaeltnisse
-- ----------------------------------------------------------------------------------------
-- alter Name: ax_bodenschaetzung_entstehungsartoderklimastufe
DROP TABLE v_bschaetz_entsteh_klima;
CREATE TABLE v_bschaetz_entsteh_klima (
    wert integer,
    kurz character varying,
    bezeichner character varying,
    CONSTRAINT [REDACTED]PRIMARY KEY (wert)
  );

COMMENT ON TABLE v_bschaetz_entsteh_klima
 IS 'Bodenschätzung, Spalte: Entstehungsart oder Klimastufe - Schlüsseltabelle mit Werten aus GeoInfoDok NW, geladen mit SQL-Script. Zu Tabelle "ax_bodenschaetzung", Feld "entstehungsartoderklimastufe".';

COMMENT ON COLUMN v_bschaetz_entsteh_klima.wert       IS 'numerischer Schlüssel';
COMMENT ON COLUMN v_bschaetz_entsteh_klima.kurz       IS 'Kürzel, Kartenanzeige';
COMMENT ON COLUMN v_bschaetz_entsteh_klima.bezeichner IS 'Lange Bezeichnung';


INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1000,'D',   'Diluvium (D)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1100,'DAl', 'Diluvium über Alluvium (DAl)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1200,'DLö', 'Diluvium über Löß (DLö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1300,'DV',  'Diluvium über Verwitterung (DV)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1400,'Dg',  'Diluvium, gesteinig (Dg)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1410,'DgAl','Diluvium, gesteinig über Alluvium (DgAl)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1420,'DgLö','Diluvium, gesteinig über Löß (DgLö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(1430,'DgV', 'Diluvium, gesteinig über Verwitterung (DgV)');

INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2000,'Lö',  'Löß (Lö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2100,'LöD', 'Löß über Diluvium (LöD)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2110,'LöDg','Löß, Diluvium, Gesteinsböden (LöDg)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2120,'LöDV','Löß, Diluvium, Verwitterung (LöDV)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2200,'LöAl','Löß über Alluvium (LöAl)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2300,'LöV', 'Löß über Verwitterung (LöV)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2310,'LöVg','Löß, Verwitterung, Gesteinsböden (LöVg)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(2400,'LöVg','Löß über Verwitterung, gesteinig (LöVg)');

INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3000,'Al',  'Alluvium (Al)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3100,'AlD', 'Alluvium über Diluvium (AlD)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3200,'AlLö','Alluvium über Löß (AlLö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3300,'AlV', 'Alluvium über Verwitterung (AlV)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3400,'Alg', 'Alluvium, gesteinig (Alg)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3410,'AlgD','Alluvium, gesteinig über Diluvium (AlgD)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3420,'AlgLö','Alluvium, gesteinig über Löß (AlgLö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3430,'AlgV','Alluvium, gesteinig über Verwitterung (AlgV)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3500,'AlMa','Alluvium, Marsch (AlMa)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3610,'AlMo','Alluvium, Moor (AlMo)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3620,'MoAI','Moor, Alluvium (MoAI)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(3700,'Me',  'Mergel (Me)');

INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4000,'V',   'Verwitterung (V)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4100,'VD',  'Verwitterung über Diluvium (VD)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4200,'VAl', 'Verwitterung über Alluvium (VAl)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4300,'VLö', 'Verwitterung über Löß (VLö)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4400,'Vg',  'Verwitterung, Gesteinsböden (Vg)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(4410,'VgD', 'Verwitterung, Gesteinsböden über Diluvium (VgD)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(5000,'-',   'Entstehungsart nicht erkennbar (-)');

INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(6100,'a',   'Klimastufe 8° C und darüber (a)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(6200,'b',   'Klimastufe 7,9° - 7,0° C (b)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(6300,'c',   'Klimastufe 6,9° - 5,7° C (c)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(6400,'d',   'Klimastufe 5,6° C und darunter (d)');

INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7100,'1',   'Wasserstufe (1)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7200,'2',   'Wasserstufe (2)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7300,'3',   'Wasserstufe (3)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7400,'4',   'Wasserstufe (4)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7410,'4-',  'Wasserstufe (4-)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7500,'5',   'Wasserstufe (5)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7510,'5-',  'Wasserstufe (5-)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7520,'3-',  'Wasserstufe (3-)');
INSERT INTO v_bschaetz_entsteh_klima (wert, kurz, bezeichner) VALUES(7530,'3+4', 'Wasserstufe (3+4)');





-- ALKIS PostNAS 0.8

-- Post Processing (pp_) Teil 1: Anlegen der Tabellen und Views

-- Koordinatensystem übergeben mit "psql  .. -v alkis_epsg=:alkis_epsg"
-- :alkis_epsg=25832

-- Stand 
--  2012-02-13 PostNAS 07, Umbenennung
--  2012-02-17 Optimierung
--  2012-02-28 gkz aus View nehmen
--  2012-04-17 Flurstuecksnummern auf Standardposition
--  2012-04-23 ax_flurstueck hat keinen Unique Index mehr auf gml_id,
--             ForeignKey vorübergehend ausgeschaltet.
--  2012-04-25 simple_geom fuer pp_flur
--  2013-04-18 Kommentare.
--  2012-10-24 Neue Tabelle für die Präsentation von Straßennamen und -Klassifikationen
--  2014-08-26 Aus "pp_strassenname" werden die Varianten *_p und *_l
--             Erweiterte gml_id wie bei den primären Tabellen, bisher (16).
--  2014-09-02 Entfernen der JOINs über "alkis_beziehungen". 
--             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';
*/

-- ============================
-- Tabellen des Post-Processing
-- ============================

-- Einige Informationen liegen nach der NAS-Konvertierung in der Datenbank "verstreut" vor.
-- Die dynamische Aufbereitung über Views und Functions würde zu lange dauern und somit lange 
-- Antwortzeiten in WMS, WFS, Buchauskunft oder Navigation (Suche) verursachen.

-- Im Rahmen eines "Post-Processing" werden diese Daten nach jeder Konvertierung (NBA-Aktialisierung) 
-- einmal komplett aufbereitet. Die benötigten Informationen stehen somit den Anwendungen mundgerecht zur Verfügung.

-- Die per PostProcessing gefüllten Tabellen bekommen den Prefix "pp_".

-- ToDo:
-- Muss *multi*-Polygon sein? Gibt es "zerrissene" Fluren/Gemarkungen?
-- Der View "gemeinde_gemarkung" kann entfallen, wenn Navigation umgestellt wurde.

SET client_encoding = 'UTF-8';

-- Alles auf Anfang

 DROP VIEW IF EXISTS gemeinde_person_typ1;
 DROP VIEW IF EXISTS gemeinde_person_typ2;
 DROP VIEW IF EXISTS gemeinde_person_statistik;
 DROP VIEW IF EXISTS gemeinde_gemarkung;
 DROP VIEW IF EXISTS pp_gemeinde_analyse;
 DROP VIEW IF EXISTS pp_gemarkung_analyse;

/*
 DROP TABLE gemeinde_person;
 DROP TABLE pp_gemeinde;
 DROP TABLE pp_gemarkung;
 DROP TABLE pp_flur;
 DROP TABLE pp_flurstueck_nr;
 DROP TABLE pp_strassenname_p;
 DROP TABLE pp_strassenname_l;
*/

-- Tabelle fuer Gemeinden
-- ========================

  CREATE TABLE pp_gemeinde (
    gid                serial,
    land               character varying NOT NULL,
    regierungsbezirk   character varying,
    kreis              character varying,
    gemeinde           character varying NOT NULL,
    gemeindename       character varying(80),
 -- gkz                character varying(03),    -- wird (noch) nicht benutzt
    anz_gemarkg        integer,                  -- Anzahl Gemarkungen
    CONSTRAINT pp_gemeinde_pk PRIMARY KEY (land, gemeinde)
  );

CREATE UNIQUE INDEX pp_gemeinde_gid_ix ON pp_gemeinde (gid);

-- Gesamtfläche
SELECT AddGeometryColumn('pp_gemeinde','the_geom',:alkis_epsg,'MULTIPOLYGON',2);
CREATE INDEX pp_gemeinde_gidx ON pp_gemeinde USING gist(the_geom);

-- vereinfachte Gesamtfläche
SELECT AddGeometryColumn('pp_gemeinde','simple_geom',:alkis_epsg,'MULTIPOLYGON',2);
CREATE INDEX pp_gemeinde_sgidx ON pp_gemeinde USING gist(simple_geom);


  COMMENT ON TABLE  pp_gemeinde                IS 'Post-Processing: Gemeinde';
  COMMENT ON COLUMN pp_gemeinde.gemeinde       IS 'Gemeindenummer';
--COMMENT ON COLUMN pp_gemeinde.gkz            IS 'Gemeindekennziffer für Mandant';
  COMMENT ON COLUMN pp_gemeinde.the_geom       IS 'präzise Geometrie aus Summe aller Gemarkungen';
  COMMENT ON COLUMN pp_gemeinde.simple_geom    IS 'vereinfachte Geometrie für die Suche und die Anzeige von Übersichten in kleinen Maßstäben.';


-- Tabelle fuer Gemarkungen
-- ========================

-- Für die Regelung der Zugriffsberechtigung einer Gemeindeverwaltung auf die 
-- Flurstücke in ihrem Gebiet braucht man die Information, in welcher Gemeinde eine Gemarkung liegt.
-- 'ax_gemeinde' und 'ax_gemarkung' haben aber im ALKIS keinerlei Beziehung zueinander - kaum zu glauben!
-- Nur über die Auswertung der Flurstücke kann man die Zuordnung ermitteln.
-- Da nicht ständig mit 'SELECT DISTINCT' sämtliche Flurstücke durchsucht werden können, 
-- muss diese Information als (redundante) Tabelle nach dem Laden zwischengespeichert werden. 

  CREATE TABLE pp_gemarkung (
    gid                serial,
    land               character varying NOT NULL,
    regierungsbezirk   character varying,
    kreis              character varying,
    gemeinde           character varying NOT NULL, -- fast ein Foreign-Key Constraint
    gemarkung          character varying NOT NULL,
    gemarkungsname     character varying(80),
    anz_flur           integer,                -- Anzahl Fluren
    CONSTRAINT pp_gemarkung_pk PRIMARY KEY (land, gemarkung)
  );

CREATE UNIQUE INDEX pp_gemarkung_gid_ix ON pp_gemarkung (gid);

-- Gesamtfläche
SELECT AddGeometryColumn('pp_gemarkung','the_geom',:alkis_epsg,'MULTIPOLYGON',2);
CREATE INDEX pp_gemarkung_gidx ON pp_gemarkung USING gist(the_geom);

-- vereinfachte Gesamtfläche
SELECT AddGeometryColumn('pp_gemarkung','simple_geom',:alkis_epsg,'MULTIPOLYGON',2);
CREATE INDEX pp_gemarkung_sgidx ON pp_gemarkung USING gist(simple_geom);


COMMENT ON TABLE  pp_gemarkung               IS 'Post-Processing: Gemarkung. u.a. liegt in welcher Gemeinde';
COMMENT ON COLUMN pp_gemarkung.gemeinde      IS 'Gemeindenummer';
COMMENT ON COLUMN pp_gemarkung.gemarkung     IS 'Gemarkungsnummer';
COMMENT ON COLUMN pp_gemarkung.the_geom      IS 'präzise Geometrie aus Summe aller Fluren';
COMMENT ON COLUMN pp_gemarkung.simple_geom   IS 'vereinfachte Geometrie für die Suche und die Anzeige von Übersichten in kleinen Maßstäben.';


-- Tabelle fuer Fluren
-- ===================

  CREATE TABLE pp_flur (
    gid                serial,
    land               character varying NOT NULL,
    regierungsbezirk   character varying,
    kreis              character varying,
    gemeinde           character varying NOT NULL,
    gemarkung          character varying NOT NULL,
    flurnummer         integer NOT NULL,
    anz_fs             integer,              -- Anzahl Flurstücke
    CONSTRAINT pp_flur_pk PRIMARY KEY (land, gemarkung, flurnummer)
  );

-- ALTER TABLE pp_flur ADD COLUMN gid serial;
CREATE UNIQUE INDEX pp_flur_gid_ix ON pp_flur (gid);

-- Gesamtfläche
SELECT AddGeometryColumn('pp_flur','the_geom',:alkis_epsg,'MULTIPOLYGON',2);
CREATE INDEX pp_flur_gidx ON pp_flur USING gist(the_geom);

-- vereinfachte Gesamtflaeche
SELECT AddGeometryColumn('pp_flur','simple_geom',:alkis_epsg,'MULTIPOLYGON',2);
CREATE INDEX pp_flur_sgidx ON pp_flur USING gist(simple_geom);


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';
COMMENT ON COLUMN pp_flur.simple_geom    IS 'vereinfachte Geometrie für die Suche und die Anzeige von Übersichten in kleinen Maßstäben.';


-- =======================================================
-- Tabelle fuer die Zuordnung vom Eigentümern zu Gemeinden
-- =======================================================

-- Die Feststellung, ob eine Person (Mit-) Eigentümer von mindestens einem
-- Flurstück in einer Gemeinde ist, geht über viele Relationen.
-- Dabei kann es mehrere Varianten geben.
-- Dies sollte nach dem Laden ermittelt und gespeichert werden, damit dies in
-- der Navigation auf einfache Art verwendet werden kann. 


-- Prefix "pp_" verwenden  ?

--DROP TABLE gemeinde_person;

  CREATE TABLE gemeinde_person (
    land                character varying,
    regierungsbezirk    character varying,
    kreis               character varying,
    gemeinde            character varying,
    person              character varying,
    buchtyp             integer,
    CONSTRAINT gemeinde_person_pk PRIMARY KEY (gemeinde, person)
  );

COMMENT ON TABLE  gemeinde_person            IS 'Person ist Eigentümer von mindestens einem Flurstück in der Gemeinde';
COMMENT ON COLUMN gemeinde_person.gemeinde   IS 'Gemeindenummer';
COMMENT ON COLUMN gemeinde_person.buchtyp    IS 'Typ der Buchung 1=direkt, 2=Recht einer Buchungsstele an andere Buchungsstelle';
COMMENT ON COLUMN gemeinde_person.person     IS 'gml_id von Person';

-- Index zum Filtern in der Buchauskunft
CREATE INDEX person_gemeinde  ON gemeinde_person (person, gemeinde);


-- Flurstuecksnummern-Position
-- ===========================
-- Die Tabelle "pp_flurstueck_nr" ersetzt den View "s_flurstueck_nr" für WMS-Layer "ag_t_flurstueck".

--DROP TABLE pp_flurstueck_nr;
  CREATE TABLE pp_flurstueck_nr (
    gid		serial,
    fsgml	     character varying,
    fsnum	     character varying(10),  -- zzzzz/nnnn
    CONSTRAINT pp_flurstueck_nr_pk  PRIMARY KEY (gid)  --,
-- Foreign Key
-- ALT:
--    CONSTRAINT pp_flurstueck_nr_gml FOREIGN KEY (fsgml)
--      REFERENCES ax_flurstueck (gml_id) MATCH SIMPLE
--      ON UPDATE CASCADE ON DELETE CASCADE
-- Durch Änderung Patch #5444 am 2012-04-23 hat 'ax_flurstueck' keinen Unique-Index mehr auf gml_id
-- Ersatzweise einen ForeignKey über 2 Felder?
  );

SELECT AddGeometryColumn('pp_flurstueck_nr','the_geom',:alkis_epsg,'POINT',2);

-- Geometrischer Index
CREATE INDEX pp_flurstueck_nr_gidx    ON pp_flurstueck_nr USING gist  (the_geom);
CREATE INDEX fki_pp_flurstueck_nr_gml ON pp_flurstueck_nr USING btree (fsgml);

COMMENT ON TABLE  pp_flurstueck_nr           IS 'Post-Processing: Position der Flurstücksnummer in der Karte';
COMMENT ON COLUMN pp_flurstueck_nr.fsgml     IS 'gml_id des zugehörigen Flurstücks-Objektes ( <- ap_pto.dientZurDarstellungVon)';
COMMENT ON COLUMN pp_flurstueck_nr.fsnum     IS 'Label, Darzustellende FS-Nummer als Bruch';
COMMENT ON COLUMN pp_flurstueck_nr.the_geom  IS 'Position der Flurstücksnummer in der Karte';


-- =====
-- VIEWs 
-- =====

-- Ein View, der übergangsweise die ehemalige Tabelle mit diesem Namen ersetzt.
-- Wird in der Navigation verwendet, bis alle Datenbanken auf die Struktur 0.7 umgestellt 
-- sind *UND* die Navigation an die neuen Tabellen angepasst ist.

CREATE OR REPLACE VIEW gemeinde_gemarkung
AS
  SELECT g.land, g.regierungsbezirk, g.kreis, g.gemeinde, k.gemarkung, g.gemeindename, k.gemarkungsname
  FROM pp_gemarkung k
  JOIN pp_gemeinde  g 
    ON k.land = g.land AND k.gemeinde = g.gemeinde;

COMMENT ON VIEW gemeinde_gemarkung 
  IS 'Die Sicht "gemeinde_gemarkung" enthaelt nur gefüllte Gemarkungen (mit FS) aber Gemeinde mehrfach. Diese Sicht wird derzeit noch in der Navigation benutzt (alkisnav_fls.php, _grd.php, _eig.php). Definiert in pp_definition.sql. Soll künftig entfallen.';


-- VIEWs  fuer die Zuordnung vom Eigentümern zu Gemeinden
-- ------------------------------------------------------

-- "Normale" Buchungen
-- ToDo: +++++  View "gemeinde_gemarkung" nicht verwenden, auflösen
CREATE OR REPLACE VIEW gemeinde_person_typ1
AS
  SELECT DISTINCT p.gml_id AS person, g.land, g.regierungsbezirk, g.kreis, g.gemeinde
  FROM ax_person          p
  JOIN ax_namensnummer    n  ON n.benennt=p.gml_id              -- Person <benennt< Namensnummer
  JOIN ax_buchungsblatt   b  ON n.istbestandteilvon=b.gml_id    -- Namensnummer >istBestandteilVon> Blatt
  JOIN ax_buchungsstelle  s  ON s.istbestandteilvon= b.gml_id   -- Blatt <istBestandteilVon< buchungsStelle
  JOIN ax_flurstueck      f  ON f.istgebucht=s.gml_id           -- buchungsStelle <istGebucht< flurstück
  JOIN ax_gemarkung       k  ON f.land=k.land AND f.gemarkungsnummer=k.gemarkungsnummer 
  JOIN gemeinde_gemarkung g  ON k.gemarkungsnummer=g.gemarkung;

COMMENT ON VIEW gemeinde_person_typ1 
  IS 'Personen die Eigentümer vom Flurstücken in einer Gemeinde sind. Typ1 = nomale Buchungen mit direkter Beziehung.';


-- "Komplexe" Buchungen mit Rechten von Buchungen an Buchungen
-- ToDo: +++++  View "gemeinde_gemarkung" nicht verwenden, auflösen
CREATE OR REPLACE VIEW gemeinde_person_typ2
AS
  SELECT DISTINCT p.gml_id AS person, g.land, g.regierungsbezirk, g.kreis, g.gemeinde
  FROM ax_person          p
  JOIN ax_namensnummer    n  ON n.benennt=p.gml_id             -- Person <benennt< Namensnummer
  JOIN ax_buchungsblatt   b  ON n.istBestandteilVon=b.gml_id   -- Namensnummer >istBestandteilVon> Blatt
  JOIN ax_buchungsstelle  s1 ON s1.istbestandteilvon=b.gml_id  -- Blatt <istBestandteilVon< buchungsStelle1
  JOIN ax_buchungsstelle  s2 ON s2.gml_id=ANY(s1.an)           -- buchungsStelle2 <(recht)an< buchungsStelle1
  JOIN ax_flurstueck      f  ON f.istgebucht=s2.gml_id         -- buchungsStelle2 < istGebucht < flurstück
  JOIN ax_gemarkung       k  ON f.land=k.land AND f.gemarkungsnummer=k.gemarkungsnummer 
  JOIN gemeinde_gemarkung g  ON k.gemarkungsnummer=g.gemarkung;

COMMENT ON VIEW gemeinde_person_typ2 
  IS 'Personen die Eigentümer vom Flurstücken in einer Gemeinde sind. Typ2 = Buchungen mit Rechten einer Buchungssstelle an einer anderen.';

-- Statistik über die Buchungs-Typen je Gemeinde
-- ToDo: +++++  View "gemeinde_gemarkung" nicht verwenden, auflösen
CREATE OR REPLACE VIEW gemeinde_person_statistik
AS
  SELECT p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp, count(p.person) as personen
  FROM   gemeinde_person    p
  JOIN   gemeinde_gemarkung g
    ON   p.land     = g.land 
    AND  p.regierungsbezirk = g.regierungsbezirk 
    AND  p.kreis    = g.kreis 
    AND  p.gemeinde = g.gemeinde
  GROUP BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp
  ORDER BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, p.buchtyp;

COMMENT ON VIEW gemeinde_person_statistik IS 'Zählen der Personen je Gemeinde und Buchungstyp';


-- Views zur Analyse der vereinfachten Geometrie
-- Finden des richtigen Genauigkeits-Wertes für die Vereinfachung der Geometrie

-- z.B. Gemeinden:  10 Meter
--      Gemarkungen: 4 Meter

CREATE OR REPLACE VIEW pp_gemeinde_analyse AS
  SELECT land, gemeinde, gemeindename,
         st_npoints(the_geom)    AS umring_alle_punkte,
         st_npoints(simple_geom) AS umring_einfache_punkte
  FROM pp_gemeinde;


CREATE OR REPLACE VIEW pp_gemarkung_analyse AS
  SELECT land, gemeinde, gemarkung, gemarkungsname,
         st_npoints(the_geom)    AS umring_alle_punkte,
         st_npoints(simple_geom) AS umring_einfache_punkte
  FROM pp_gemarkung;

-- 2014-08-26 Aus Version "pp_strassenname" werden die Varianten *_p und *_l

-- Variante für Punkt-Geometrie
CREATE TABLE pp_strassenname_p 
(   gid                    serial NOT NULL,
    gml_id                 character varying,
 -- advstandardmodell      character varying[],
    schriftinhalt          character varying,      -- Label: anzuzeigender Text
    hor                    character varying,
    ver                    character varying,
 -- signaturnummer         character varying,
 -- darstellungsprioritaet integer,
    art                    character varying,
    winkel                 double precision,
    CONSTRAINT pp_snamp_pk  PRIMARY KEY (gid)
) WITH (OIDS=FALSE);

-- :alkis_epsg = :alkis_epsg
SELECT AddGeometryColumn('pp_strassenname_p','the_geom',:alkis_epsg,'POINT',2);
CREATE INDEX pp_snamp_gidx ON pp_strassenname_p USING gist(the_geom); 

  COMMENT ON TABLE  pp_strassenname_p                IS 'Post-Processing: Label der Straßennamen in der Karte, Punktgeometrie. Auszug aus ap_pto.';

  COMMENT ON COLUMN pp_strassenname_p.gid            IS 'Editierschlüssel der Tabelle';
  COMMENT ON COLUMN pp_strassenname_p.gml_id         IS 'Objektschlüssel des Präsentationsobjektes aus "ax_lagebezeichnungohnehausnummer". Zur Verbindung mit Katalog beim Nachladen leerer Felder.';
  COMMENT ON COLUMN pp_strassenname_p.schriftinhalt  IS 'Label, darzustellender Name der Straße oder Klassifikation';
  COMMENT ON COLUMN pp_strassenname_p.hor            IS 'Horizontale Ausrichtung des Textes zur Punkt-Koordinate: linksbündig, zentrisch, ...';
  COMMENT ON COLUMN pp_strassenname_p.ver            IS 'Vertikale   Ausrichtung des Textes zur Punkt-Koordinate: Basis, ..';
  COMMENT ON COLUMN pp_strassenname_p.art            IS 'Klasse der Straße: Straße, Weg, .. , BezKlassifizierungStrasse';
  COMMENT ON COLUMN pp_strassenname_p.winkel         IS 'Drehung des Textes';
  COMMENT ON COLUMN pp_strassenname_p.the_geom       IS 'Position (Punkt) der Labels in der Karte';

-- Variante für Linien-Geometrie
CREATE TABLE pp_strassenname_l 
(   gid                    serial NOT NULL,
    gml_id                 character varying,
    schriftinhalt          character varying,      -- Label: anzuzeigender Text
    hor                    character varying,
    ver                    character varying,
    art                    character varying,
 -- winkel                 double precision,       -- bei Linien-Variante nicht benötigt
    CONSTRAINT pp_snaml_pk  PRIMARY KEY (gid)
) WITH (OIDS=FALSE);

-- :alkis_epsg = :alkis_epsg
SELECT AddGeometryColumn('pp_strassenname_l','the_geom',:alkis_epsg,'LINESTRING',2); -- Hier liegt der Unterschied
CREATE INDEX pp_snaml_gidx ON pp_strassenname_l USING gist(the_geom); 

  COMMENT ON TABLE  pp_strassenname_l                IS 'Post-Processing: Label der Straßennamen in der Karte, Liniengeometrie. Auszug aus ap_lto.';

  COMMENT ON COLUMN pp_strassenname_l.gid            IS 'Editierschlüssel der Tabelle';
  COMMENT ON COLUMN pp_strassenname_l.gml_id         IS 'Objektschlüssel des Präsentationsobjektes aus "ax_lagebezeichnungohnehausnummer". Zur Verbindung mit Katalog beim Nachladen leerer Felder.';
  COMMENT ON COLUMN pp_strassenname_l.schriftinhalt  IS 'Label, darzustellender Name der Straße oder Klassifikation';
  COMMENT ON COLUMN pp_strassenname_l.hor            IS 'Horizontale Ausrichtung des Textes: linksbündig, zentrisch, ...';
  COMMENT ON COLUMN pp_strassenname_l.ver            IS 'Vertikale   Ausrichtung des Textes: Basis, ..';
  COMMENT ON COLUMN pp_strassenname_l.art            IS 'Klasse der Straße: Straße, Weg, .. , BezKlassifizierungStrasse';
  COMMENT ON COLUMN pp_strassenname_l.the_geom       IS 'Position (Punkt) der Labels in der Karte';


-- ENDE --



-- ALKIS PostNAS 0.8

-- Post Processing (pp_) Teil 2 B: Laden der Tabellen für Gebiete

-- Stand 
--  2015-10-27 Die Erzeugung der vereinfachten Geometrie von Gemeinde, Gemarkung und Flur
--             wird von "pp_laden.sql" ausgegliedert in dies Script "pp_gebiete.sql".
--             Dieses Script braucht NICHT nach jeder Aktualisierung der Datenbank laufen.

-- 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.

SET client_encoding = 'UTF-8';

-- Tabellen fuer die Zuordnung vom Gemarkungen zu Gemeinden
-- ========================================================

-- Für die Regelung der Zugriffsberechtigung einer Gemeindeverwaltung auf die 
-- Flurstücke in ihrem Gebiet braucht man die Information, in welcher Gemeinde eine Gemarkung liegt.
-- 'ax_gemeinde' und 'ax_gemarkung' haben aber im ALKIS keinerlei Beziehung zueinander - kaum zu glauben!
-- Nur über die Auswertung der Flurstücke kann man die Zuordnung ermitteln.
-- Da nicht ständig mit 'SELECT DISTINCT' sämtliche Flurstücke durchsucht werden können, 
-- muss diese Information als (redundante) Tabelle nach dem Laden zwischengespeichert werden. 


-- G E M A R K U N G

TRUNCATE pp_gemarkung;
-- Vorkommende Paarungen Gemarkung <-> Gemeinde in ax_Flurstueck
INSERT INTO pp_gemarkung
  (               land, regierungsbezirk, kreis, gemeinde, gemarkung       )
  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer
  FROM            ax_flurstueck
  WHERE           endet IS NULL
  ORDER BY        land, regierungsbezirk, kreis, gemeinde, gemarkungsnummer ;

-- Namen der Gemarkung dazu als Optimierung bei der Auskunft 
UPDATE pp_gemarkung a
   SET gemarkungsname =
   ( SELECT b.bezeichnung 
     FROM    ax_gemarkung b
     WHERE a.land=b.land 
       AND a.gemarkung=b.gemarkungsnummer
       AND b.endet IS NULL
   );


-- G E M E I N D E

TRUNCATE pp_gemeinde;
-- Vorkommende Gemeinden aus den Gemarkungen
INSERT INTO pp_gemeinde
  (               land, regierungsbezirk, kreis, gemeinde)
  SELECT DISTINCT land, regierungsbezirk, kreis, gemeinde
  FROM            pp_gemarkung
  ORDER BY        land, regierungsbezirk, kreis, gemeinde;

-- Namen der Gemeinde dazu als Optimierung bei der Auskunft 
UPDATE pp_gemeinde a
   SET gemeindename =
   ( SELECT b.bezeichnung 
     FROM    ax_gemeinde b
     WHERE a.land=b.land 
       AND a.regierungsbezirk=b.regierungsbezirk 
       AND a.kreis=b.kreis
       AND a.gemeinde=b.gemeinde
       AND b.endet IS NULL
   );


-- Geometrien der Flurstücke schrittweise zu groesseren Einheiten zusammen fassen
-- ==============================================================================
-- 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, 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
     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.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);


-- Fluren zu Gemarkungen zusammen fassen
-- -------------------------------------

-- Flächen vereinigen
UPDATE pp_gemarkung a
  SET the_geom = 
   ( 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
   );
-- 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 = 
   ( SELECT count(flurnummer) AS anz_flur 
     FROM    pp_flur b
     WHERE a.land      = b.land 
       AND a.gemarkung = b.gemarkung
   ); -- Gemarkungsnummer ist je BundesLand eindeutig


-- 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
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
   );
-- 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 = 
   ( SELECT count(gemarkung) AS anz_gemarkg 
     FROM    pp_gemarkung b
     WHERE a.land     = b.land 
       AND a.gemeinde = b.gemeinde
   );

-- ENDE --



-- ALKIS PostNAS 0.8

-- Post Processing (pp_) Teil 2 A: Laden der Tabellen

-- Stand 

--  2012-02-13 PostNAS 07, Umbenennung
--  2012-02-17 Optimierung
--  2012-04-17 Flurstuecksnummern auf Standardposition
--  2012-04-24 Generell Filter 'endet IS NULL' um historische Objekte auszublenden
--  2012-04-25 Abstürze und Fehler (durch kaputte Geometrie?) beim Zusammenfassen der Flächen
--  2012-10-29 F.J. Redundanzen aus alkis_beziehungen beseitigen, die nach NAS replace auftreten
--  2013-02-06 A.E. Function-Name an PostGIS 2 angepasst: multi() -> st_multi(), simplify() -> st_simplify()
--  2013-02-21 F.J. doppelte Buchungen zum Flurstück aus alkis_beziehungen beseitigen, die nach NAS replace auftreten
--  2013-07-10 F.J. Bereinigen der alkis_beziehungen auskommentiert, wird jetzt im Trigger gelöst.
--  2012-10-24 Neue Tabelle für die Präsentation von Straßennamen und -Klassifikationen
--  2014-02-05 Bereits auskommentierte Aktionen gelöscht für die Beseitigung von Rdundanzen aus fehlerhaften Triggern
--  2014-02-12 Zusammen fassen Flur->Gemarkung->Gemeinde nicht aus simple_geom weil dadurch Löscher entstehen können.
--  2014-09-08 PostNAS 0.8, Umbenennung. Ohne Tabelle "alkis_beziehungen".
--             Beseitigung eines Fehlers beim Laden der Straßennamen-Label.
--             Dabei Trennung in pp_strassenname_p und -_l (Punkt- und Liniengeometrie).
--  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.
--  2015-10-27 Die Erzeugung der vereinfachten Geometrie von Gemeinde, Gemarkung und Flur
--             wird ausgegliedert in das Script "pp_gebiete.sql".
--             Dies Script sollte nach jeder Aktualisierung der Datebnek laufen.
--             Die Erzeugung neuer Übersichten der Gebiete ist nur gelegendlich notwendig.


-- ============================
-- Tabellen des Post-Processing
-- ============================

-- Einige Informationen liegen nach der NAS-Konvertierung in der Datenbank "verstreut" vor.
-- 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) 
-- einmal komplett aufbereitet. Die benötigten Informationen stehen somit den Anwendungen mundgerecht zur Verfügung.

-- Die per PostProcessing gefüllten Tabellen bekommen den Profix "pp_". 

-- Die Ausführung dieses Scriptes auf einer Datenbank für eine 80T-Einwohner-Stadt dauert ca.: 500 Sek. !

SET client_encoding = 'UTF-8';


-- Flurstuecksnummern-Label-Position
-- =================================

TRUNCATE pp_flurstueck_nr;  -- effektiver als DELETE

-- Ersatz: Füllen in 3 Schritten

-- 1. zu allen Flurstücken zunächst nur die Nummer, aber noch keine Geometrie
INSERT INTO pp_flurstueck_nr
          ( fsgml, fsnum )
    SELECT f.gml_id, f.zaehler::text || COALESCE ('/' || f.nenner::text, '') AS fsnum
      FROM ax_flurstueck f 
     WHERE f.endet IS NULL;

-- 2. Geometrie aus Präsentationsobjekt (manuelle Position), wenn vorhanden. Aus Subquery.
UPDATE pp_flurstueck_nr n
  SET the_geom = (
      SELECT p.wkb_geometry 
        FROM ap_pto p
       WHERE n.fsgml=ANY(p.dientzurdarstellungvon) 
         AND p.endet IS NULL
       LIMIT 1 -- wegen vereinzelt FEHLER: als Ausdruck verwendete Unteranfrage ergab mehr als eine Zeile
    );
-- Dies läuft sehr lange. Optimierbar?


-- 3. Geometrie auf Flächenmitte (Standard), wenn jetzt noch leer
UPDATE pp_flurstueck_nr n
  SET the_geom = (
      SELECT ST_PointOnSurface(f.wkb_geometry) AS wkb_geometry 
       FROM ax_flurstueck  f 
       WHERE f.gml_id = n.fsgml 
         AND f.endet IS NULL
      )
   WHERE n.the_geom IS NULL; --- nur die Fehlenden, nichts überschreiben


-- Straßen - N a m e n  und  - K l a s s i f i k a t i o n
-- Tabellen für die Präsentation von Straßen-Namen und -Klassifikationen
-- Daten aus dem View "ap_pto_stra" werden im PostProcessing gespeichert in der Tabelle "pp_strassenname".
-- 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. 

-- Tabelle aus View befüllen
-- 2014-08-22 
--  Variante "_p" = Punktgeometrie, Spalte gml_id ergänzt.
--  Es werden nun auch Sätze mit leerem "schriftinhalt" angelegt. Das wird dann nachträglich gefüllt.

-- Alles auf Anfang
TRUNCATE pp_strassenname_p;

-- Zunächst die Sonderschreibweisen (Abkürzungen) und die Standardschreibweisen, 
-- die von der Migration redundant abgelegt wurden.
INSERT INTO pp_strassenname_p (gml_id, schriftinhalt, hor, ver, art, winkel, the_geom)
       SELECT gml_id, schriftinhalt, hor, ver, art, winkel, wkb_geometry
       FROM ap_pto_stra; -- Der View sucht das passende advstandardmodell

-- Schriftinhalt ergänzen
-- Das sind die Standardschreibweisen aus dem Katalog, die nicht mehr redundant in ap_pto sind.
UPDATE pp_strassenname_p  p
   SET schriftinhalt =     -- Hier ist der Label noch leer
   -- Subquery "Gib mir den Straßennamen":
   ( 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 )
      WHERE p.gml_id = l.gml_id                   -- die gml_id wurde aus View importiert
    )
 WHERE     p.schriftinhalt IS NULL
   AND NOT p.the_geom      IS NULL;

-- Die immer noch leeren Texte sind nun sinnlos.
-- Die finden sich ggf. in der Variante "_l" mit Liniengeometrie.
DELETE FROM pp_strassenname_p WHERE schriftinhalt IS NULL;

-- Nun das Gleiche noch einmal für Linien-Geometrie

-- Auf Anfang
TRUNCATE pp_strassenname_l;

-- Zunächst die Sonderschreibweisen (Abkürzungen) und die Standardschreibweisen, 
-- die von der Migration redundant abgelegt wurden.
INSERT INTO pp_strassenname_l (gml_id, schriftinhalt, hor, ver, art, the_geom)
       SELECT gml_id, schriftinhalt, hor, ver, art, wkb_geometry
       FROM ap_lto_stra; -- Der View sucht das passende advstandardmodell

-- Schriftinhalt ergänzen (korrigiert 2014-08-25)
-- Das sind die Standardschreibweisen aus dem Katalog, die nicht mehr redundant in ap_pto sind.
-- Der Satz mit der passenen gml_id (Lage o.H.) ist aus dem View bereits importiert.
-- Jetzt noch den dazu passenen Schriftinhalt aus dem Katalog holen.
UPDATE pp_strassenname_l  p
   SET schriftinhalt =     -- Hier ist der Label noch leer
   -- Subquery "Gib mir den Straßennamen":
   ( 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 )
      WHERE p.gml_id = l.gml_id                   -- die gml_id wurde aus View importiert
    )
 WHERE     p.schriftinhalt IS NULL
   AND NOT p.the_geom      IS NULL;

-- Die immer noch leeren Texte sind sinnlos.
DELETE FROM pp_strassenname_l WHERE schriftinhalt IS NULL;

-- Tabelle fuer die Zuordnung vom Eigentümern zu Gemeinden
-- =======================================================

-- erst mal sauber machen
DELETE FROM gemeinde_person;

-- alle direkten Buchungen mit View ermitteln und in Tabelle speichern
-- Für eine Stadt: ca. 20 Sekunden
INSERT INTO  gemeinde_person 
       (land, regierungsbezirk, kreis, gemeinde, person, buchtyp)
 SELECT land, regierungsbezirk, kreis, gemeinde, person, 1
   FROM gemeinde_person_typ1;


-- noch die komplexeren Buchungen ergänzen (Recht an ..)
-- Mit View ermitteln und in Tabelle speichern
-- Für eine Stadt: ca. 10 Sekunden
INSERT INTO  gemeinde_person 
       (  land,   regierungsbezirk,   kreis,   gemeinde,   person,  buchtyp)
 SELECT q.land, q.regierungsbezirk, q.kreis, q.gemeinde, q.person,  2
   FROM gemeinde_person_typ2 q   -- Quelle
   LEFT JOIN gemeinde_person z   -- Ziel
     ON q.person   = z.person    -- Aber nur, wenn dieser Fall im Ziel
    AND q.land     = z.land 
    AND q.regierungsbezirk = z.regierungsbezirk 
    AND q.kreis    = z.kreis 
    AND q.gemeinde = z.gemeinde
  WHERE z.gemeinde is Null;      -- ..  noch nicht vorhanden ist

-- ENDE --

