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