Programmvorstellung: OSM2World

Anlässlich eines neuen Releases möchte ich mein aktuelles Projekt auch mal hier im Forum vorstellen:

OSM2World

Leser der dev-Mailingliste und Besucher der FOSSGIS kennen es vielleicht schon: Es handelt sich um ein in Java geschriebenes Open-Source-Werkzeug, mit dem man dreidimensionale Modelle auf Basis von OSM-Datenausschnitten erstellen kann. OSM2World funktioniert auf gängigen Systemen wie Windows, Linux und Mac; es kann über eine grafische Oberfläche oder ein Kommandozeileninterface bedient werden.

Wer jetzt noch keine Idee hat, was er damit anstellen könnte:

  • Kartenkacheln für eine “isometrische” Stadtansicht erstellen
  • Eine 3D-Grafik der frisch gemappten Gebäude produzieren und damit z.B. den eigenen Desktop schmücken (oder Werbung für OSM machen ;))
  • Modelle als Ausgangspunkt eines eigenen Projekts mit Blender, POVRay o.a. herstellen
  • Szenen für interaktive Anwendungen, Spiele oder dergleichen generieren
  • OSM2World als Bibliothek in eigene Anwendungen einbauen oder neue Exportformate ergänzen

Es ist nicht schwerer einzurichten als andere typische Java-Software wie JOSM - Windows-Installer oder ähnliche Hilfen gibt es bisher allerdings nicht. Bei wem es nicht auf Anhieb klappt: Ich helfe gern. Mehr Info gibt’s auch im OSM-Wiki (englisch).

Das Programm ist in einem ziemlich frühen Entwicklungsstadium und noch lange nicht so stabil und schnell, wie es sein sollte. Aber: Wenn jemandem noch ein bestimmtes Feature fehlt / das Programm für einen bestimmten Zweck zu langsam ist / ein Objekt nicht gerendert wird / etwas nicht funktioniert … jederzeit bei mir melden! Ich habe mich auch bisher bei der Entwicklung schon an konkreten Wünschen von Nutzern orientiert und werde das weiterhin so halten.

Ach, und wenn jemand mit Texturen, Modellen, Code, beim regelmäßigen Installer-Basteln oder mit eigenen Ideen helfen will: Gerne! :slight_smile:

Mach das Programm Deutschsprachig

Ja, vielleicht nett, aber rein deutschsprachig bremst die internationale Zusammenarbeit und Weiterentwicklung.
Wenn, dann mehrsprachig. Aber ich bei derartigen Projekten liegt der Schwerpunkt meist zuerst auf dem Inhalt und weniger auf der Mehrsprachigkeit…

Aber zurück zum eigentlichen Thema: schaut super aus, dieses Tool!!

Kriegs nicht gestartet. Ich muss doch die Java Executable Datei öffnen, oder?
Mein System: Windows 7 64 Bit, Intel i7

@Kaching_Cacher
bei mir sind zwei *.bat.

@Tordanik
Ich bekomme beim Öffnen der *osm. Datei einen Fehler:
java.io.IOException: could not create a temporary modified copy of the file

(Windows 7, 64)

Ist geplannt, DEM Daten nutzen zu können?

Du kannst theoretisch das .jar direkt starten, aber die OpenGL-Anbindung (die für die grafische Oberfläche nötig ist) funktioniert dann nur mit zusätzlichen Pfadangaben auf der Kommandozeile. Aus dem Grund habe ich .bat-Dateien für die gängigen Systeme beigelegt. In deinem Fall sollte eigentlich die “osm2world-windows-amd64.bat” funktionieren.

