Darstellung von Gebäuden durch mehrere Klassen: Unterschied zwischen den Versionen
Zeile 5: | Zeile 5: | ||
Ich stelle den Gebäudelayer über folgende Sicht dar: | Ich stelle den Gebäudelayer über folgende Sicht dar: | ||
− | SELECT o.objnr AS oid, o.objart, o.folie, o.the_geom, | + | SELECT DISTINCT o.objnr AS oid, o.objart, o.folie, o.the_geom, g.gemeindename, s.strassenname, h.hausnr, os.beschreibung |
− | FROM | + | FROM alkobj_e_fla o |
LEFT JOIN alknhaus h ON o.objnr = h.objnr | LEFT JOIN alknhaus h ON o.objnr = h.objnr | ||
− | WHERE (o.folie = '011' OR o.folie = '084') | + | 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, | + | 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 | + | 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 | + | Und so sehen die Einträge in der Expression der jeweiligen Class aus: |
− | + | - Wohngebäude | |
− | + | ([folie] = 011 | |
− | ([folie] = 011 | + | |
AND [OBJART] = 1003 OR [OBJART] >= 1211 | AND [OBJART] = 1003 OR [OBJART] >= 1211 | ||
AND [OBJART] <= 1399 OR [OBJART] >= 2101 | AND [OBJART] <= 1399 OR [OBJART] >= 2101 | ||
− | AND [OBJART] <= 2131 OR [OBJART] = 2199) | + | AND [OBJART] <= 2131 OR [OBJART] = 2199) |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
- Wirtschafts- und Industriegebäude | - Wirtschafts- und Industriegebäude | ||
− | ([folie] = 011 | + | ([folie] = 011 |
AND [OBJART] = 1004 OR [OBJART] >= 1701 | AND [OBJART] = 1004 OR [OBJART] >= 1701 | ||
AND [OBJART] <= 1799 OR [OBJART] = 2161) | AND [OBJART] <= 1799 OR [OBJART] = 2161) | ||
- öffentliche Gebäude | - öffentliche Gebäude | ||
− | ([folie] = 011 | + | ([folie] = 011 |
AND [OBJART] >= 1101 | AND [OBJART] >= 1101 | ||
AND [OBJART] <= 1199 OR [OBJART] = 2141) | AND [OBJART] <= 1199 OR [OBJART] = 2141) | ||
- Handelsgebäude | - Handelsgebäude | ||
− | ([folie] = 011 | + | ([folie] = 011 |
AND [OBJART] >= 1401 | AND [OBJART] >= 1401 | ||
AND [OBJART] <= 1499 OR [OBJART] = 2151) | AND [OBJART] <= 1499 OR [OBJART] = 2151) | ||
- sonstige Gebäude | - sonstige Gebäude | ||
− | ([folie] = 011 | + | ([folie] = 011 |
AND [OBJART] >= 2301 | AND [OBJART] >= 2301 | ||
AND [OBJART] <= 2921 OR [OBJART] = 1911 OR [OBJART] = 1913) | AND [OBJART] <= 2921 OR [OBJART] = 1911 OR [OBJART] = 1913) | ||
+ | |||
+ | - nicht katasterm. Gebäude | ||
+ | ([folie] = 084) |
Version vom 24. Juli 2007, 12:30 Uhr
--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)