Neues von maps.osm2world.org

Die Idee “Musikalischer Klang und architektonische Gestalt sollten sich in der Form ihres Hauses verbinden.” laut obigen Artikel erklärt die abgerundeten Formen dieses Hauses. Meiner Meinung nach ist das sogar sehr gut umgesetzt.

Edbert (EvanE)

Beispiel: Kirche:

Hab ich derzeit mit 2 Ways getaggt:
A : building=yes (Gesamtgebäude)
B : building:part=yes (Turm)

Wenn ich’s richtig verstehe fehlt also noch die Relation und A muss gleichzeitig auch ein building:part sein?

Haste 'ne Empfehlung? Bosch PLR 25 ok?

moin

chris66: wenn beides ein Gebäude ist, fehlt der building:part von A OHNE B (mal C genannt) und dann die Relation mit A,B und C.
So wie hier: http://84.115.129.21/gallery3/var/albums/OSM/ABC.png

Da sieht man, das B und C zusammen A ergeben. Getaggt werden B und C unterschiedlich, gemeinsame Tags (z.B. material=stone) kann an A dran.

edit

Nur bei dem hier (ABCD):
http://84.115.129.21/gallery3/index.php/OSM/ABCD

tagge ich das so, das C und D sich durchdringen (D ist z.B. ein Turm, der höher als C ist).
Z.B. tagge ich C mit height=10, und dann bei D height=20
Man kann bei D min_height= setzen, welches die height von C ist (sozusagen auf C einen Teil draufsetzen).
Z.B.: C height=10 ; bei D dann: min_height=10 height=20. So das beim rendern erst C gerendert wird und dadrauf dann D extra gerendert wird, das macht aber bei schrägen Dächern Probleme.
Eigentlich müsste man aus C den Teil von D ausschneiden, aber das ist zu kompliziert… edit

Amiga4000

Wenn ich das gewünschte Taggingschema richtig verstanden habe, sind da 2 Dinge die ich nicht verstehe, bzw. wo ich das Tagung nicht intuitiv und unnötig kompliziert finde:

  1. Warum muss jeder Teil mit building:part getagt werden. Angenommen jemand tagt eine Kirche und denkt sich, der Turm ist ja höher. Zeichnet das Kästchen rein als building:part, trägt die Höhe ein und denkt nicht an den Rest des Gebäudes. Ergebnis: In 3D wird nur der Turm gezeichnet. Der Rest des buildings nicht.
    Ein building ohne parts wird ja schliesslich auch in 3d gezeichnet. Das ist ja ein Widerspruch in sich. Dann dürfte man kein building ohne parts rendern.

  2. Warum soll ich das ganze in eine Relation packen, wenn die doch nichts abbildet, bzw. keinen Informationsgehalt hat? Das Building umrahmt schliesslich bereits das gesamte Gebäude, und die parts sich im building enthalten.

Dieser Satz aus dem Abschnitt Building parts sollte das erklären:
Note that if a building has at least one area tagged as building:part=yes,
the building outline is no longer considered for volume rendering,
unless it is also tagged as a building part.

Zu Deutsch:
Wenn es ein Building Part gibt, dann wird das Gesamtgebäude nicht mehr zum 3D-Rendern verwendet, es sei denn, es ist ebenfalls als Building Part erfasst.

Wie das genau zu interpretieren ist, und ob/wann die Relation notwendig ist, konnten wir in diesem Thread bisher nicht genau klären. OSM2WORLD braucht die Building Relation wohl nicht, wenn alle Teile als Building Part erfasst sind. Andere 3D-Renderer könnten ggfs. die Building Relation immer brauchen.

Die Building Relation stellt eine Verbindung zwischen den verschiedenen Building Part und dem Building Outline her. Von daher wäre es falsch zu sagen, dass sie keine Information enthält.

Edbert (EvanE)

Ich wollte es ja eigentlich nicht schreiben, aber wo nun gerade danach gefragt wird.
Bei Aldi-Süd gibt es ab diesen Donnerstag (also morgen 7.2.2013) einen Laser-Entfernungsmesser LRF-600 G für 100 Euro mit sechsfacher Vergößerung des Suchers und angegebenen (bis zu) 600 Meter Messdistanz.

