Pl:Simple 3D buildings
Simple 3D Buildings - opisuje oznaczenia podstawowych 3D atrybutów dla budynków.
![]() |
To jest podstawowy schemat dla budynków 3D. Więc jest ograniczony i nie każdą geometria / szczegół można opisać w ten sposób. Możesz użyć rozszerzenia (takiego jak Kendzi3d) i próbować, lub poczekać na następną wersji dla złożonego modelowania. Mile widziane uwagi w Talk page! |
Następujące metody oznaczania są rezultatem 2nd 3D Workshop Garching, gdzie większość programistów 3D zgodziła się wspierać ujednolicony podzbiór tagów w swoich programach. Zasadniczo opisujemy objętość budynku za pomocą dwóch typów obszarów. Kontury budynku przedstawiające ogólną powierzchnię kompleksu budynków oraz części budynku, do opisania jego elementów o rożnej wysokości lub innych atrybutów.
Contents
Zarys budynku
Zarys budynku jest reprezentowany jako obszaru oznaczony building=*. Jest to obszar objęty przez jakąkolwiek część budynku. Inne znaczniki, które odnoszą się do całego budynku (np. adres, jeśli dotyczy) muszą być także umieszczane na tym obrysie budynku. Jeden budynek powinien mieć tylko jeden building=* zarys, kilka building=* nie może być zbitych w jedną bryłę.
Elementy budynku
Jeśli niektóre elementy istniejącego budynku mają różne atrybuty (np. wysokość), mogą one być modelowane jako dodatkowe obszary, oznaczone building:part=yes lub building:part=<type of building:part>.
Zauważmy, że jeśli budynek ma co najmniej jeden obszar oznakowany jako building:part
, zarys budynku nie jest już więcej brany pod uwagę do renderowania jego objętości, chyba, że jest on również oznaczone jako część budynku.
Istnieją trzy sposoby, aby wykorzystać obszar building=* dla renderowania w 3D, w tym przypadku:
- Pokrywamy cały kontur budynku poszczególnymi tagami
building:part
. Obszary te mogą zachodzić na siebie lub mogą być niepołączone, co zależy od konkretnego budynku.
Unikajmy stosowaniabuilding:parts
z nakładającymi się elementami 3D, jeśli to możliwe, zwłaszcza jeśli całość będzie miał wspólną fasadę. - Używamy
building:part
tylko dla tych części, które różnią się od całego budynku.
Ta sprawa wymaga zastosowania relacji building gdzie zarys building=* ma outline a poszczególne części budynkubuilding:part
mają part. - Split the building into horizontal slices (floors stacked on top of each other) and add to each part building:levels=*, building:min_level=*, height=*, min_height=* tags.
Relacja building
Relacja oznaczona tagiem type=building grupuje razem obrys budynku oraz wszystkie jego części building:parts
. Zaleca się, aby stosować relację, jeśli istnieje co najmniej jedna część building:parts
. W przeciwnym razie aplikacja zacznie z powrotem wyszukiwać części budynku tylko w obrysie budynku.
Zobacz także Relations/Proposed/Buildings i ProposedRoofLines#Building_Relation.
Tagi dla obrysu budynków i jego części
Następujące znaczniki mogą być użyte dla obrysów budynków i jego elementów.
Wysokość budynku
Oznaczenie | Komentarz |
---|---|
height=* | Odległość między najniższym możliwym położeniem ściany budynku na poziomie ziemi a górną, najwyższą częścią dachu budynku, bez anten, iglic i innych urządzeń zamontowane na dachu. |
min_height=* | Wysokość między poziomem terenu mierzona w tym samym punkcie co height a dolną płaszczyzną struktury budynku zaczynającej się powyżej poziomu terenu. Należy zauważyć, że gdy stosuje się min_height, wysokością jest nadal odległość od podłoża do góry struktury. Tak więc np. "most" o wysokości 3 metrów, gdzie dolna część mostu jest usytuowana 10 metrów nad poziomem ziemi powinien być opisany jako min_height = 10 i height = 13. |
building:levels=* | Liczba pięter powyżej poziomu ziemi (bez poziomów w dachu), pozwalająca przedstawić strukturę budynku w prosty sposób.
Jeśli oznaczamy nowe budynki, podajmy zawsze wysokość budynku. |
building:min_level=* | Poziomy pominięte w części budynku, analogiczne do min_height. |
Kształt dachu
roof:shape=<kształt dachu>
Kształt dachu większości budynków można scharakteryzować używając katalogu znanych rodzajów dachów.
Dodatkowe kształty dachów mogą być przedstawione później (obecnie brak jeszcze pełnej implementacji) używając zaawansowanych technik jak:
- ręcznego modelowania (np. ProposedRoofLines lub
- rozszerzonego katalogu dachów User:Marek kleciak/Roof table).
Grafika | ![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
---|---|---|---|---|---|---|---|---|---|---|---|---|
roof:shape (kształt dachu) |
flat
płaski |
skillion
jednospadowy |
gabled
dwuspadowy |
half-hipped
pół czterospadowy |
hipped
czterospadowy |
pyramidal
piramida |
gambrel | mansard
mansardowy |
dome
kopułowy |
onion
hełmowy |
round
beczkowy |
saltbox
trzyspadowy |
Dla dachów z kalenicą przyjmujemy, że grzbiet dachu jest równoległy do dłuższego boku budynku. Jeśli jednak tak nie jest, należy wtedy taki dach oznakować szczególnie jako roof:orientation=along (wzdłuż)/ across (w poprzek).
Tag | Komentarz |
---|---|
roof:orientation=along/across | W przypadku dachów z grzbietem, kierunek grzbietu przyjmuje się jako równoległy do dłuższego boku budynku. Ale może być jednoznacznie oznaczony tym tagiem. |
roof:height=* | Wysokość dachu w metrach która jest częścią height=* budynku. |
roof:angle=* | Alternatywny tag dla roof:height=*, wysokość dachu może być opisana w sposób bardziej dokładny poprzez podanie wartości nachylenia boków (w stopniach). |
roof:levels=* | Ilość pięter w dachu, które nie są wliczone w tagu building:levels=*. |
roof:direction=* | Kierunek od części wyższej budynku do niższej jak widok poniżej. Wartości zgodnie z direction=* |
Tag roof:direction=* (value in degree) jest renderowany przez stronę F4 maps dla dachu typu skillion.
Definicja kąta:
Uwaga: Niektóre dachy (np. budynków kwadratowych), nie mogą być dokładnie modelowane według prostych technik opisanych na tej stronie.
Znacznika roof:height=* używamy aby podać wysokość dachu w metrach, zaś dla nachylenia głównej płaszczyzny dachu mierzonej w stopniach uzywamy roof:angle=*.
Znacznik roof:levels=* określa liczbę pięter w obrębie dachu, które nie są obecnie brane pod uwagę w building:levels=*.
Powierzchnia budynku
Key | Comment |
---|---|
building:colour=* | Kolor fasady budynku. Zobacz colour=* dla możliwych wartości. |
roof:colour=* | Kolor dachu budynku. Zobacz colour=* dla możliwych wartości. |
building:material=* | Materiał użyty do pokrycia fasady budynku. <TODO> |
roof:material=* | Materiał użyty do pokrycia dachu. <TODO> |
Przykłady obszarów
Żeby ułatwić społeczności mapowiczy zrozumienie co da się osiągnąć stosując powyższy schemat, zaczęliśmy dodawanie wykonanych zgodnie z nim przykładów. Patrz niżej:
Location | OpenStreetMap (2D) | OSM2World (3D) | OSMBuildings (3D) | OpenScienceMap (3D) | F4 Map (3D) | Kendzi (3D) |
---|---|---|---|---|---|---|
Passau (GER) | Link | Link | Link | |||
Graz 1 (AT) | Link | Link | Link | |||
Graz 2 (AT) | Link | Link | Link | |||
Rostock Südstadt (GER) | Link | Link | Link | |||
Hagen (GER) | Link | Link | Link | |||
Karlsruhe 1(GER) | Link | Link | Link | |||
Karlsruhe 2 (GER) | Link | Link | Link | |||
Coburg (GER) | Link | Link | Link | |||
Leipzig (GER) | Link | Link | Link | |||
Bremen (GER) | Link | Link | Link | |||
Schwerin (GER) | Link | Link | Link | |||
Las Vegas (US) | Link | Link | Link | Link | Link | |
New York (US) | Link | Link | Link | Link | Link | |
Phoenix (US) | Link | Link | Link | Link | Link | |
Syracuse (US) | Link | Link | Link | |||
Chicago (US) | Link | Link | Link | Link | Link | |
Helsinki (FIN) | Link | Link | Link | |||
Watykan | Link | (no rendering) | Link | Link | Link | |
Warsaw (PL) | Link | (no rendering) | Link | |||
Kraków (PL) | Link | (no rendering) | Link | Link | Link | |
Przykłady obiektów
Terminologia
Diagram który może pomóc zrozumieć pewne architektoniczne warunki.
Narzędzia
Następujące narzędzia 3D wykorzystują nowy schemat:
- OSM2World (częściowe wsparcie, obecnie wykorzystuje pozostałe funkcji dla wydania 0.2.0)
- Kendzi3d wspierane
- OSM-3D (częściowe wsparcie, zobacz OSM-3D#Buildings)
- Nutiteq Android 3D mapping SDK [1] (większość kształtów dachy wspomane)
- WikiMiniAtlas (częściowe wsparcie, tylko dach pyramidal)
- OSMBuildings (częściowe wsparcie)
- F4 Map - zobacz http://demo.f4map.com/#
- OpenScienceMap - http://opensciencemap.org/map/ Interpretuje obecnie tylko tagi wysokości / min_wysokości. obszary
building_part
są odejmowane od powierzchni budynków. - Hellomap3d Android 3D mapping SDK . Obsługuje tylko parametr wysokości (na razie) dla 3D wielokątów.
- OSG-Maps (częściowe wsparcie)