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.
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.
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:
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.
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.