Interessant vielleicht auch diese Vorstellung mit Leser-Kommentaren, um das Gerät wenigstens grob einschätzen zu können.
Eine Suche nach “LRF-600 G” sollte noch weitere Treffer bringen, da das Gerät bereits einmal bei Aldi Süd angeboten wurde.

Edbert (EvanE)

Ha, gerade gefunden:
http://wiki.openstreetmap.org/wiki/3D_building

:slight_smile: Amiga

Moin,
meine Fragen von gestern sind wohl in der Diskussion um building:part untergegangen, aber ich schiebe einfach nochmal eine hinterher:

Kann es sein, dass die Angabe des Standes der Daten nicht stimmt? “About” sagt “Last update contains data up to 2013-02-06 03:57:56.”, Gebäude von gestern sind aber nicht enthalten, obwohl der Timestamp der Tiles neu ist.

Bzgl. der building parts eine Frage, weil die Diskussion über die verschiedenen Möglichkeiten wohl nicht dokumentiert ist: Warum wird das eigentliche Building ignoriert, sobald ein building:part vorhanden ist? Für mich klingt das am Ende sehr kompliziert (gerade auch wenn noch eine Relation gefordert wird). Da muss ich things-change zustimmen, das klingt für mich nach einem komplizierten Tagging um das Rendering einfacher zu gestalten.

Glaube ich eigentlich nicht, liegt aber evtl. daran, dass das ganze etwas komplizierter ist: Das Datum in der About-Seite sagt, wann wir den letzten Dump runtergeladen haben. Zu diesem Zeitpunkt sind die darin enthaltenen Daten aber schon ca. 1 Tag alt. Alle Tiles die nach diesem Zeitpunkt gerendert werden, sind von diesem neuen Dump. Den Zeitpunkt der Kachel solltest du dann bei zoom=13-18 anschaun. Bei zoom=12 ist es immer das Datum der aktuellsten zoom=13-Kachel.

Falls du dennoch meinst, dass hier ein Fehler vorliegt, sag mir bitte die Tilenummer, dann überprüfe ich das.

Das ist technisch etwas schwer weil der Mapnik-Layer ja nicht von uns kommt. Wenn wir den jetzt drehen stehen aber alle Beschriftungen,… auf dem Kopf. Außerdem müssten wir das Drehen selbst auch noch irgendwo programmieren: Entweder unsere Server als Proxy verwenden und dort on-the-fly drehen oder irgendwie in OpenLayers mit JS drehen. Aber wegen den Beschriftungen denk ich nicht dass wir das machen werden oder es überhaupt viel Sinn macht.

Ich versuche mal etwas Klarheit in die Diskussion um building:part zu bringen. Dabei ist es wichtig zu unterscheiden, 1. was “Simple 3D Buildings” spezifiziert, 2. was evtl. eine sinnvolle Konvention wäre und 3. was OSM2World unterstützt.

Die Vorgehensweise nach Simple 3D Buildings:

  • building=yes wird für die Gesamtfläche genutzt. Dort stehen auch die Tags fürs Gesamtgebäude.

  • die Teile werden jeweils als building:part eingetragen. Dabei muss die Gesamtfläche noch einmal komplett mit building:part-Flächen überdeckt sein, einen “Rest” darf es nicht geben.

  • Tags, die nur für ein Gebäudeteil gelten, stehen am Gebäudeteil - ansonsten werden Tags wie Höhe oder Material vom Gesamtgebäude “geerbt”.

  • eine Relation mit type=building wird angelegt, die die building-Fläche und die building:part-Flächen als Member enthält. Die Rolle für Gebäudeteile ist dabei nicht spezifiziert und auch eigentlich egal, da ein Teil ja bereits durch das building:part-Tag als solches erkennbar ist.

Es scheint in der Diskussion zwei Aspekte dieses Schemas zu geben, die besonders oft als unpraktisch empfunden werden: Die Relationen sowie die Notwendigkeit, die gesamte Fläche noch einmal mit building:part abzudecken.

