zusammengefasste Bauwerkstabelle

Aus kvwmap
Version vom 9. Februar 2016, 08:13 Uhr von Wirsi (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

zurück zu Gruppen_und_Themen_für_ALKIS#Bauwerke

Hinweise

--HolgerR (Diskussion) 13:57, 26. Jun. 2015 (CEST)

  • Die Schlüsselfelder wurden als Schlüsselwerte in die Tabellen übernommen.
  • Das Feld sonsstigeeigenschaften, in dem die Einzeleigenschaften zu den einzelnen Tabelle gespeichert werden sollen bekomme ich nicht gefüllt (s.u.)
  • In der Tabelle ax_transportanlagen ist das Feld art plötzlich ein VarChar, hab ich erst einmal als Integer definiert. Eventuell müsste die Tabellendefinition angepasst werden
  • Die Klassen zu der Bauwerksfunktion geht von 1-10, entsprechend der alphanumerischen Sortierung der Tabellennamen
  • Der Geometrietyp ist entsprechend der Mapserverdefinition zugewiesen worden:
    • 0 = Point
    • 1 = Linestring
    • 2 = Polygon

Tabellendefinition

CREATE TABLE alkis.lk_bauwerke
(
  ogc_fid serial NOT NULL,
  gml_id character varying(16) NOT NULL, -- Identifikator, global eindeutig
  identifier character varying,
  beginnt character(20),
  endet character(20),
  advstandardmodell character varying[],
  sonstigesmodell character varying[],
  anlass character varying,
  name character varying,
  geomtype integer,
  class integer NOT NULL,
  bauwerksfunktion integer,
  art integer,
  funktion integer,
  sonstigeeigenschaften character varying[],
  gehoertzubauwerk character varying, 
  gehoertzu character varying, 
  zeigtauf character varying, 
  wkb_geometry geometry,
  CONSTRAINT lk_bauwerke_pk PRIMARY KEY (ogc_fid),
  CONSTRAINT enforce_dims_wkb_geometry CHECK (st_ndims(wkb_geometry) = 2),
  CONSTRAINT enforce_srid_wkb_geometry CHECK (st_srid(wkb_geometry) = 25833)
)
WITH (
  OIDS=TRUE
);

INSERT INTO public.geometry_columns VALUES ('', 'alkis', 'lk_bauwerke', 'wkb_geometry', 2, 25833, 'GEOMETRY');

COMMENT ON COLUMN alkis.lk_bauwerke.gml_id IS 'Identifikator, global eindeutig';
COMMENT ON COLUMN alkis.lk_bauwerke.class IS 'Geometrietyp 0=Point, 1=Linstring, 2=Polygon';
COMMENT ON COLUMN alkis.lk_bauwerke.class IS 'Klassifizierung innerhalb der Nutzung. Aus verschiedenen Feldern importiert. Siehe "bauwerk_meta.fldclass".';
COMMENT ON COLUMN alkis.lk_bauwerke.sonstigeeigenschaften IS 'Sonstige Eigenschaften aus den einzenen Bauwerkstypen';
COMMENT ON COLUMN alkis.lk_bauwerke.gehoertzubauwerk IS 'Beziehung zu ax_bauwerkeeinrichtungenundsonstigeangaben (0..1): ''AX_SonstigesBauwerkOderSonstigeEinrichtung'' kann einem anderen Bauwerk zugeordnet werden.';
COMMENT ON COLUMN alkis.lk_bauwerke.gehoertzu IS 'Beziehung zu ax_gebaeude (0..1): ''AX_SonstigesBauwerkOderSonstigeEinrichtung'' kann einem Gebäude zugeordnet werden, soweit dies fachlich erforderlich ist.';
COMMENT ON COLUMN alkis.lk_bauwerke.zeigtauf IS 'Beziehung zu ax_lagebezeichnungmithausnummer (0..*): ''Turm'' zeigt auf eine ''Lagebezeichnung mit Hausnummer''.';

CREATE INDEX lk_bauwerke_geom_idx
  ON alkis.lk_bauwerke
  USING gist
  (wkb_geometry);

CREATE UNIQUE INDEX lk_bauwerke_gml
  ON alkis.lk_bauwerke
  USING btree
  (gml_id COLLATE pg_catalog."default", beginnt COLLATE pg_catalog."default");

CREATE INDEX lk_bauwerke_gz
  ON alkis.lk_bauwerke
  USING btree
  (gehoertzu COLLATE pg_catalog."default");

CREATE INDEX lk_bauwerke_gzb
  ON alkis.lk_bauwerke
  USING btree
  (gehoertzubauwerk COLLATE pg_catalog."default");

CREATE INDEX lk_bauwerke_za
  ON alkis.lk_bauwerke
  USING btree
  (zeigtauf COLLATE pg_catalog."default");

Abfragen zum Füllen der Tabelle

--HolgerR (Diskussion) 13:52, 26. Jun. 2015 (CEST)
Ich hatte versucht, das Feld sonstigeeigenschaften (ein Array) durch folgenden Ausdruck zu füllen

'{"zustand="::varchar || zustand), "objekthoehe="|| objekthoehe}' AS sonstigeeigenschaften

leider ist mir das so nicht geglückt. Das Feld wurde daher auf 'NULL' gesetzt. Habt ihr da eine Lösung parat?

--Rahn (Diskussion) 15:02, 26. Jun. 2015 (CEST) So müsste es gehen:

  ARRAY['zustand=' || zustand, 'objekthoehe='|| objekthoehe] AS sonstigeeigenschaften,

ax_bauwerkoderanlagefuerindustrieundgewerbe

INSERT INTO 
  alkis.lk_bauwerke (
    gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, name, geomtype, class, 
    bauwerksfunktion, art, funktion, sonstigeeigenschaften, gehoertzubauwerk, gehoertzu, zeigtauf, wkb_geometry ) 
SELECT  
  gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, 
  name, 
  CASE 
    WHEN GeometryType(wkb_geometry) = 'POINT' THEN 0
    WHEN GeometryType(wkb_geometry) = 'LINESTRING' THEN 1
    WHEN GeometryType(wkb_geometry) = 'POLYGON' THEN 2
  END as geomtype, 
  1 AS class,  -- Klasse zur Bauwerksfunktion
  bauwerksfunktion, 
  NULL AS art, 
  NULL AS funktion, 
--  '{"zustand="::varchar || zustand), "objekthoehe="|| objekthoehe}' AS sonstigeeigenschaften,
  NULL AS sonstigeeigenschaften,
  NULL AS gehoertzubauwerk, 
  NULL AS gehoertzu, 
  NULL AS zeigtauf, 
  wkb_geometry
FROM 
  alkis.ax_bauwerkoderanlagefuerindustrieundgewerbe
;

ax_bauwerkoderanlagefuersportfreizeitunderholung

INSERT INTO 
  alkis.lk_bauwerke (
    gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, name, geomtype, class, 
    bauwerksfunktion, art, funktion, sonstigeeigenschaften, gehoertzubauwerk, gehoertzu, zeigtauf, wkb_geometry ) 
SELECT 
  gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, 
  name, 
  CASE 
    WHEN GeometryType(wkb_geometry) = 'POINT' THEN 0
    WHEN GeometryType(wkb_geometry) = 'LINESTRING' THEN 1
    WHEN GeometryType(wkb_geometry) = 'POLYGON' THEN 2
  END as geomtype, 
  2 AS class,  -- Klasse zur Bauwerksfunktion
  bauwerksfunktion, 
  NULL AS art, 
  NULL AS funktion, 
--  '{'sportart='|| sportart}' AS sonstigeeigenschaften, 
  NULL AS sonstigeeigenschaften,
  NULL AS gehoertzubauwerk, 
  NULL AS gehoertzu, 
  NULL AS zeigtauf, 
  wkb_geometry
FROM 
  alkis.ax_bauwerkoderanlagefuersportfreizeitunderholung
;

ax_einrichtunginoeffentlichenbereichen

INSERT INTO 
  alkis.lk_bauwerke (
    gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, name, geomtype, class, 
    bauwerksfunktion, art, funktion, sonstigeeigenschaften, gehoertzubauwerk, gehoertzu, zeigtauf, wkb_geometry ) 
SELECT 
  gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, 
  NULL AS name, 
  CASE 
    WHEN GeometryType(wkb_geometry) = 'POINT' THEN 0
    WHEN GeometryType(wkb_geometry) = 'LINESTRING' THEN 1
    WHEN GeometryType(wkb_geometry) = 'POLYGON' THEN 2
  END as geomtype, 
  3 AS class,  -- Klasse zur Bauwerksfunktion
  NULL AS bauwerksfunktion, 
  art, 
  NULL AS funktion, 
--  '{'kilometerangabe='|| kilometerangabe}' AS sonstigeeigenschaften, 
  NULL AS sonstigeeigenschaften,
  NULL AS gehoertzubauwerk, 
  NULL AS gehoertzu, 
  NULL AS zeigtauf, 
  wkb_geometry
FROM 
  alkis.ax_einrichtunginoeffentlichenbereichen
;

ax_heilquellegasquelle

INSERT INTO 
  alkis.lk_bauwerke (
    gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, name, geomtype, class, 
    bauwerksfunktion, art, funktion, sonstigeeigenschaften, gehoertzubauwerk, gehoertzu, zeigtauf, wkb_geometry ) 
SELECT 
  gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, 
  name, 
  CASE 
    WHEN GeometryType(wkb_geometry) = 'POINT' THEN 0
    WHEN GeometryType(wkb_geometry) = 'LINESTRING' THEN 1
    WHEN GeometryType(wkb_geometry) = 'POLYGON' THEN 2
  END as geomtype, 
  4 AS class,  -- Klasse zur Bauwerksfunktion
  NULL AS bauwerksfunktion, 
  art, 
  NULL AS funktion, 
  NULL AS sonstigeeigenschaften,
  NULL AS gehoertzubauwerk, 
  NULL AS gehoertzu, 
  NULL AS zeigtauf, 
  wkb_geometry
FROM 
  alkis.ax_heilquellegasquelle
;

ax_historischesbauwerkoderhistorischeeinrichtung

INSERT INTO 
  alkis.lk_bauwerke (
    gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, name, geomtype, class, 
    bauwerksfunktion, art, funktion, sonstigeeigenschaften, gehoertzubauwerk, gehoertzu, zeigtauf, wkb_geometry ) 
SELECT 
  gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, 
  name, 
  CASE 
    WHEN GeometryType(wkb_geometry) = 'POINT' THEN 0
    WHEN GeometryType(wkb_geometry) = 'LINESTRING' THEN 1
    WHEN GeometryType(wkb_geometry) = 'POLYGON' THEN 2
  END as geomtype, 
  5 AS class,  -- Klasse zur Bauwerksfunktion
  NULL AS bauwerksfunktion, 
  NULL AS art, 
  NULL AS funktion, 
--  '{'archaeologischertyp='|| archaeologischertyp}' AS sonstigeeigenschaften,
  NULL AS sonstigeeigenschaften, 
  NULL AS gehoertzubauwerk, 
  NULL AS gehoertzu, 
  NULL AS zeigtauf, 
  wkb_geometry
FROM 
  alkis.ax_historischesbauwerkoderhistorischeeinrichtung
;

ax_leitung

INSERT INTO 
  alkis.lk_bauwerke (
    gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, name, geomtype, class, 
    bauwerksfunktion, art, funktion, sonstigeeigenschaften, gehoertzubauwerk, gehoertzu, zeigtauf, wkb_geometry ) 
SELECT 
  gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, 
  NULL AS name, 
  CASE 
    WHEN GeometryType(wkb_geometry) = 'POINT' THEN 0
    WHEN GeometryType(wkb_geometry) = 'LINESTRING' THEN 1
    WHEN GeometryType(wkb_geometry) = 'POLYGON' THEN 2
  END as geomtype, 
  6 AS class,  -- Klasse zur Bauwerksfunktion
  bauwerksfunktion, 
  NULL AS art, 
  NULL AS funktion, 
--  '{'spannungsebene='|| spannungsebene}' AS sonstigeeigenschaften,
  NULL AS sonstigeeigenschaften, 
  NULL AS gehoertzubauwerk, 
  NULL AS gehoertzu, 
  NULL AS zeigtauf, 
  wkb_geometry
FROM 
  alkis.ax_leitung
;

ax_sonstigesbauwerkodersonstigeeinrichtung

INSERT INTO 
  alkis.lk_bauwerke (
    gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, name, geomtype, class, 
    bauwerksfunktion, art, funktion, sonstigeeigenschaften, gehoertzubauwerk, gehoertzu, zeigtauf, wkb_geometry ) 
SELECT 
  gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, 
  name, 
  CASE 
    WHEN GeometryType(wkb_geometry) = 'POINT' THEN 0
    WHEN GeometryType(wkb_geometry) = 'LINESTRING' THEN 1
    WHEN GeometryType(wkb_geometry) = 'POLYGON' THEN 2
  END as geomtype, 
  7 AS class,  -- Klasse zur Bauwerksfunktion
  bauwerksfunktion, 
  NULL AS art, 
  funktion, 
--  '{'description='|| description}' AS sonstigeeigenschaften, 
  NULL AS sonstigeeigenschaften, 
  gehoertzubauwerk, 
  gehoertzu, 
  NULL AS zeigtauf, 
  wkb_geometry
FROM 
  alkis.ax_sonstigesbauwerkodersonstigeeinrichtung
;

ax_transportanlage

Achtung

hier ist das Feld art plötzlich ein varchar, hab ich erst einmal als Integer umgewandelt.

INSERT INTO 
  alkis.lk_bauwerke (
    gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, name, geomtype, class, 
    bauwerksfunktion, art, funktion, sonstigeeigenschaften, gehoertzubauwerk, gehoertzu, zeigtauf, wkb_geometry ) 
SELECT 
  gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, 
  name, 
  CASE 
    WHEN GeometryType(wkb_geometry) = 'POINT' THEN 0
    WHEN GeometryType(wkb_geometry) = 'LINESTRING' THEN 1
    WHEN GeometryType(wkb_geometry) = 'POLYGON' THEN 2
  END as geomtype, 
  8 AS class,  -- Klasse zur Bauwerksfunktion
  bauwerksfunktion, 
  art::int, 
  NULL AS funktion, 
--  '{'lagezurerdoberflaeche='|| lagezurerdoberflaeche, 'produkt='|| produkt}' AS sonstigeeigenschaften,
  NULL AS sonstigeeigenschaften,
  NULL AS gehoertzubauwerk, 
  NULL AS gehoertzu, 
  NULL AS zeigtauf, 
  wkb_geometry
FROM 
  alkis.ax_transportanlage
;

ax_turm

INSERT INTO 
  alkis.lk_bauwerke (
    gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, name, geomtype, class, 
    bauwerksfunktion, art, funktion, sonstigeeigenschaften, gehoertzubauwerk, gehoertzu, zeigtauf, wkb_geometry ) 
SELECT 
  gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, 
  name, 
  CASE 
    WHEN GeometryType(wkb_geometry) = 'POINT' THEN 0
    WHEN GeometryType(wkb_geometry) = 'LINESTRING' THEN 1
    WHEN GeometryType(wkb_geometry) = 'POLYGON' THEN 2
  END as geomtype, 
  9 AS class,  -- Klasse zur Bauwerksfunktion
  bauwerksfunktion, 
  NULL AS art, 
  NULL AS funktion, 
--  '{'zustand='|| zustand}' AS sonstigeeigenschaften,
  NULL AS sonstigeeigenschaften,
  NULL AS gehoertzubauwerk, 
  NULL AS gehoertzu, 
  zeigtauf, 
  wkb_geometry
FROM 
  alkis.ax_turm
;

ax_vorratsbehaelterspeicherbauwerk

INSERT INTO 
  alkis.lk_bauwerke (
    gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, name, geomtype, class, 
    bauwerksfunktion, art, funktion, sonstigeeigenschaften, gehoertzubauwerk, gehoertzu, zeigtauf, wkb_geometry ) 
SELECT 
  gml_id, identifier, beginnt, endet, advstandardmodell, sonstigesmodell, anlass, 
  name, 
  CASE 
    WHEN GeometryType(wkb_geometry) = 'POINT' THEN 0
    WHEN GeometryType(wkb_geometry) = 'LINESTRING' THEN 1
    WHEN GeometryType(wkb_geometry) = 'POLYGON' THEN 2
  END as geomtype, 
  10 AS class,  -- Klasse zur Bauwerksfunktion
  bauwerksfunktion, 
  NULL AS art, 
  NULL AS funktion, 
--  '{'speicherinhalt='|| speicherinhalt, 'lagezurerdoberflaeche='|| lagezurerdoberflaeche}' AS sonstigeeigenschaften,
  NULL AS sonstigeeigenschaften,
  NULL AS gehoertzubauwerk, 
  NULL AS gehoertzu, 
  NULL AS zeigtauf, 
  wkb_geometry
FROM 
  alkis.ax_vorratsbehaelterspeicherbauwerk
;

Keytables und Signaturen

Hier der Link auf ein Archiv mit den ergänzenden Keytables betreffs der Entschlüsselung bei den Bauwerken. [1]
Das Archiv enthält außerdem die Signaturen aus dem alkisplugin der Firma norBIT (umgewandelt in PNG) sowie die Definitionen für die Symboldatei.


zurück zu Gruppen_und_Themen_für_ALKIS#Bauwerke