3D Straßen anhand OSM daten generieren?
Ich sitze seit ein paar wochen an einem projekt, welches OSM Daten in 3D Straßen meshes umwandelt. Allerdings habe ich das problem, dass alle straßen über einzelne Punkte verbunden sind (grün). Und die straßen nur als linien gespeichert sind (schwarz). Wenn ich nun ganz simpel diesen linien eine breite gebe (rot), funktioniert das ansich ganz gut. Aber wenn sich eine z.b. 4 spurige straße in 2 spurige straßen aufteielt (Beispiel B), funktioniert das nichtmehr. Obwohl sie natürlich nebeneinander sein sollten. Ich sitze da schon ewig dran und komme auf keine Lösung. Vielleicht kann mir ja jemand eine einfache Antwort geben.
Vielen Dank bis hierhin!
2 Antworten
Knotenpunkte lassen sich nicht ohne weitere Logik sauber bauen.
Damit haben sich aber bereits Menschen auseinandergesetzt. Ich habe hier ein Tutorial für Unity gefunden, in dessen Beschreibung sich auch ein technischer Vortrag – Die Grundlage für die Methode – mit mehr Details finden lässt.
Das sollte auch auf deine Daten anwendbar sein, und sicherlich lässt sich das, was hier manuell bleibt, automatisieren.
Im Internet lassen sich ebenfalls weitere Techniken finden (Beispiel Suchbegriff: "road mesh generator junction").
Ich weiß jetzt nicht, in welchem Format deine breiten Linien gespeichert sind, aber falls es möglich ist, könntest du daraus auch rechteckige Objekte (mit vier Eckkoordinaten) machen und dann, wenn 2 der rechteckigen Objekte aufeinandertreffen, die jeweiligen Außenkanten miteinander verbinden, indem du die Durchschnittskoordinaten dafür nimmst. D.h., in deinem Y-Abzweig würden die beiden dünneren Linien dann dicker werden, wenn sie auf die dickere Einzellinie treffen und du müsstest die mittleren beiden Ecken dann miteinander verbinden