source: trunk/import/pp_definition.sql @ 328

Revision 328, 17.9 KB checked in by frank.jaeger, 10 years ago (diff)

Letzte kleine Korrekturen an Import für PostNAS Version 0.7 vor Wechsel auf Version 0.8

Line 
1
2-- ALKIS PostNAS 0.7
3
4-- Post Processing (pp_) Teil 1: Anlegen der Tabellen und Views
5
6-- Stand
7
8--  2012-02-13 PostNAS 07, Umbenennung
9--  2012-02-17 Optimierung
10--  2012-02-28 gkz aus View nehmen
11--  2012-04-17 Flurstuecksnummern auf Standardposition
12--  2012-04-23 ax_flurstueck hat keinen Unique Index mahr auf gml_id,
13--             ForeignKey vorÃŒbergehend ausgeschaltet.
14--  2012-04-25 simple_geom fuer pp_flur
15--  2013-04-18 Kommentare.
16--  2012-10-24 Neue Tabelle fÃŒr die PrÀsentation von Straßennamen und -Klassifikationen
17--  2014-08-25 Straßennamen aufteilen in _P und L
18--  2014-09-08 Korrektur
19
20-- ============================
21-- Tabellen des Post-Processing
22-- ============================
23
24-- Einige Informationen liegen nach der NAS-Konvertierung in der Datenbank "verstreut" vor.
25-- Die dynamische Aufbereitung ÃŒber Views und Functions wÃŒrde zu lange dauern und somit lange
26-- Antwortzeiten in WMS, WFS, Buchauskunft oder Navigation (Suche) verursachen.
27
28-- Im Rahmen eines "Post-Processing" werden diese Daten nach jeder Konvertierung (NBA-Aktialisierung)
29-- einmal komplett aufbereitet. Die benötigten Informationen stehen somit den Anwendungen mundgerecht zur VerfÌgung.
30
31-- Die per PostProcessing gefÃŒllten Tabellen bekommen den Prefix "pp_".
32
33-- ToDo:
34
35-- Muss *multi*-Polygon sein? Gibt es "zerrissene" Fluren/Gemarkungen?
36-- Der View "gemeinde_gemarkung" kann entfallen, wenn Navigation umgestellt wurde.
37
38SET client_encoding = 'UTF-8';
39
40-- Alles auf Anfang!
41
42-- DROP VIEW gemeinde_person_typ1;
43-- DROP VIEW gemeinde_person_typ2;
44-- DROP VIEW gemeinde_gemarkung;
45-- DROP TABLE pp_gemeinde;
46-- DROP TABLE pp_gemarkung;
47-- DROP TABLE pp_flur;
48
49
50-- Tabelle fuer Gemeinden
51-- ========================
52
53  CREATE TABLE pp_gemeinde (
54    gid                 serial,
55    land                integer NOT NULL,
56    regierungsbezirk    integer,
57    kreis               integer,
58    gemeinde            integer NOT NULL,
59    gemeindename        character varying(80),
60 -- gkz                 character varying(03),  -- wird (noch) nicht benutzt
61    anz_gemarkg         integer,                -- Anzahl Gemarkungen
62    CONSTRAINT pp_gemeinde_pk PRIMARY KEY (land, gemeinde)
63  );
64
65CREATE UNIQUE INDEX pp_gemeinde_gid_ix ON pp_gemeinde (gid);
66
67-- Gesamtflaeche
68SELECT AddGeometryColumn('pp_gemeinde','the_geom','25832','MULTIPOLYGON',2);
69CREATE INDEX pp_gemeinde_gidx ON pp_gemeinde USING gist(the_geom);
70
71-- vereinfachte Gesamtflaeche
72SELECT AddGeometryColumn('pp_gemeinde','simple_geom','25832','MULTIPOLYGON',2);
73CREATE INDEX pp_gemeinde_sgidx ON pp_gemeinde USING gist(simple_geom);
74
75
76  COMMENT ON TABLE  pp_gemeinde                IS 'Post-Processing: Gemeinde';
77  COMMENT ON COLUMN pp_gemeinde.gemeinde       IS 'Gemeindenummer';
78--COMMENT ON COLUMN pp_gemeinde.gkz            IS 'Gemeindekennziffer fÃŒr Mandant';
79  COMMENT ON COLUMN pp_gemeinde.the_geom       IS 'prÀzise Geometrie aus Summe aller Gemarkungen';
80  COMMENT ON COLUMN pp_gemeinde.simple_geom    IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Übersichten in kleinen MaßstÀben.';
81
82
83-- Tabelle fuer Gemarkungen
84-- ========================
85
86-- FÃŒr die Regelung der Zugriffsberechtigung einer Gemeindeverwaltung auf die
87-- FlurstÃŒcke in ihrem Gebiet braucht man die Information, in welcher Gemeinde eine Gemarkung liegt.
88-- 'ax_gemeinde' und 'ax_gemarkung' haben aber im ALKIS keinerlei Beziehung zueinander - kaum zu glauben!
89-- Nur ÃŒber die Auswertung der FlurstÃŒcke kann man die Zuordnung ermitteln.
90-- Da nicht stÀndig mit 'SELECT DISTINCT' sÀmtliche FlurstÌcke durchsucht werden können,
91-- muss diese Information als (redundante) Tabelle nach dem Laden zwischengespeichert werden.
92
93  CREATE TABLE pp_gemarkung (
94    gid                 serial,
95    land                integer NOT NULL,
96    regierungsbezirk    integer,
97    kreis               integer,
98    gemeinde            integer NOT NULL,       -- fast ein Foreign-Key Constraint
99    gemarkung           integer NOT NULL,
100    gemarkungsname      character varying(80),
101    anz_flur            integer,                -- Anzahl Fluren
102    CONSTRAINT pp_gemarkung_pk PRIMARY KEY (land, gemarkung)
103  );
104
105CREATE UNIQUE INDEX pp_gemarkung_gid_ix ON pp_gemarkung (gid);
106
107-- GesamtflÀche
108SELECT AddGeometryColumn('pp_gemarkung','the_geom','25832','MULTIPOLYGON',2);
109CREATE INDEX pp_gemarkung_gidx ON pp_gemarkung USING gist(the_geom);
110
111-- vereinfachte GesamtflÀche
112SELECT AddGeometryColumn('pp_gemarkung','simple_geom','25832','MULTIPOLYGON',2);
113CREATE INDEX pp_gemarkung_sgidx ON pp_gemarkung USING gist(simple_geom);
114
115
116COMMENT ON TABLE  pp_gemarkung               IS 'Post-Processing: Gemarkung. u.a. liegt in welcher Gemeinde';
117COMMENT ON COLUMN pp_gemarkung.gemeinde      IS 'Gemeindenummer';
118COMMENT ON COLUMN pp_gemarkung.gemarkung     IS 'Gemarkungsnummer';
119COMMENT ON COLUMN pp_gemarkung.the_geom      IS 'prÀzise Geometrie aus Summe aller Fluren';
120COMMENT ON COLUMN pp_gemarkung.simple_geom   IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Übersichten in kleinen MaßstÀben.';
121
122
123-- Tabelle fuer Fluren
124-- ===================
125
126  CREATE TABLE pp_flur (
127    gid                 serial,
128    land                integer NOT NULL,
129    regierungsbezirk    integer,
130    kreis               integer,
131    gemarkung           integer NOT NULL,
132    flurnummer          integer NOT NULL,
133    anz_fs              integer,                -- Anzahl FlurstÃŒcke
134    CONSTRAINT pp_flur_pk PRIMARY KEY (land, gemarkung, flurnummer)
135  );
136
137-- ALTER TABLE pp_flur ADD COLUMN gid serial;
138CREATE UNIQUE INDEX pp_flur_gid_ix ON pp_flur (gid);
139
140-- GesamtflÀche
141SELECT AddGeometryColumn('pp_flur','the_geom','25832','MULTIPOLYGON',2);
142CREATE INDEX pp_flur_gidx ON pp_flur USING gist(the_geom);
143
144-- vereinfachte Gesamtflaeche
145SELECT AddGeometryColumn('pp_flur','simple_geom','25832','MULTIPOLYGON',2);
146CREATE INDEX pp_flur_sgidx ON pp_flur USING gist(simple_geom);
147
148
149COMMENT ON TABLE  pp_flur                IS 'Post-Processing: Flur';
150COMMENT ON COLUMN pp_flur.gemarkung      IS 'Gemarkungsnummer';
151COMMENT ON COLUMN pp_flur.the_geom       IS 'Geometrie aus Summe aller FlurstÃŒcke';
152COMMENT ON COLUMN pp_flur.simple_geom    IS 'vereinfachte Geometrie fÃŒr die Suche und die Anzeige von Übersichten in kleinen MaßstÀben.';
153
154
155-- =======================================================
156-- Tabelle fuer die Zuordnung vom EigentÃŒmern zu Gemeinden
157-- =======================================================
158
159-- Die Feststellung, ob eine Person (Mit-) EigentÃŒmer von mindestens einem
160-- FlurstÃŒck in einer Gemeinde ist, geht ÃŒber viele Relationen.
161-- Dabei kann es mehrere Varianten geben.
162-- Dies sollte nach dem Laden ermittelt und gespeichert werden, damit dies in
163-- der Navigation auf einfache Art verwendet werden kann.
164
165
166-- Prefix "pp_" verwenden  ?
167
168--DROP TABLE gemeinde_person;
169
170  CREATE TABLE gemeinde_person (
171    land                integer,
172    regierungsbezirk    integer,
173    kreis               integer,
174    gemeinde            integer,
175    person              character varying(16),
176    buchtyp             integer,
177    CONSTRAINT gemeinde_person_pk PRIMARY KEY (gemeinde, person)
178  );
179
180COMMENT ON TABLE  gemeinde_person            IS 'Person ist EigentÃŒmer von mindestens einem FlurstÃŒck in der Gemeinde';
181COMMENT ON COLUMN gemeinde_person.gemeinde   IS 'Gemeindenummer';
182COMMENT ON COLUMN gemeinde_person.buchtyp    IS 'Typ der Buchung 1=direkt, 2=Recht einer Buchungsstele an andere Buchungsstelle';
183COMMENT ON COLUMN gemeinde_person.person     IS 'gml_id von Person';
184
185-- Index zum Filtern in der Buchauskunft
186CREATE INDEX person_gemeinde  ON gemeinde_person (person, gemeinde);
187
188
189-- Flurstuecksnummern-Position
190-- ===========================
191-- Die Tabelle "pp_flurstueck_nr" ersetzt den View "s_flurstueck_nr" fÃŒr WMS-Layer "ag_t_flurstueck".
192
193--DROP TABLE pp_flurstueck_nr;
194  CREATE TABLE pp_flurstueck_nr (
195    gid         serial,
196    fsgml       character(16),
197    fsnum       character varying(10),  -- zzzzz/nnnn
198    CONSTRAINT pp_flurstueck_nr_pk  PRIMARY KEY (gid)  --,
199-- Foreign Key
200-- ALT:
201--    CONSTRAINT pp_flurstueck_nr_gml FOREIGN KEY (fsgml)
202--      REFERENCES ax_flurstueck (gml_id) MATCH SIMPLE
203--      ON UPDATE CASCADE ON DELETE CASCADE
204-- Durch Änderung Patch #5444 am 2012-04-23 hat 'ax_flurstueck' keinen Unique-Index mehr auf gml_id
205-- Ersatzweise einen ForeignKey ÃŒber 2 Felder?
206  );
207
208SELECT AddGeometryColumn('pp_flurstueck_nr','the_geom','25832','POINT',2);
209
210-- Geometrischer Index
211CREATE INDEX pp_flurstueck_nr_gidx ON pp_flurstueck_nr USING gist(the_geom);
212
213-- Foreig-Key Index
214CREATE INDEX fki_pp_flurstueck_nr_gml ON pp_flurstueck_nr(fsgml);
215
216COMMENT ON TABLE  pp_flurstueck_nr           IS 'Post-Processing: Position der FlurstÃŒcksnummer in der Karte';
217COMMENT ON COLUMN pp_flurstueck_nr.fsgml     IS 'gml_id des zugehörigen FlurstÃŒcks-Objektes';
218COMMENT ON COLUMN pp_flurstueck_nr.fsnum     IS 'Label, Darzustellende FS-Nummer als Bruch';
219COMMENT ON COLUMN pp_flurstueck_nr.the_geom  IS 'Position der FlurstÃŒcksnummer in der Karte';
220
221
222-- =====
223-- VIEWs
224-- =====
225
226-- Ein View, der ÃŒbergangsweise die ehemalige Tabelle mit diesem Namen ersetzt.
227-- Wird in der Navigation verwendet, bis alle Datenbanken auf die Struktur 0.7 umgestellt
228-- sind *UND* die Navigation an die neuen Tabellen angepasst ist.
229
230CREATE VIEW gemeinde_gemarkung
231AS
232  SELECT g.land, g.regierungsbezirk, g.kreis, g.gemeinde, k.gemarkung, g.gemeindename, k.gemarkungsname
233  FROM pp_gemarkung k
234  JOIN pp_gemeinde  g
235    ON k.land = g.land
236   AND k.gemeinde = g.gemeinde;
237
238COMMENT ON VIEW gemeinde_gemarkung
239  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.';
240
241
242-- VIEWs  fuer die Zuordnung vom EigentÃŒmern zu Gemeinden
243-- ------------------------------------------------------
244
245-- "Normale" Buchungen
246
247CREATE VIEW gemeinde_person_typ1
248AS
249  SELECT DISTINCT
250    p.gml_id          AS person,
251    g.land, g.regierungsbezirk, g.kreis, g.gemeinde
252
253  FROM ax_person               p
254
255-- Person < benennt < Namensnummer
256  JOIN alkis_beziehungen      bpn  ON bpn.beziehung_zu   = p.gml_id  -- Bez. Person - Nummer
257  JOIN ax_namensnummer         n   ON bpn.beziehung_von  = n.gml_id
258
259-- Namensnummer > istBestandteilVon > Blatt
260  JOIN alkis_beziehungen      bnb  ON bnb.beziehung_von  = n.gml_id  -- Bez. Nummer - Blatt
261  JOIN ax_buchungsblatt        b   ON bnb.beziehung_zu   = b.gml_id
262
263-- Blatt < istBestandteilVon < buchungsStelle
264  JOIN alkis_beziehungen      bbg  ON bbg.beziehung_zu   = b.gml_id  -- Bez. Blatt  - Stelle
265  JOIN ax_buchungsstelle       s   ON bbg.beziehung_von  = s.gml_id
266
267-- buchungsStelle < istGebucht < flurstÃŒck
268  JOIN alkis_beziehungen      bsf  ON bsf.beziehung_zu   = s.gml_id  -- Bez. Stelle - FlurstÃŒck
269  JOIN ax_flurstueck           f   ON bsf.beziehung_von  = f.gml_id
270
271  JOIN ax_gemarkung            k   ON f.land             = k.land
272                                  AND f.gemarkungsnummer = k.gemarkungsnummer
273  JOIN gemeinde_gemarkung      g   ON k.gemarkungsnummer = g.gemarkung
274
275  WHERE bpn.beziehungsart = 'benennt'
276    AND bnb.beziehungsart = 'istBestandteilVon'
277    AND bbg.beziehungsart = 'istBestandteilVon'
278    AND bsf.beziehungsart = 'istGebucht';
279
280COMMENT ON VIEW gemeinde_person_typ1 IS 'Personen die EigentÃŒmer vom FlurstÃŒcken in einer Gemeinde sind. Typ1 = nomale Buchungen mit direkter Beziehung.';
281
282
283-- "Komplexe" Buchungen mit Rechten von Buchungen an Buchungen
284
285CREATE VIEW gemeinde_person_typ2
286AS
287  SELECT DISTINCT
288    p.gml_id          AS person,
289    g.land, g.regierungsbezirk, g.kreis, g.gemeinde
290  FROM ax_person               p
291
292-- Person < benennt < Namensnummer
293  JOIN alkis_beziehungen      bpn  ON bpn.beziehung_zu   = p.gml_id  -- Bez. Person - Nummer
294  JOIN ax_namensnummer         n   ON bpn.beziehung_von  = n.gml_id
295
296-- Namensnummer > istBestandteilVon > Blatt
297  JOIN alkis_beziehungen      bnb  ON bnb.beziehung_von  = n.gml_id  -- Bez. Nummer - Blatt
298  JOIN ax_buchungsblatt        b   ON bnb.beziehung_zu   = b.gml_id
299
300-- Blatt < istBestandteilVon < buchungsStelle1
301  JOIN alkis_beziehungen      bbg  ON bbg.beziehung_zu   = b.gml_id  -- Bez. Blatt  - Stelle
302  JOIN ax_buchungsstelle       s1  ON bbg.beziehung_von  = s1.gml_id
303
304-- buchungsStelle2 < an < buchungsStelle1
305  JOIN alkis_beziehungen      bss  ON bss.beziehung_von  = s1.gml_id  -- Bez. Stelle  - Stelle
306  JOIN ax_buchungsstelle       s2  ON bss.beziehung_zu   = s2.gml_id
307
308-- buchungsStelle2 < istGebucht < flurstÃŒck
309  JOIN alkis_beziehungen      bsf  ON bsf.beziehung_zu   = s2.gml_id  -- Bez. Stelle - FlurstÃŒck
310  JOIN ax_flurstueck           f   ON bsf.beziehung_von  = f.gml_id
311
312  JOIN ax_gemarkung            k   ON f.land             = k.land
313                                  AND f.gemarkungsnummer = k.gemarkungsnummer
314  JOIN gemeinde_gemarkung      g   ON k.gemarkungsnummer = g.gemarkung
315
316  WHERE bpn.beziehungsart = 'benennt'
317    AND bnb.beziehungsart = 'istBestandteilVon'
318    AND bbg.beziehungsart = 'istBestandteilVon'
319    AND bss.beziehungsart = 'an'
320    AND bsf.beziehungsart = 'istGebucht'
321 -- LIMIT 100  -- Test-Option
322;
323
324COMMENT 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.';
325
326
327-- Statistik ÃŒber die Buchungs-Typen je Gemeinde
328CREATE VIEW gemeinde_person_statistik
329AS
330  SELECT p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp, count(p.person) as personen
331  FROM   gemeinde_person    p
332  JOIN   gemeinde_gemarkung g
333    ON   p.land     = g.land
334    AND  p.regierungsbezirk = g.regierungsbezirk
335    AND  p.kreis    = g.kreis
336    AND  p.gemeinde = g.gemeinde
337  GROUP BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, g.gemeindename, p.buchtyp
338  ORDER BY p.land, p.regierungsbezirk, p.kreis, p.gemeinde, p.buchtyp;
339
340COMMENT ON VIEW gemeinde_person_statistik IS 'ZÀhlen der Personen je Gemeinde und Buchungstyp';
341
342
343-- Views zur Analyse der vereinfachten Geometrie
344-- Finden des richtigen Genauigkeits-Wertes fÃŒr die Vereinfachung der Geometrie
345
346-- z.B. Gemeinden:  10 Meter
347--      Gemarkungen: 4 Meter
348
349CREATE VIEW pp_gemeinde_analyse AS
350  SELECT land, gemeinde, gemeindename,
351         st_npoints(the_geom)    AS umring_alle_punkte,
352         st_npoints(simple_geom) AS umring_einfache_punkte
353  FROM pp_gemeinde;
354
355
356CREATE VIEW pp_gemarkung_analyse AS
357  SELECT land, gemeinde, gemarkung, gemarkungsname,
358         st_npoints(the_geom)    AS umring_alle_punkte,
359         st_npoints(simple_geom) AS umring_einfache_punkte
360  FROM pp_gemarkung;
361
362
363-- Variante fÃŒr Punkt-Geometrie
364-- Tabelle "pp_strassenname_p" speichert den VIEW "ap_pto_stra".
365CREATE TABLE pp_strassenname_p
366(   gid                    serial NOT NULL,
367    gml_id                 character(16),
368 -- advstandardmodell      character varying[],
369    schriftinhalt          character varying,      -- Label: anzuzeigender Text
370    hor                    character varying,
371    ver                    character varying,
372 -- signaturnummer         character varying,
373 -- darstellungsprioritaet integer,
374    art                    character varying,
375    winkel                 double precision,
376    CONSTRAINT pp_snamp_pk  PRIMARY KEY (gid)
377) WITH (OIDS=FALSE);
378
379-- :alkis_epsg = 25832
380SELECT AddGeometryColumn('pp_strassenname_p','the_geom',25832,'POINT',2);
381CREATE INDEX pp_snamp_gidx ON pp_strassenname_p USING gist(the_geom);
382
383  COMMENT ON TABLE  pp_strassenname_p                IS 'Post-Processing: Label der Straßennamen in der Karte, Punktgeometrie. Auszug aus ap_pto.';
384
385  COMMENT ON COLUMN pp_strassenname_p.gid            IS 'EditierschlÃŒssel der Tabelle';
386--COMMENT ON COLUMN pp_strassenname_p.gml_id         IS 'ObjektschlÃŒssel des PrÀsentationsobjektes aus ap_pto. Zur Verbindung mit Katalog.';
387  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.';
388  COMMENT ON COLUMN pp_strassenname_p.schriftinhalt  IS 'Label, darzustellender Name der Straße oder Klassifikation';
389  COMMENT ON COLUMN pp_strassenname_p.hor            IS 'Horizontale Ausrichtung des Textes zur Punkt-Koordinate: linksbÃŒndig, zentrisch, ...';
390  COMMENT ON COLUMN pp_strassenname_p.ver            IS 'Vertikale   Ausrichtung des Textes zur Punkt-Koordinate: Basis, ..';
391  COMMENT ON COLUMN pp_strassenname_p.art            IS 'Klasse der Straße: Straße, Weg, .. , BezKlassifizierungStrasse';
392  COMMENT ON COLUMN pp_strassenname_p.winkel         IS 'Drehung des Textes';
393  COMMENT ON COLUMN pp_strassenname_p.the_geom       IS 'Position (Punkt) der Labels in der Karte';
394
395-- Variante fÃŒr Linien-Geometrie
396-- Tabelle "pp_strassenname_l" speichert den VIEW "ap_lto_stra".
397CREATE TABLE pp_strassenname_l
398(   gid                    serial NOT NULL,
399    gml_id                 character(16),
400    schriftinhalt          character varying,      -- Label: anzuzeigender Text
401    hor                    character varying,
402    ver                    character varying,
403    art                    character varying,
404 -- winkel                 double precision,       -- bei Linien-Variante nicht benötigt
405    CONSTRAINT pp_snaml_pk  PRIMARY KEY (gid)
406) WITH (OIDS=FALSE);
407
408-- :alkis_epsg = 25832
409SELECT AddGeometryColumn('pp_strassenname_l','the_geom',25832,'LINESTRING',2); -- Hier liegt der Unterschied
410CREATE INDEX pp_snaml_gidx ON pp_strassenname_l USING gist(the_geom);
411
412  COMMENT ON TABLE  pp_strassenname_l                IS 'Post-Processing: Label der Straßennamen in der Karte, Liniengeometrie. Auszug aus ap_lto.';
413
414  COMMENT ON COLUMN pp_strassenname_l.gid            IS 'EditierschlÃŒssel der Tabelle';
415  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.';
416  COMMENT ON COLUMN pp_strassenname_l.schriftinhalt  IS 'Label, darzustellender Name der Straße oder Klassifikation';
417  COMMENT ON COLUMN pp_strassenname_l.hor            IS 'Horizontale Ausrichtung des Textes: linksbÃŒndig, zentrisch, ...';
418  COMMENT ON COLUMN pp_strassenname_l.ver            IS 'Vertikale   Ausrichtung des Textes: Basis, ..';
419  COMMENT ON COLUMN pp_strassenname_l.art            IS 'Klasse der Straße: Straße, Weg, .. , BezKlassifizierungStrasse';
420  COMMENT ON COLUMN pp_strassenname_l.the_geom       IS 'Position (Punkt) der Labels in der Karte';
421
422-- ENDE --
Note: See TracBrowser for help on using the repository browser.