Mapowanie pod render 3D

Ostatnio spotkałem się z mapowaniem pod render 3d. Niby niewolno, ale sporo obiektów jest tak zmapowanych. Co wy na to?

Zgodnie z opisem budynek ma 10 cm wysokości, ale się składa z kilku brył i tutaj: F4map Demo - Interactive 3D map

Wygląda całkiem nieźle. Tylko jak dla mnie nie do końca jest to poprawne. Przy okazji przymierzania się do wprowadzenie wysokości budynków w trybie automatycznym natknąłem się na cos takiego. I się zastanawiam co z tym. @Mateusz_Konieczny co ty na to?

In my opinion that is wrong. A user who doesn’t care about building parts would get the information that one building is 0.1 meter tall. The main building should have the maximum value of its parts:

Mimo że budynek został podzielony na części, cały budynek może mieć także znaczniki building:levels=* i height=*, z maksymalną wartością wspomnianego znacznika dla dowolnej części budowlanych.

From Key:building:part - OpenStreetMap Wiki

Fałszywe informacje powinny zostać wykasowane.

A jak jakieś narzędzie sobie nie radzi z tym to powinno być poprawione.

building=retail też jest wątpliwe swoją drogą.

Tak, wiem że skasowanie fałszywej wysokości spowoduje że niektóre narzędzia przestaną sobie radzić.

Takie tagowanie jest bardzo powszechne w całym Wrocławiu i bez tego tagu popsute będzie renderowanie 3D.
Overpass

Ale nie powinno się zmieniać jednej rzeczy, nawet potencjalnie niepoprawnej, kiedy w jednym miejscu w taki sam sposób zmapowane jest tak wiele obiektów, a w szczególności bez wcześniejszego przedyskutowania zmian.
To jest tak, jakbym zmienił S3 na highway=motorway bez zmiany innych ekspresówek.

i? Jest to błędne i do poprawienia. Przywracanie tego jest błędne

Nie wiem czy to jest już posprzątane ale przez sporo czasu w Wrocławiu były budynki gdzie każdy schodek mapowany był jako osobny building=*

ani jedno ani drugie prawidłowe nie jest, niezależnie od popularności w danym mieście

https://wiki.openstreetmap.org/w/index.php?title=Mistagging_for_the_renderer

(aczkolwiek zalecałbym się zapytać osób ogarniających 3D jak to zrobić prawidłowo, powinno się dać)

Ale nawet jak się nie da, nie uzasadnia to obecności fałszywych i błędnych danych.

Są sytuacje gdzie da się dyskutować i naginać, ale masowe podawanie że budynek ma 10cm wysokości nie jest do obrony.

Jak coś jest totalnie i ewidentnie błędne to można to zmieniać.

Gdyby w Wrocławiu każdy budynek był mapowane jako amenity=prison to poprawa tego nie wymaga konsultacji.

6 Likes

Z tego co pamiętam (ostatnio nie zajmuję się 3D) to do prawidłowego renderu w F4map nie potrzeba oznaczać tej wysokości na minimalnej wysokości 0.1m jeżeli wszystkie building:part są zawarte w obrysie building=* i (albo) utworzenie relacji building. Chociaż relacja była chyba potrzebna tylko do wtyczki Kendzi3D Josma (już nie działa)
https://wiki.f4map.com/render
Przykład budynku, który trzyma się zasad OSM i dobrze się renderuje w 3D:

1 Like

Który dokładnie renderer jest rzekomo taki upośledzony?

Np. w F4 budynki, które nie mają tagu building:levels=* lub height=*, pojawiają się z jakąś domyślną wysokością, co mogłoby przykryć inne części building:part=*.
Do zaznaczania całkowitej wysokości budynku służy relacja building.

Czy jesteś w stanie podać jakiś przykład? Ponadto, to już tak trochę na marginesie, ale z ciekawości zastanawia mnie, jak może wyglądać taki budynek, o którym wiadomo na tyle dużo, że można zmapować wysokości lub piętra poszczególnych jego części, ale nie jest znana ani wysokość ani liczba kondygnacji całości? :thinking:

Element building też, i przekłamywanie wartości height w nim tylko po to, aby uzyskać określony efekt, jest niedopuszczalne.

3 Likes

Wysokość określa ‘height’, ‘building:levels=*’ jest tylko informacją o ilości pięter. Jeżeli nie ma ‘height’ F4map przyjmuje wysokość piętra 3m.

  • height is generated semi-randomly from way_id if neither specified with height tag nor with building:levels tag (we use 3m/levels).
1 Like

Ten argument najbardziej mnie przekonuje. Podstawowa wartość powinna być aplikowana do ogółu budynku - bez specjalizacji. Jeśli gdzieś wysokość jest inna (wyższa/niższa) to można ją nadpisać poprzez building part. Uważam że jeśli building part ma wysokość niższą niż domyślna wartość na całości, to silnik renderu powinien w tym miejscu obniżyć budynek, a nie tylko nakładać na siebie (union). Brzmi jak ograniczenie w renderze.

4 Likes

Jak oceniacie zmapowanie pod 3D tego budynku ?
Z tego co się orientuję przy mapowaniu pod 3D wykorzystuje się relacje typu building a nie typu multipolygon gdzie wszystkie elementy mają rolę inner.
O ile OSM Carto toleruje jeszcze takie tagowanie, to już np. w OSMAnd pojawia się w tym miejscu plama :frowning:

Czy takie zmapowanie jest poprawne ?

Nie ma powodu, aby building:part były oznaczone jako inner w multipoligonie. W rzeczywistości multipolygon nie jest w ogóle potrzebny. Usunąłbym relację i przeniósł znaczniki na zewnątrz. Relacja type=building nie jest absolutnie konieczna, jeśli wszystkie building:parts są częścią obrysu budynku i nie ma wystających części lub innych szczególnych przypadków.

Przetłumaczone z DeepL

6 Likes

Hi ivan

Can you please then take a look at this building ?

As this is a more complex building, if I understand it correctly , the relation should be changed to type=building with all the small rectangles like i.e. here take the role of “part” while the outline of the building should instead of area=yes get building=yes + all of the tags transferred + take the role of “outline” in the type=building relation.

In the second relation this way should take the role of “outer” while this way should take the role of inner ?

Is that correct ?

to jest ewidentnie błędne, niepoprawne i wadliwe

multipolygon bez ani jednego outer nie ma sensu

1 Like

Taka ciekawostka, że nowy widok MapTiler OMT (z wektorowymi kafelkami) pozwala zobaczyć podziały na building:part, czyli i mapowanie pod render 3D.

W końcu więcej sensu może mieć połączenie importu z EGiB (czyli obrys parteru) + najszerszy, ręczny obrys budynku wzięty np. z projektu.

Można mieć wątpliwości, czy to jest w ogóle zamierzone. W tej formie ten render to trochę koszmarek, bo wizualizuje w całości bryły nakładające się na inne, których jedyną rolą jest obejście ograniczeń renderera 3D i które w tymże 3D są w większości niewidoczne.