Überstehendes Dach

Hallo,

welche ist die beste Methode um ein Haus mit überstehendem Dach zu modellieren?

Und zwar unter folgenden Bedingungen:

  • bei openstreetmap.org soll nur der Grundriss dargestellt werden
  • 3D-Renderer wie OSM2World oder F4Map sollen das Dach darstellen

Ich hatte erst versucht mit building:parts zu arbeiten, aber hier haben die Renderer das Dach einfach weggelassen, F4Map schreibt dazu: “building:part not fully included in a building are ignored.”

Meine Notlösung war nun, die Building-Relation aufzulösen und das Dach als eigenes Objekt mit building=roof zu modellieren, je nachdem wie man den Layer setzt, werden bei openstreetmap.org aber entweder nur der Grundriss des Daches (layer=1) oder beide Grundrisse zugleich gezeichnet. Oder kann man das Dach vielleicht irgendwie “unsichtbar” machen? Allerdings hätte ich die Lösung mit der Building-Relation gerne bevorzugt, weil dann Gebäude und Dach logisch verknüpft sind.

Das Grundproblem ist also, dass die Renderer eine Outline benötigen, die Gebäude und Dach umfassen, während openstreetmap.org aber bitte schön nur den Grundriss des Gebäudes (ohne Dach) zeichnen soll. :frowning:

Viele Grüße
Sinuhe20

laut OpenStreetMap-Datenmodell sollte das building-Objekt den größtmöglichen projizierten Umriss abbilden, d.h. eigentlich müsste das Dach mit Überstand nicht größer sein als das building. Das funktioniert natürlich nicht wirklich, zumindest denke ich dass niemand das so will, es ist ein Problem das aus dem Aufeinandertreffen unterschiedlicher Detailgrade resultiert, vereinfacht (simpel) gibt es keinen Dachüberstand (das würde ich als den Standard ansehen), den tag für den Umriss für „detailliert“ (mit Dachdetails) gibt es eher bisher nicht (diese Details verschwimmen beim kollektiven Ändern im derzeitigen Maßstab und Detailgrad).

Hattest du da eine Relation type=building zum Verbinden von Gebäudeumriss und den beiden Teilen angelegt? Zumindest in OSM2World hebt das die Anforderung, dass alle Gebäudeteile im Umriss enthalten sein sollen, auf. Ich bin mir gerade nicht sicher wie es F4Map damit hält.

Es wäre schön, wenn sich die 2D-Community (wenn ich das so nennen darf) mal entscheiden könnte, wofür der Gebäudeumriss überhaupt stehen soll. Dann könnte man sich auch besser überlegen, wie man das mit 3D unter einen Hut bekommt.

Geht meines wissens nicht so dass es in alle 3D Renderern korrekt dargestellt wird.

https://forum.openstreetmap.org/viewtopic.php?id=69808

Im Simple-3D-Modell wird explizit gefordert, dass das building die Umrisslinie aller Parts sein soll.
https://wiki.openstreetmap.org/wiki/Simple_3D_Buildings

Ja, type war building, aber OSM2World hatte das Dach nicht gezeichnet.

Ok, jetzt sehe ich auch, dass es bei DE:Key:building genau beschrieben wird:

Heißt also, sobald man 3D-Mapping will, muss man den Grundriss als Grundfläche aufgeben.

Die Lösung würde also quasi so aussehen:

  • Dach als building:part (am besten mit layer=1)
  • Outline (=Dachfläche) als building mit sämtlichen Attributen, die für 2D-Darstellung nötig sind (Adresse, Gebäudetyp, Name, usw.)
  • Grundriss (Haus) als building:part mit allen Attributen, die für 3D-Darstellung nötig sind (Höhe, Farbe)

Viele Grüße
Sinuhe20

Ich habe mich mal vor Jahren an einem Gebäudekomplex mit 3-D-Mapping versucht, bei dem es auch einige überstehende Dächer gibt, und zwar genau auf die von Sinuhe20 genannte Weise:

