DE:OSM2World
OSM2World | |
---|---|
Autor: | Tobias Knerr und andere Mitwirkende |
Lizenz: | GNU Lesser General Public License (kostenlos) |
Plattformen: | Windows, Linux und macOS |
Version: | 0.2.0 (2019-06-23) |
Sprache: | Deutsch |
Webseite: | http://osm2world.org |
Quellcode: | https://github.com/tordanik/OSM2World |
Programmiersprache: | Java |
Erstellt aus OSM-Daten ein 3D Modell der Welt. |
OSM2World (osm2world.org) ist ein Programm, das anhand von OpenStreetMap-Daten ein 3D Modell der Erde erstellt. Das Modell kann in verschiedenen Formaten exportiert werden.
Exportformate
Im Moment werden Wavefront .obj Dateien, .pov Dateien für den POVRay Ray-Tracer, die direkte Ausgabe über JOGL und .png Bilder die über die Ausgabe von JOGL erstellt wurden unterstützt. Zusätzliche Formate können nach Bedarf hinzugefügt werden.
Verwendung von OSM2World
Installation
OSM2World benötigt eine Java-Laufzeitumgebung (JRE) in Version 1.6 oder höher. Bei der Verwendung von JOSM ist dies wahrscheinlich schon vorhanden.
Sobald du Java fertig eingerichtet hast, gehe zu osm2world.org/download, lade das Zip-Archiv mit dem Programm herunter und entpacke es auf deinem Computer.
Benutzeroberfläche
Führe OSM2World von der Kommandozeile aus, indem du den für dein System passenden Starter bzw. das passende Skript ausführst. Dies erlaubt dir, Dateien die OSM-Daten enthalten zu öffnen und durch die Modelle zu navigieren.
- die linke Maustaste verschiebt die Kameraposition
- die rechte Maustaste rotiert die Blickrichtung der Kamera
- das Mausrad zoomt näher heran oder weiter weg
Alternativ ist die Steuerung über die Tastatur möglich. Zur Fehlerbehebung können verschiedene Ebenen eingeblendet werden, man kann in die Formate .png, .pov und .obj exportieren. Bitte beachte dass die Darstellung eine schlechtere Qualität hat und ggf. rechenintensiv ist - sie dient hauptsächlich zur Fehlerbehebung.
Bedienung über die Kommandozeile
Dies ist eine kurze Dokumentation der Bedienung von OSM2World über die Kommandozeile. Habe bitte Verständnis dafür, dass die Syntax der Befehle sich in der Zukunft wahrscheinlich noch ändern wird.
Eingabe und Ausgabe
-i/--input <file>
.osm, .osm.gz, .osm.bz2 oder .osm.pbf Eingabe Datei-o/--output <file> ...
eine oder mehrere Ausgabe Dateien. Die Dateinamen-Erweiterung bestimmt das Format der ausgegebenen Datei, möglich sind .obj, .pov und .png.--resolution <horiz_res>,<vert_res>
Größe in Pixel für die Ausgabe in einer bestimmten Auflösung (nur als .png).
Kamera
Das Festlegen einer Kamera und Projektionsart ist für das Erzeugen von .png-Ausgaben zwingend nötig, für .pov-Dateien ist dies optional (aber dennoch empfohlen). Du kannst entweder eine senkrechte oder perspektivische Projektion verwenden. Von dieser Wahl hängen die verfügbaren Parameter bei der Definition einer Kamera ab.
Senkrechte Projektion:
--oview.angle <angle_deg>
Kippwinkel der Ansicht in Grad (Standard 30°, nur Winkel zwischen 0° und 90° möglich)--oview.from <N/E/S/W>
Himmelsrichtung aus der die Ansicht erzeugt wird, Standard ist Süden (S)- es gibt zwei Alternativen bei der Festlegung der Grenzen des Rechtecks (in der Ebene mit der Höhe 0), das auf die Ansichts-Ebene projiziert wird:
--oview.bbox <lat>,<lon> <lat>,<lon> ...
Liste der Koordinaten, das Rechteck wird so klein gewählt, das gerade alle angegebenen Koordinaten enthalten sind--oview.tiles <zoom>,<tileX>,<tileY> ...
eine oder mehrere Kacheln (festlegen über Zoomstufe und x/y-Koordinate), das Rechteck wird so klein gewählt, das gerade alle angegebenen Kacheln enthalten sind
Perspektivische Projektion:
--pview.pos <lat>,<lon>,<ele>
Kamera-Position für die perspektivische Anzeige--pview.lookAt <lat>,<lon>,<ele>
Blickrichtung für die perspektivische Anzeige--pview.aspect <value>
Verhältnis (Breite/ Höhe) für die perspektivische anzeige, Standard ist das Seitenverhältnis der gewählten Auflösung--pview.fovy <angle_deg>
Blickwinkel in vertikaler Richtung in Grad, Standard sind 45°
Protokollierung
--performancePrint
zeigt nach jedem Abschnitt der Berechnung die benötigte Zeit in der Konsole an--performanceTable <file>
fügt die für die Berechnung benötigten Zeiten einer Datei hinzu (formatiert als Tabelle im Plain-Text Format )
Andere Parameter
--config <file>
Konfigurationsdatei mit zusätzlichen Optionen (siehe OSM2World/Configuration file). Kann sowohl bei Benutzung der grafischen Oberfläche als auch über die Konsole verwendet werden--gui
startet die Benutzeroberfläche--help
zeigt eine kurze Beschreibung der verfügbaren Kommandozeilen-Optionen an--version
zeigt die verwendete Version von OSM2World an
Bei Verwendung von --gui
, --help
oder --version
, wird OSM2World keine Berechnung durchführen sondern nur den einzelnen Befehl ausführen.
Konfigurationsdatei
--parameterFile <file>
eine Datei, die pro Zeile eine Reihe von Optionen enthält
Falls du mehrere Berechnungen durchfüühren möchtest, kannst du die Parameter (ohne den Programmbefehl) in eine Datei schreiben und diese als Argument an OSM2World übergeben. Zeilen die mit #
beginnen werden ignoriert.
Der Hauptvorteil liegt darin, dass Berechnungen in Gruppen durchgeführt werden wenn sie z.B. die gleichen --input
und --config
Optionen besitzen. So kann beispielsweise der selbe Datensatz schnell aus verschiedenen Blickwinkeln gerendert werden.
Beispiele
./osm2world -i example.osm -o image.png --pview.pos +50.2607,+10.965,+110.0 --pview.lookAt 50.2623367,10.9640632,0
Speichert ein von example.osm erzeugtes 3D-Modell als image.png. Das Rendering verwendet eine perspektivische Projektion mit den angegebenen Koordinaten für Kameraposition und Blickrichtung.
./osm2world -i example.osm -o tileexample.pov
Erzeugt ein 3D-Modell von example.osm und exportiert es als example.pov. Die POVRay-Datei enthält keine Angabe der Kamera, daher muss diese manuell festgelegt werden bevor man example.pov an POVRay übergeben kann.
./osm2world -i example.osm -o tileexample.pov --oview.tiles 12,2186,1312 12,2186,1313
Erzeugt ein 3D-Modell von example.osm und speichert es als tileexample.pov. Die POVRay-Datei enthält alle nötigen Angaben über die Kamera die für eine senkrechte Projektion nötig sind. Das erzeugte Bild wird sich auf die kleinstmögliche Fläche beschränken, die die zwei Kacheln 2186,1312 und 2186,1313 (beide auf Zoomstufe 12) enthält. Die Kamera schaut aus Richtung Süden auf das Bild. Kein --oview.angle
Parameter wurde übergeben, daher wird der Standardwert von 30° verwendet. Dieser Blickwinkel ist besonders interessant, da hierbei zwei "normale" Kacheln so abgebildet werden, das sie genau als eine rechtwinklige Kachel dargestellt werden (da sin(30°)=0.5).
Java-Library Schnittstelle
OSM2World kann als Java-Bibliothek verwendet werden. Die bevorzugte Methode ist die Verwendung der ConversionFacade
Klasse (en: class), die die ganze Konvertierung in einen Aufruf (en: method call) hüllt. Damit können Eingabedaten bereitgestellt und Ausgabeziele festgelegt werden. Ebenso kann ausgewählt werden, welche Arten von Welt-Objekten erstellt werden sollen, und Feinabstimmungsparameter zur Verfügung gestellt werden - oder natürlich einfach Standardeinstellungen. Werfe dazu einen Blick auf javadoc.
Brauchst du noch mehr Funktionen, verstehst den Code nicht, etc., dann frage einfach!
Pläne und Einschränkungen
Höhendaten
Die Berechnung von Höhendaten in OSM2World ist zum aktuellen Zeitpunkt sehr instabil und standardmäßig deaktiviert, ist als experimentelle Option aber vorhanden. Die Berechnung soll Attribute (wie beispielsweise incline=*, layer=*, tunnel=* und bridge=*) und absolute Höhendaten (ele=*, entweder direkt von OSM oder von externen Quellen (SRTM oder OpenDEM) verwenden.
Problembehebung
- Es wird empfohlen nur kleine Kartenausschnitte zu verwenden, speziell bei Verwendung der Benutzeroberfläche. OSM2World verwendet aktuell noch stellenweise ineffiziente Algorithmen zur Berechnung.
- Falls OSM2World der RAM ausgeht, kann man das Start-Skript editieren und den Wert des Parameters
-Xmx
(maximal von Java nutzbarer Speicher) erhöhen. - Bei sonstigen Fragen verwende talk page, die OSM2World mailing list oder nimm an den relevanten Diskussionen in anderen Foren oder Mailing-Listen teil. Du kannst auch direkt User:Tordanik kontaktieren.
Links und Quellen
Projektseiten
- Website mit Download Archiv und Bildschirmfotos
- Github repository
- The Google Summer of Code 2016 Development
Dokumentation
Anwendungsbeispiele und tagging
- OSM2World Maps - schnelle Karte mit von OSM2World erzeugten Kacheln
- Simple 3D Buildings - Art der Markierung, die von OSM2World unterstützt wird