Die Relationen wurden aus zwei Gründen eingeführt: Weil sie in einigen wenigen Fällen unverzichtbar für eine einfache Auswertung sind (nämlich dann, wenn sich die “Footprints” von Gebäuden in 2D überlappen), und weil sie auch in anderen Fällen die Auswertung effizienter und einfacher machen.
Sehr viele Mapper verwenden die Relation allerdings in der Praxis bei Fällen der zweiten Gruppe nicht. Wer die Relation unpraktisch findet, der sollte sie meiner Meinung nach lieber weglassen als gar keine 3D-Gebäude zu taggen. OSM2World benötigt die Relation nicht.

Dass wir uns auf dem 3D-Workshop entschieden haben, eine komplette Überlappung der Gesamtfläche mit building:part-Flächen zu fordern, hat auch wieder mehrere Gründe. Der wichtigste ist aber, dass wir nichts am Tagging normaler Gebäude, also der building-Flächen, ändern wollten. Die Tags am building=* (also name etc., aber auch Dinge wie height) sollen daher weiterhin fürs Gesamtgebäude gelten.
Das bedeutet, dass z.B. ein Kirchturm mit ins height-Tag am Gesamtgebäude eingerechnet werden müsste, auch wenn der Kirchturm noch einmal einzeln als building:part gemappt ist. Also würde das Gesamtgebäude zwangsläufig alle niedrigeren Teile “verschlucken”, wenn es trotz Vorhandensein eines oder mehrerer building:part weiterhin gerendert würde.
OSM2World ist auch hier wieder etwas toleranter: Flächen von Gebäudeteilen werden von der Gesamtfläche subtrahiert und der verbliebene Rest wird mit den Attributen - Höhe, Material etc. - des Gesamtgebäudes gerendert. Das funktioniert allerdings nicht zuverlässig, wird von anderen Renderern definitiv nicht unterstützt und führt bisweilen zu Darstellungsfehlern. Hier bin ich mir daher nicht sicher, ob das wirklich eine gute Idee ist.

Ich hoffe, dass diese Erklärung etwas weiterhilft. :slight_smile:

PS: Zum Datum hat Peda ja schon etwas geschrieben. Ich werde später auch noch mal alle Posts durchgehen, um nach “untergegangenen” Fragen zu suchen.

Dann passt das ja und der dump ist schon etwa 10 Stunden alt gewesen zu diesem Zeitpunkt. “contains data up to” habe ich so verstanden, dass das die tatsächliche Zeit wäre.

Vielleicht kann man entweder die Funktion deaktivieren oder einfach die nach Norden ausgerichtete Karte zeigen - mittem im Indischen Ozean zu landen macht die Sache für den User etwas kompliziert :slight_smile:

Die Relation mit type=building ist insoweit ein Problem, als es die schon in einem anderen Zusammenhang gibt. Gemeinsamkeit ist eigentlich nur die Gesamtfläche also das Building-Outline. Von daher schlage ich vor, die Rollen “outline” und “part” zu verwenden, auch wenn dies von Simple 3D Buildings aus nicht erforderlich wären. So kann man die verschiedenen Nutzungsfälle anhand der benutzten Rollen auseinanderhalten oder ggfs. sogar kombinieren.

Da bin ich mal gespannt, wie mein Beispiel gerendert wird. Da überlappen sich die building:part nämlich in Realität und in meinen Daten. Bis jetzt habe ich noch keine Relation verwendet, was nach deiner Erklärung zu Problemen führen kann. Die Relation werde ich unabhängig vom Ergebnis nach dem nächsten Renderlauf ergänzen.

Mir hat das auf jeden Fall geholfen.
Oder kurz ausgedrückt: Vollständige Überdeckung mit Building Parts, damit die 3D-Informationen unabhängig von der Grundfläche sind. (Ausnahme: Gebäude ohne Building Parts)

Edbert (EvanE)

Was mache ich bei einem rechteckigen Gebäude, das in der Mitte einen höheren Teil hat? Bis jetzt habe ich ersteinmal das Gebäude mit der Höhe des niedrigen Teils plus einen “Aufbau” der oben drauf sitzt - das passt auch vom Material und Farbe her.
Dürfte ich jetzt an das Hauptgebäude einfach noch ein building:part dazu setzen? Oder muss ich ein neues Objekt dafür anlegen mit der gesamten Grundfläche? Oder, dritte Möglichkeit, ein multipolygon für den äußeren, niedrigen Gebäudering?
Und die umgekehrte Variante davon ist mir auch noch nicht ganz klar: Ein zweistöckiges Gebäude mit einem kleinen Innenhof, der aber nur ein Stockwerk “tief” ist.
Vielleicht können wir ja ein paar weitere Beispiele mit Tagging im wiki sammeln.

