Pl:Schemat tagowania budynków 3D
Ten artykuł opisuje schemat oznaczania podstawowych atrybutów 3D budynków.
Mile widziane uwagi na stronie dyskusji!
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 różnej wysokości lub innych atrybutów.
Mapowanie
Obrys budynku
Obrys budynku jest reprezentowany jako obszar 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=* obrys, 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
, obrys budynku nie jest już więcej brany pod uwagę do renderowania jego objętości, chyba że jest on również oznaczony jako część budynku.
Istnieją trzy sposoby, aby wykorzystać obszar building=* do 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:part
z nakładającymi się elementami 3D, jeśli to możliwe, zwłaszcza jeśli całość będzie miał wspólną elewację. - Używamy
building:part
tylko do tych części, które różnią się od całego budynku.
Ta sprawa wymaga zastosowania relacji building gdzie obrys building=* ma rolę outline, a poszczególne części budynkubuilding:part
rolę part. - Podziel budynek na poziome części (piętra ułożone jedno na drugim) i dodaj do każdej części znaczniki building:levels=*, building:min_level=*, height=*, min_height=*.
Relacja building
Relacja oznaczona tagiem type=building grupuje razem obrys budynku oraz wszystkie jego części building:part
. Zaleca się stosować relację, jeśli istnieje co najmniej jedna część building:part
. 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 obrysu budynku i jego części
Następujące znaczniki mogą być użyte do obrysu budynku i jego elementów.
Budynek
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. |
Powierzchnia budynku
Key | Comment |
---|---|
building:colour=* | Kolor elewacji budynku. |
building:material=* | Materiał użyty do pokrycia elewacji budynku. |
Dach
Kształt dachu
Możesz scharakteryzować roof shape budynku, korzystając z katalogu znanych typów dachów.
Kształt | ||||||
---|---|---|---|---|---|---|
roof:shape | gabled | flat | hipped | pyramidal | skillion | half-hipped |
Kształt | |||||
---|---|---|---|---|---|
roof:shape | round | gambrel | mansard | dome | onion |
Dodatkowe tagi dachowe
Klucz | Komentarz |
---|---|
roof:orientation=along/across | W przypadku dachów gdzie grzbiet dachu jest równoległy do dłuższego boku budynku, to domyślnie jest wartość along . Ale może być jednoznacznie oznaczony tagiem roof:orientation=along. Jeśli jest poprzecznie to oznaczamy tagiem roof:orientation=across
|
roof:height=* | Wysokość dachu (tj. wysokość elewacji dachowej) jest obliczana jako całkowita wysokość ściany (height=*) minus wysokość dolnego poziomu dachu (min_height=*). |
roof:angle=* | Alternatywnie do roof:height=*, wysokość dachu można może być opisana w dokładniejszy sposób podając kąt u szczytu dachu pomiędzy obu powierzchniami (w stopniach). |
roof:levels=* | Liczba pięter pod dachem, które nie zostały jeszcze ujęte w building:levels=*. |
roof:direction=* | Kierunek od tylnej strony dachu do przedniej, jak widać na załączonym szkicu, czyli kierunek, w którym zwrócona jest główna powierzchnia dachu. Wartość powinna być kierunkiem kardynalnym (N, S, E, W, NW, SE) lub kątem w stopniach, zaczynając od północy, zgodnie z ruchem wskazówek zegara. |
roof:material=* | Najbardziej dominujący materiał dachu. Przydatne w połączeniu z roof:colour=*. |
roof:colour=* | (Dominujący) kolor dachu. Przydatne w połączeniu z roof:material=*. |
Inne wspólne wartości i problemy
W przypadku 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).
Wartość | Komentarz |
---|---|
saltbox | problematyczne ze względu na sprzeczne definicje i znaczenia słowa „saltbox” w tym kontekście. [1] [2] |
double_saltbox, quadruple_saltbox | Jak wyżej. |
sawtooth | Dachy w stylu fabrycznym. |
cone, conical | Oba używane rzadko. |
side_hipped | Połowa dachu hipped, a nie to samo, co dach half-hipped. Jeden pionowy bok szczytowy, jeden 'spadek' z trzema pochyłymi powierzchniami. Jest to powszechne w domach w zabudowie bliźniaczej, gdzie cały budynek ma dach czterospadowy, ale każdy dom ma boczny dach czterospadowy. |
lean_to | Niejasne, prawdopodobnie powinno być skillion. |
shed | Niejasne, prawdopodobnie powinno być gabled lub skillion. |
gabled_row | Niejasne, czasem stosowany na dachu sawtooth, czasem na rzędzie domów gabled. |
crosspitched | Dach w kształcie krzyża z dwoma szczytami pod kątem 90 stopni. Dach dwuspadowy AKA Cross. |
many | Oznacza, że budynek ma jednocześnie wiele różnych kształtów dachu. Taki budynek może mieć building:part=* niosący własne wartości roof:shape. Historia szczegółowo opisana w roof:shape=many. |
Proponowane tagi
Niektóre dachy (np. budynki kwadratowe) nie mogą być dokładnie modelowane za pomocą prostych technik opisanych na tej stronie.
Dodatkowe kształty dachu są sugerowane w propozycjach S3DB, w tym zaawansowane podejścia do modelowania ręcznego (np. ProposedRoofLines lub częściowo według OSM-4D/Roof table).
Ta sekcja jest szablonem wiki, edytowalna tutaj.
Kierunek pochylenia dachu
Tag roof:direction=* (wartość w stopniach) jest renderowany przez stronę [F4map] dla dachu typu skillion.
Definicja kąta:
ridge = linia grzbietu
eaves= okap
Przykłady obiektów
Żeby ułatwić społeczności mapujących 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 | Streets GL | OSM2World | OSMBuildings | F4 Map | OSM go | Mapbox[3] | Tangram |
---|---|---|---|---|---|---|---|---|
Athens | N/A | |||||||
Beijing (Forbidden City) | N/A | |||||||
Bremen | ||||||||
Chicago | ||||||||
Chongqing
Chaotianmen CBD Working |
N/A | |||||||
Cincinnati | ||||||||
Ciudad Guayana | N/A | |||||||
Coburg | ||||||||
Denver | ||||||||
Edmonton | N/A | |||||||
Graz | ||||||||
Graz 2 | ||||||||
Seiersberg | ||||||||
Hagen | ||||||||
Helsinki | ||||||||
Huesca | N/A | |||||||
Jakarta, Jalan Sudirman | N/A | |||||||
Karlsruhe, Fernmeldeturm | ||||||||
Kópavogur, Smárar | N/A | |||||||
Köln, Dom | ||||||||
Köln, Funkturm | ||||||||
Köln, Rheinauhafen | ||||||||
Köln, Wohngebiet in Neuehrenfeld als "Labor" | ||||||||
Köthen | ||||||||
Köthen 2 | ||||||||
Kraków | N/A | |||||||
Kuala Lumpur | N/A | |||||||
Las Vegas | ||||||||
Leipzig | ||||||||
Lima | N/A | |||||||
London | ||||||||
Lwówek Śląski | N/A | |||||||
Makati | N/A | |||||||
Manila
Malate and Ermita |
N/A | |||||||
Manila
Santa Cruz and Binondo |
N/A | |||||||
Moscow | N/A | |||||||
Moscow 2
with type=building relation |
N/A | |||||||
New York City | ||||||||
Oldenburg, University | ||||||||
Oldenburg, Indiana | ||||||||
Paris, Eiffel Tower | N/A | |||||||
Passau | ||||||||
Phoenix (Arizona) | ||||||||
Potsdam | ||||||||
Rijswijk | ||||||||
Rostock, Südstadt | ||||||||
San Jose (California) | ||||||||
São Paulo | N/A | |||||||
Schwerin | ||||||||
Shanghai
Lujiazui CBD Working |
N/A | |||||||
Shenzhen
Shenzhen Central Business District |
N/A | |||||||
Singapore | N/A | |||||||
Stadum | ||||||||
Syracuse (New York) | ||||||||
Tokyo, Nishi-shinjuku | N/A | |||||||
Tokyo, Odaiba | N/A | |||||||
Toronto | N/A | |||||||
Trondheim | N/A | |||||||
Vatican | N/A | |||||||
Warsaw | N/A | |||||||
Ypenburg, The Hague
Waterwijk (work in progress) |
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) wielokątów 3D.
- OSG-Maps (częściowe wsparcie)
Referencje
Warning: Default sort key "Simple 3D buildings" overrides earlier default sort key "Schemat tagowania budynków 3D".
- ↑ Niektórzy użytkownicy/edytorzy mogą zinterpretować kształt dachu pokazany na tym rysunku jako double_saltbox, podczas gdy saltbox ma wtedy tylko jedną górną krawędź dachu.
- ↑ https://lists.openstreetmap.org/pipermail/tagging/2020-February/thread.html#51110
- ↑ A preview in geojson.io, which is powered by Mapbox GL JS, the Mapbox Standard stylesheet, and Mapbox Streets tiles by default.