Darstellung von Gebäuden durch mehrere Klassen

Aus kvwmap
Wechseln zu: Navigation, Suche

--Markus Hentschel 11:35, 27. Nov 2006 (CET)

Die Darstellung der Gebäude gemäß ZV-AUT unterscheidet nur zwischen Wohn-/öffentlichen Gebäuden auf der einen und "dem Rest" auf der anderen Seite. Da kann man mehr draus machen, wenn man auf ALK-Konformität verzichtet.

Ich stelle den Gebäudelayer über folgende Sicht dar:

SELECT DISTINCT o.objnr AS oid, o.objart, o.folie, o.the_geom, g.gemeindename, s.strassenname, h.hausnr, os.beschreibung
  FROM alkobj_e_fla o
  LEFT JOIN alknhaus h ON o.objnr = h.objnr
  LEFT JOIN alb_v_gemeinden g ON h.gemeinde = g.gemeinde
  LEFT JOIN alb_v_strassen s ON h.gemeinde = s.gemeinde AND h.strasse = s.strasse
  LEFT JOIN alk_oska os ON o.objart = os.objart
 WHERE (o.folie = '011' OR o.folie = '084')

Die Hausnummer lasse ich nicht über den Layer erzeugen; dafür habe ich einen eigenen Layer "Hausnummer", der per "require" an den Gebäudelyer gekettet ist.

Für die Darstellung habe ich die Gebäude in fünf Klassen zerlegt, die den fünf "Basisklassen" aus dem OBAK, also Wohngebäude, öffentl. Gebäude, Wirtschafts-/Industriegebäude, Handelsgebäude und sonstige Gebäude entsprechen. Ich erzeuge hiermit also kein ALK-Aussehen!!! Die Unterteilung ist reine Geschmackssache, wobei ich allerdings dem OBAK MV insoweit folge, als dieser für diese fünf "Basistypen" definiert, welche Schlüssel dort subsummieren.

Für jeden dieser fünf Gebäudetypen habe ich eine Klasse angelegt und außerdem noch eine Klasse für die Gebäude der Folie 084.

Und so sehen die Einträge in der Expression der jeweiligen Class aus:

- Wohngebäude

([folie] = 011  
AND [OBJART] = 1003 OR [OBJART] >= 1211 
AND [OBJART] <= 1399 OR  [OBJART] >= 2101 
AND [OBJART] <= 2131 OR [OBJART] = 2199)
- Wirtschafts- und Industriegebäude
([folie] = 011 
AND [OBJART] = 1004 OR [OBJART] >= 1701 
AND [OBJART] <= 1799 OR [OBJART] = 2161)
- öffentliche Gebäude
([folie] = 011 
AND [OBJART] >= 1101 
AND [OBJART] <= 1199 OR [OBJART] = 2141)
- Handelsgebäude
([folie] = 011 
AND [OBJART] >= 1401 
AND [OBJART] <= 1499 OR [OBJART] = 2151)
- sonstige Gebäude
([folie] = 011 
AND [OBJART] >= 2301 
AND [OBJART] <= 2921 OR [OBJART] = 1911 OR [OBJART] = 1913)

- nicht katasterm. Gebäude

([folie] = 084)

--Markus Hentschel 09:33, 6. Sep 2007 (CEST)
In der Labeldefinition habe ich "the_force=1" gesetzt. Damit werden wirklich alle Hausnummern dargestellt.