Achja, vielleicht noch eine Idee für die default-Settings: Gebäude scheinen etwa 10 Meter hoch zu sein, building:roof hängt aber irgendwo auf 2m - vielleicht könnte man das etwas höher machen wenn keine Werte angegeben sind? Würde wahrscheinlich besser aussehen.

Moin!

Mueschel: ich hab in so einem Fall einfach 2 building:part gemacht, einmal das building outline und einmal die mitte mit dem höheren Teil. Dazu die Höhen bei beiden Teilen korrekt. Wichtig ist in diesesm Fall die Relation.
Dann wirds korrekt gerendert.
http://maps.osm2world.org/?h=128&view=N&zoom=18&lat=47.06469&lon=15.47065&layers=B0TTFF
Dort die Hochhäuser mit dem Kasten für den Lift auf dem Dach habe ich so gemappt.
http://www.openstreetmap.org/browse/relation/2443818

Also: einmal das Outline mappen mit building=*
Dann die building:part IN dem outline mappen, in deinem Fall einmal das gesamt Gebäude, dann extra dazu den höheren Teil.
Und jedem building:part eine entsprechende Höhe geben.

Beim umgekehrten Fall würd ich erstmal tricksen: den innenhof als einen building:part mappen, dann das drumherum in 2 building:part aufteilen. Und dann die Höhen zuweisen.
Etwas komplizierter: http://www.openstreetmap.org/browse/relation/2452410

Amiga

@Amiga4000: Interessant finde ich an deinem Vorschlag, dass du dem way 108215648

building=yes
UND
building:part = yes

gegeben hast. Wenn das so funktioniert, dann ist es für Kirchen auch leichter. Relation(1xGrundgebäude und 1xTurm [als building:part “oben drauf”]), fertig.

Edit: Das hatte ich aus den bisherigen Erklärungen nicht so heraus gelesen. Da hatte ich es immer so verstanden, dass ein
A: 1xway → Building=yes
B: 1xway → building:part = yes (für den Kirch-Turm)
C: 1xway → building:part = yes (für um den Kirch-Turm herum)
benötigt wird. Und dann noch eine Relation.

Bisher:

Deine Version: A = way/108215648

@Amiga4000: Habe grad gesehn, dass du auf der Doktor-Robert-Graf-Straße 6 ein Gebäude “gebaut” hast das in osm2world eine interessante Dachform hat. Wäre es möglich, das Dach nach dem von User:Aschilli/ProposedRoofLines beschriebenen Prinzip zu mappen und damit der Realität ein Stück näher zu kommen? Dann wären auch nicht mehr zwei zusätzliche Linien (188969510 und 188969511) für je eine Gebäudehälfte erforderlich. Und wenn dies funktionieren würde, kann die Relation dann gelöscht werden?

Moins,

Konstruiertes Beispiel: ein rechteckiges Gebäude mit Innenhof, bei dem allen Dachteile (nur) Richtung Innenhof geneigt sind. Das würde so ziemlich alle meine Frage beantworten.

Gruß Wolf

Hallo Wolf,
3dr:type=2.5
Du kannst dort auch Donut Topologie haben.

Moin

reneman: ja, da kann man was machen, kam nur noch ned dazu. Kannst ja ändern, Luftbilder hat der JOSM.

Und die Geschichte mit der Kirche: ja, das geht auch so. ABER vorsicht! Wenn A ein spitzes Dach hat, du bei B eine min_height angibst, kann unter B ein Loch entstehen!
Und es kann 3D Renderer gebenm die A und B genau auswerten wollen und Überschneidungen absolut nicht mögen.
Ich bleibe da lieber bei dem ABC Ansatz: http://84.115.129.21/gallery3/index.php/OSM/ABCD
(wo wie gesagt, D etwas problematischer ist).

Amiga4000