Przykłady OSM 3D

Zwrócilem na forum 3D uwage na pewien problem.
http://forum.openstreetmap.org/viewtopic.php?id=23220
Moze ktos z Was wymysli jakis schemat taggingu?

Pozdrowienia,
Marek

Jeśli chodzi o kolorowanie poziomów to przez tworzenie logicznych podtagów.

building:level:colour=lightyellow

Chociaż często nie podajemy “building:level” tylko “height”, “min_height”, lub “building:height”.
Chyba jednak można jej podawać jednocześnie.
Z tym, że wysokości poszczególnych poziomów są równie “wysokość/ilość poziomów”.

Na dzień dzisiejszy F4 Model nie rozpoznaje drzwi i okien, Wtyczka Kendzi ładnie pokazuje je na ścianie budynku., po za jednym wyjątki, że okno nie może być dokładanie nad drzwiami.
Co najbardziej podoba mi się w wtyczce Kendzi, to to, że mogę “wjechać” do wnętrza budynku i wrysować inne obiekty w środku, które ta wtyczka pokazuje.
Coś dla Dotevo, jako rozwinięcie wizualizacji “indoor” w galeriach. :slight_smile:

Marek, znajdź fundusze na zamianę tej wtyczki na niezależną aplikacje.
Byłby to dużo przełom, gdyż ta wtyczka jest bardziej zaawansowana niż F4, dająca więcej możliwości wizualizacji detali.

Jasne. Mysle nad funduszami i wiem ze Kendzi jest dalej niz f4. Poza tym jest ejszcze ekipa na politechnice w Lodzi która tez juz jest daleko…

Dobry pomysł z tym podziałem budynku

Nie mam za dużo czasu na kombinowanie, ale fajnie byłoby bez dzielenia budynku na części opisać

  • część przyziemia (czyli A ze schematu Marka) > wysokość >materiał >kolor
  • kondygnacja powtarzalna (i tu moja propozycja) → tylko (?) w przypadku tego co poniżej piszę → wysokość

kondygnację powtarzalną podzielić (jak pasy jezdni)
– część podokienna → wysokość (jak okno do podłogi to =0) → materiał → kolor
– pas okien → wysokość → materiał → kolor
– pas nadproży (włączając stropy) → wysokość → materiał → ewentualnie wysięg

Tu jest wlasnie pies pogrzebany marcin_b: nie mam obecnie niestety czasu na myslenie nad madra propozycja syntaksu w OSM dla przedstawionego pomyslu. Dlatego zwracam sie do Was.

@Marek
Tak sobie myślę, że najprostszym rozwiązaniem malowania fasady dla każdego poziomu, to chyba użycie relacji łączącej każdy pas.
I tak:
Relacja → type=facade oddzielnie dla każdego odcinka obwodu budynku (front, tył, lewy bok, prawy bok.)
Dla budynku w kształcie wieloboku, można by określać położenie odcinka (elementu budynku) z zależności od środka używając tagu “direction=”.

Element relacji: facade:a; facade:b; itd
height=
min_height=
colour=
width=
material=
i inne szczegółowe tagi dla każdego pasa oddzielnie.

Wladku,
napisz proposal!
Robisz doskonala robote czegokolwiek sie nie chwycisz.
Jestesmy naprawde mocni. Realizacja edytora 3D wymaga przemyslenia i specyfikacji wielu szczególowych tagów. Ktos musi nad tym przysiasc i zaproponowac tutaj spójny system.

O co chodzi w tym wszystkim, po co to?
Sa dwa istotne aspekty jesli chodzi o modele 3D:
a. Polityczny
b. Technologiczny