Hm … ich erkenne den Fehler, aber ich bin mir nicht sicher, wieso er bei dir auftritt. Was ist das für eine Datei - direkt vom Server oder mit irgendeinem Programm bearbeitet? Kannst du mir die Datei vielleicht mal schicken? (-> http://osm2world.org/contact/)

Vorgesehen ist es. Der Großteil des Programmcodes ist bereits auf die Verarbeitung von zusätzlichen Höhendaten neben den OSM-Daten ausgelegt, momentan werden dort als Eingabe eben noch durchgehend Nullwerte verwendet. Was fehlt ist im Wesentlichen das eigentliche Einlesen echter Daten. Ich habe mich allerdings noch nicht entschieden, welches Format und welche Datenquelle ich verwenden möchte, und habe mit dem Thema DEM auch keine Erfahrung.

Den Fehler erhalte ich auch wenn ich die gepackte OSM laden will (ich glaub Endung gz).
Ungepackt läd es die Datei.

Allerdings rödelt der ewig rum - hab nach 1h abgebrochen - bei einer 1,8 MB großem OSM.
Fortschrittsbalken bei Schritt 1/5 stehen geblieben - gestartet über “osm2world-windows-amd64.bat”.

quasilotte

Allgemein mal folgende Information: OSM2World kann .osm-Dateien und gezippte OSM-Dateien dann lesen, wenn sie mit Osmosis geladen werden können - ganz einfach deshalb, weil es intern Osmosis verwendet. Außerdem können noch .osm-Dateien mit lokalen Änderungen durch JOSM (die von Osmosis normalerweise nicht verstanden werden) gelesen werden. Letzteres geht allerdings nur mit unkomprimierten .osm-Dateien.

Bei einer späteren Phase als 1/5 wären die Performanceprobleme, die mein Programm noch hat, als Ursache in Frage gekommen; dann hätte ich höchstens empfehlen können, durch Bearbeiten des Startskripts in einem Texteditor zusätzlichen Arbeitsspeicher zuzuweisen. Die erste Phase geht aber normalerweise sehr schnell, so dass hier eine andere Ursache vorliegen muss.

Daher auch hier wieder die Bitte, mir doch die Datei vorbeizuschicken.

Okay, mithilfe eines Screenshots hab ich jetzt die Fehlermeldung rausgekriegt:

Java falsch installiert oder wie? Auf der Java-Website zeigt’s mir jedenfalls an, ich hätte’s korrekt installiert. :confused:
Die msvcr71.dll ist auch vorhanden.

Kann es sein, dass du in 32Bit Java installiert hast?
http://www.java.com/de/download/faq/java_win64bit.xml

Klicke mal auf die osm2world-windows-amd64.bat. Dein Fehler bekomme ich, wenn ich auf osm2world-windows-i586.bat klicke

@edwin-lbg: Die Grafiken, die das Tool bei mir generiert sind deutschsprachig :slight_smile:

@tordanik: Das Tool sieht Klasse aus.

unter win7 32 bit bekomme ich es gestartet, unter win7 64 bit weder über jar noch bat.

gibt es irgendwo eine Liste von OSM-Tags, die bereits vom Programm in irgendeiner Weise unterstützt werden?

Da mir die Frage schon mehrfach gestellt wurde, hier eine schnelle Liste aus dem Gedächtnis:

  • type=multipolygon

  • ele, incline, level, surface, height, width für verschiedenste Objekte

  • building, height, building:height, est_height, building:levels für Gebäude

  • tunnel, bridge

  • barrier=bollard/wall/city_wall/fence/hedge

  • highway, service=*, amenity=parking, highway=crossing, step_count; außerdem lanes und oneway zur Breitenschätzung

  • railway

  • waterway, natural=water, amenity=fountain

  • natural=tree/tree_row/wood, landuse=forest, wood=coniferous/deciduous/mixed

  • leisure=pitch/track

  • man_made=flagpole

Ich hab auch damit experimentiert, die Liste der verwendeten Tags automatisch erstellen zu lassen: http://osm2world.org/docs/taglist.txt Die Keys müssten komplett sein, die Tags sind es aber aus technischen Gründen nicht mal annähernd.

Bei vielen noch nicht dargestellten Objekten fehlt übrigens einfach nur das Hinzufügen. Wer also Wünsche hat, einfach mal äußern. Es sei allerdings angemerkt, dass die Standard-Konfiguration von OSM2World ausschließlich physische Gegebenheiten abbildet.

Jetzt noch mal ein komplett anderes Thema: Technische Probleme.

64-Bit-Probleme unter Windows

Die korrekte Datei zum Starten auf Windows-Installationen mit 64 Bit ist osm2world-windows-amd64.bat - egal, ob der Prozessor von AMD ist oder nicht.

Edit: Laut Rückmeldungen im Rest dieses Threads kommt es zu dem Problem auch, wenn 32-Bit-Java installiert ist, und lässt sich durch Installation von Java mit 64 Bit (über den IE64) beheben.

Wenn es trotzdem zu Meldungen wie “Can’t load IA 32-bit .dll on a AMD 64-bit platform” kommt, verstehe ich den Fehler nicht. Laut Internetrecherchen kann es anscheinend, warum auch immer, passieren, dass ein 64-Bit-Java Probleme mit dem Laden von nativem Code hat. OSM2World braucht für den interaktiven Betrieb zwingend native OpenGL-Bibliotheken (auf der Konsole dagegen nur für den PNG-Export). Man kann es dann höchstens einmal damit versuchen, ein 32-Bit-Java zu installieren. Andere Ideen habe ich gerade nicht. :confused:

“Fortschrittsbalken bleibt bei 1/5 stehen”

Bei einem solchen Fall hat sich inzwischen herausgestellt, dass beim Ausschneiden einer Bounding Box mit Osmosis unvollständige Flächen entstanden waren, wodurch der Ladevorgang abgestürzt ist - leider ohne offensichtliche Fehlermeldung. Osmosis muss hier mit dem Parameter completeWays=yes verwendet werden. Das Problem kann leider auch auftreten, wenn man zwar selber den Parameter verwendet, aber eine Datei mit Daten z.B. für ein Bundesland heruntergeladen hat, die ohne ihn erstellt wurde.

@quasilotte: Kann es sein, dass bei dir eine ähnliche Situation vorliegt? Womit hast du die Eingabedatei ursprünglich erstellt?

So war’s, warum muss man da auch extra mit dem 64-bit IE rein. :roll_eyes:

jetzt Java64 über IE64 installiert, da gehts auf einmal.

Kannst du mal building:min_level auswerten?

Wie lange dauert das Laden einer 2,4 MB *.osm Datei aus JOSM gespeichert? Bei mir hing der Ladebalken bei 4/5 und ich habe nach einer halben Stunde abgebrochen. Dauert das so lange, oder hängt das Script dann? Werde morgen wenn ich mal mehr Zeit habe mal kleinere Ausschnitte versuchen.

5,5MB mit 2,5 Ghz Dual mit HT hats bei mir 6 Minuten gedauert. Mit 2 Ghz Dual ohne HT auf 32 Bit vielleicht eine halbe Stunde.

Das kann ich zwar ergänzen. Allerdings ist das Tag nur wirklich sinnvoll im Zusammenhang mit einer Möglichkeit, Gebäudeteile taggen zu können, und ich bin von der bisherigen “Lösung”, Gebäudeteile als Gebäude (building=yes) einzutragen, wenig begeistert.

Stockwerke sind nämlich keine absolute Höhenangabe, wie viel Platz brauchen also diese x nicht existierenden Stockwerke unter dem building:min_level? Normalerweise würde das einfach der Höhe der entsprechenden Stockwerke in denjenigen Gebäudeteilen des Gebäudes, wo sie tatsächlich existieren, entsprechen. Aber dazu bräuchte man eben die Unterscheidung zwischen dem Gesamtgebäude und den Gebäudeteilen…

Wenn also das hübsche Beispielgebäude für building:min_level z.B. am Hang steht (und der Boden ist fast nie perfekt flach) schließen die Dächer der Teile nicht mehr wie vorgesehen bündig ab, und die Fensterreihen der Stockwerke sind ebenfalls nicht auf gleichem Niveau. Dieses konzeptionelle Problem fällt natürlich bei Programmen, die keine Bodenerhebungen berücksichtigen - und das sind die meisten - nicht auf.

Schritt 4/5 ist die Berechnung des Terrains. Die Dauer hängt da kaum von der Menge der Daten, sondern von der Größe der Bounding Box um die Daten ab. Wenn in den Daten ein paar Stromleitungs- oder Fluss-Ways mit zig Kilometern Länge drin stecken, kann das die Fläche schon ziemlich aufblähen. 4/5 und 5/5 sind aber auch im Normalfall mit Abstand die längsten Phasen.

Wie schon erwähnt: Etwas Extra-RAM im Startskript zu spendieren schadet meist auch nicht.