https://www.openstreetmap.org/way/237640423#map=17/51.71282/9.17200

In dieser zu Demonstrationszwecken von 3-D-Mapping existierenden Karte kann man die Ergebnisse sehen.

https://demo.f4map.com/#lat=51.7137035&lon=9.1732813&zoom=20&camera.theta=43.044

F4Map kann das leider nicht.

Das halte ich für einen falschen Ansatz, das ist so wie Mappen für den Renderer, nur weil F4Map (demo) das nicht kann.
Auch mit Relationen kann F4Map Gebäudeteile , deren outline außerhalb des Grundrisses liegt, nicht darstellen. In meinem Beispiel ist es die vorgehängte Glasfassade, die fehlt:
https://demo.f4map.com/#lat=48.7796264&lon=9.1758505&zoom=20&camera.theta=49.297&camera.phi=136.937
osmbuildings.org kann das jedoch (auch wenn das Rendering mir ansonsten bei F4Map besser gefällt):
https://osmbuildings.org/?lat=48.77951&lon=9.17553&zoom=19.6&tilt=45&rotation=-135
Dafür bekommt dann osmbuildings.org die Säulen im EG-Bereich nicht hin :frowning:

Also kein Mappen für den Renderer! Sondern die Daten so, wie es korrekt wäre. Entweder müssen die 3D-Renderer ihr Rendering verbessern oder man kann maximal helfen, wenn man datentechnisch getrennt die outline und den footprint erfasst (und die outline dann nicht in 2d gerendert wird).

Und man muss irgendwann auch akzeptieren, dass gerenderte Karten immer (noch) generalisieren müssen und eben nicht jedes Detail abgebildet werden kann. Kompromisse muss man eingehen.

Ergänzung zu meinem Kommentar in #6: Ich habe mich anschließend wieder vom 3-D-Mapping abgewendet, war mir dann doch zu komplex und zu viele Wenns und Abers damit verbunden. Ich behaupte also nicht, dass das, was ich bei dem Beispiel umgesetzt habe, korrekt ist.

Und wie wäre es korrekt?

Stand heute gibt es für building-Flächen im 3D-Bereich eine klar dokumentierte Empfehlung. Das Problem aus dem Ausgangspost war ja gerade, dass osm-carto nicht das gewünschte Renderergebnis liefert, wenn man dieser Empfehlung aus Simple 3D Buildings folgt (“bei openstreetmap.org soll nur der Grundriss dargestellt werden”).

Ich bin sehr offen dafür, diesen Standard zu ändern, wenn es denn endlich mal klare Vorstellungen gäbe, was der Gebäudeumriss exakt sein soll. Am besten als Proposal. Das ist aber seit 10 Jahren nicht der Fall. Manche plädieren fürs Dachumrissmappen (weil das ja eh ist was man beim Abzeichnen von Luftbildern tut), manche für den Umriss auf dem Erdboden, manche für letzteres aber mit Ausnahmen für Gebäude auf Stelzen wo das seltsame Ergebnisse geben würde, …

Vielleicht ist ja schon die Forderung “Grundriss = gerenderte Fläche” falsch. Denn letztendlich zeichnet osm immer den obersten Layer und das wäre z.B. auch ein abgetrenntes Dach als eigenes Gebäudeteil (oder man denke z.B an Stadttore oder andere Durchgänge). Eigentlich müsste osm sein Rendering so umstellen, dass nur layer=0 gezeichnet wird. Andererseits verstehe ich auch nicht, warum einige 3D-Renderer es nicht hinbekommen, aus der gesamten Relation ihre Bounding-Box zu berechnen anstatt die Outline, die für etwas anderes vorgesehen ist, dafür zweckzuentfremden. Irgendwie macht es für mich aber auch keinen Sinn, Gebäude in 3D zu modellieren, wenn einige Gebäudeteile von den gängigsten Renderern nicht dargestellt werden.