a.- Sa silne opory jesli chodzi o modele teksturowane z automatu fotografiami: To tak jak Google street view. Mozna naruszyc prawa prywatne ludzi. Paradoksalnie modele gdzie sa jedynie kolory budynków moga byc niekiedy lepsze. Detale sie zmieniaja.
Ludzie latwiej pamietaja opisy ogólne i generalizuja: " to taki zólty budynek". OSM ma szanse byc takim modelem.
b. - Jest cos takiego jak “Level of detail” w systemach GIS. W modelach 3D opisalem to po raz pierwszy w 1998 roku. System sie przyjal.
OSM jest do tych celów genialny: Kiedy trzeba napisac program pokazujacy na stronce internetowej model 3D w czasie rzeczywistym (tak jak próbuje to robic f4-group) to mozna po prostu w zaleznosci od odleglosci obserwatora od obiektu pewne tagi uwgledniac badz nie.

Nie wiem, czy Wy o tym wiecie, ale modele robione przez Nokia Here lub TomTom maja kilka róznych modeli tego samego budynku w bazie danych. W zaleznosci od tego, jak daleko od modelu jestesmy, widzimy albo klocek, albo klocek z dachem, albo budynke z detalami i tekstura. To bledne podejscie. Powinien byc jeden model a wnim rozne atrybuty. A OSM wlasnie to robi

Propozycji było już dużo. Patrz “Category:Proposals”
Generalnie tu jest informacja na temat 3D Development
https://wiki.openstreetmap.org/wiki/3D_Development
Jest również propozycja na OpenStreetMap Forum http://forum.openstreetmap.org/viewforum.php?id=42 aby stworzyć oddzielne forum “3D Development” w celu skomasowania dyskusji na ten temat, połączonej z mailing-list.

Tak, wiem o tym wszystkim.
Jednak mówimy tutaj o dopracowaniu pewnogo szczególu, który opisujesz juz w #226
Dobrze by to bylo wrzucic po angielsku z jakimis szkicami na stronke 3D development…

co myslicie u umieszczeniu idei tutaj:
http://www.kickstarter.com/discover/categories/technology

Zauważyłem, że cześć osób czyta forum “OpenStreetMap Forum” ale nie czyta Wiki, druga grupa, większa, nie czyta forum ale czyta Wiki.

Właściwie to są tylko dwa miejsca na Wiki gdzie można umieścić tego typu informację:

  1. 3D Development/Tagging - https://wiki.openstreetmap.org/wiki/3D_Development/Tagging
  2. Talk:Simple 3D Buildings - https://wiki.openstreetmap.org/wiki/Talk:Simple_3D_Buildings

W pierwszej jest baner, że tam są nieaktualne informacje chociaż “historia” pokazuje, że jest aktualizowana.
Może trzeba zdjąć ten baner?

Więc wrzuć, gdzieś tam, swoje szkice a ja dodam propozycje.

Parę osób zwyczajnie ma inne niki na wiki i forum.

Klonowanie częsci budynków już było poruszane. Np za pomocą relacji tu:
http://forum.openstreetmap.org/viewtopic.php?pid=206061#p206061

Tak, pamietam. Tutaj chodzi jedynie o teksturki w postaci pasków na fasadzie.
Fajny przyklad to np. katedra w Sienie…

Jeśli takie tekstury są wokoło całego domu to można to łatwo osiągnąć tworząc kilka multipolygonów na jednym obrysie, każdy z innymi wysokościami. Jeśli kolory nie zawierają całego budynku, zawsze można stworzyć multipolygony z pojedynczych ścian, jednak wtedy przestaje to być fajne :confused:

Tylko zek jak jeszcze dodatkowo mam wstawiac w takie elementy otwory ( to tak na niedaleka przyszlosc) to juz sie robi masakra. Daltego uwazma ze tekstury tego typu trzeba rozwiazac inaczej niz przy pomocy wielu multopoligonów[1]. Tym bardziej ze kiedysdojda namjeszcze pietra do indoor mappingu…

[1]Przyklad: http://www.openstreetmap.org/#map=19/52.40465/16.92174

To ja jeszcze raz ze swoim przykładem. Najlepiej z obrazkowym :slight_smile:

building=yes
building:levels=6
height=25
building:ground_floor:height=5
building:repetive_floor:height=4

building:ground_floor:strips=2
building:repetive_floor:strips=3

building:ground_floor:strips:height=4.4|.6
building:ground_floor:strips:material=glass|brick
building:ground_floor:strips:color=#99cccc|#993333
building:ground_floor:strips:indent=1.5|0

building:repetive_floor:strips:height=.9|2.5|.6
building:repetive_floor:strips:material=brick|glass|concrete
building:repetive_floor:strips:color=#993333|#99cccc|#cccccc
building:repetive_floor:strips:overhang=0|0|.5

roof:shape=flat
roof:material=tar_paper
roof:colour=#666

Jeden obrys mógłby załatwić wycofanie parteru lub nadwieszenia (o ile nie są wyraźnymi częściami do oznaczenia jako building:part).
Możliwe byłoby komponowanie elewacji budynku ze ścian otagowanych każda inaczej jak wyżej (i te ściany wzięte w relację dla budynku).

Marcinie,
dobre!
Podwies to na forum 3D i wrzuc na Talk
namiary patrz #231

Dalsze uogólnienie schematu:
Niekiedy nie ma sie ilosci pieter (Katedra w Sienie) a paski sa.
Sa takze obiekty nie bedace budynkami np. antena radiowa czy komin pomalowany w paski od pewnej wysokosci.
Jak zalatwic takie przypadki? Pokombinujesz?

Pogrzebalem nieco w 3D w Toruniu. Moze ktos ma ochote to nieco ulepszyc?

Może coś w ten czerwono-żółto-niebieski deseń:

man_made=chimney
height=60
colour=#ffffff (powiedzmy, że to na dole jest białe)

*albo przyjąć jak w tradycyjnym budynku, że ma ground floor, więc
chimney(?):ground_floor:height=18
chimney(?):ground_floor:colour=#ffffff *

facade:repetive_levels=4.67 (żeby ostatniego obcięło :sunglasses: )
facade:repetive_levels:min_height=18

facade:repetive_level:height=9
facade:repetive_level:strips=3

facade:repetive_level:strips:height=3|3|3
facade:repetive_level:strips:color=#ff0000|#ffff00|#0000ff

w przypadku skomplikowanych pasiaków pozostałoby otagowanie:

facade:strips:height=2|1.5|.3|2|1.5|.7|3| itd…
facade:strips:colour=#…|#…|#…|#…|#…|#…|#…|…

Przydałoby się zatem ujednolicić (?) tagi z poprzednim przykładem (tu facade level - tam building floor) i jeszcze tak, żeby nie gryzło się z opisem możliwych pasów na dachu jak na wieży katedralnej w Sienie.

Marek, nie dawaj mi tylko teraz do rozgryzania pasków dachu katedry św. Stefana w Wiedniu :smiley:

Co do wiki, to nie ogarnę tego (raz - czasowo, dwa - lingwistycznie) - jak ktoś chętny - proszę bardzo.

Pomysł z generowanymi teksturami jest fajny ale:

  • do rozdzielania listy wartości w osm przyjęło się stosować znak „;” a nie „|”
  • jeśli masz dwie listy opisujące atrybuty tego samego obiektu to niestety taki zapis robi się strasznie nieczytelny.

Jeśli spojrzysz na taki zapis:
facade:strips:height=2|1.5|.3|2|1.5|.7|3| itd…
facade:strips:colour=#…|#…|#…|#…|#…|#…|#…|…
Nie możesz szybko i jednoznacznie powiedzieć jaki kolor ma pasek nr 10. Kłopoty zresztą zaczynają się gdy liczby elementów na obu listach będą inne.

Jeśli już zapisywać coś takiego to raczej w postaci:
facade:strips:1:height=2
facade:strips:1:colour=#…
facade:strips:2:height=2
facade:strips:2:colour=#…

Albo jeszcze lepiej dla każdego strip’a stworzyć osobną relacje…

Jednak wtedy, będzie to bardzo podobne do stworzenia obrysu z wieloma multipolygonami typu building:part. Przynajmniej w przypadku poziomych pasków.