OSM Importer: Automatisierter Nachbau mit OpenStreetMap

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Stoudt.txt tuts doch auch oder gibt es da Unterschiede? Mir sind keine aufgefallen.

    Dateien

    • stdout.txt

      (133,36 kB, 244 Mal heruntergeladen, zuletzt: )
  • Ups, vielen Dank.


    Gleich ein neues Problem:

    Überprüft habe ich schon die Koordinaten der in der main.py und die eingabe beim erstellen der osmdata.lua beides passt zu meiner Karte (Koordinaten in G. Maps eingegeben und die Gewässer abgeglichen).

    Ist das ein TPF2 Koordinatenformat?

  • Die Positionen sind TPF2 Koordinaten, also viel zu groß. Da passen die OSM Daten nicht zu deinen angegebenen Koordinaten.


    Da brauche ich mehr Informationen. Wie hast du den Converter benutzt (python/exe)? Mit welchen Änderungen/Befehlen?

  • Wie bereits gesagt, bringe ich die osmdata.lua-generierung nur durch Zufall fertig(ich weiss nicht wann ich den Prozess anstiessD), inzwischen nun 3x. Es müsste doch ein sichtbares Anzeichen dafür geben das die Konvertierung läuft, oder?


    Ich probiere es mit run.bat oder main.exe, mit "main.exe map.osm osmdata.lua 24576,24576 47.5536190,8.9988814,47.7746353,9.3270573" in Windows Powershell.


    Wenn ich die "run.bat" doppelklicke lässt sich für mich kein Input Argument eingeben, vielleicht weiss ich auch einfach nicht wie, also werden meine Konvertierungen wohl eher auf die exe zurückzuführen sein.


    Ich würde wirklich gerne wissen was ich eingeben muss damit die Konvertierung korrekt gestartet wird.

    Dateien

    • log.7z

      (810,61 kB, 215 Mal heruntergeladen, zuletzt: )
  • Die run.bat ist fertig, wenn sich das Fenster wieder von selbst schließt. Oder der Befehl ist fertig, wenn die Konsole eben wieder ansprechbar ist.

    Währenddessen wird ja das log beschrieben. Man kann da auch reinschauen, wie weit das Programm gerade ist. Man könnte das auch im Konsolenfenster ausgeben, wäre anschaulicher, aber ist ja auch wichtig, das log gespeichert zu haben. Habe keine einfache Möglichkeit gefunden, dass man beides gleichzeitig hat.


    Also bei dir sind die Map Bounds kleiner als die von der OSM Datei, das kann nicht sein. Die OSM Datei sollte immer innerhalb der Kartengrenzen liegen, damit das was gebaut werden soll auch auf der Karte landet. Wenn die Grenzen gleich sind, wird die ganze Karte bebaut. Ich empfehle aber vorher kleinere Bereiche zu exportieren zum Testen.


    Die Map Bounds muss man nur einmal am Anfang richtig festlegen und das kommt eben auf den Kartenauschnitt an, den die Karte repräsentiert. Sprich, Heightmap und Overlay sollten genau diese Koordinaten Grenzen haben. Für die Längenverhältnisse ist man selbst verantwortlich, d.h. man muss vorher schauen, dass die Länge der Koordinaten zur Größe der TPF2 Karte passt. Hier steht im Log, dass die Map Bounds einer Größe von 5,4 x 3 km entsprechen, ist das so gewollt?

  • Danke,


    Das sind die Eckkoordinaten,

    47.5536190, 8.9988814, 47.7746353, 9.3270573


    https://www.google.de/maps/dir/'47.7746353,9.3270573'/47.553619,8.9988814/@47.6620741,9.2099336,10.75z/data=!4m6!4m5!1m3!2m2!1d9.3270573!2d47.7746353!1m0?entry=ttu


    Die Route ist lediglich um zwei punkte mit Maps gleichzeitig anzuzeigen. Meine Karte ist Grössenwahnsinnig im Verhältnis 1:1.


    Wo kommen die 5.4x3 km her? Ich habe die jedenfalls nicht eingstellt. In der Main.py ist unter bounds_length = (24576, 24576)

    Main.py mal angehängt, (Txt ist weil das Forum .py nicht mag.).



    Einstellungen heightmap.skydark.pl

    Dateien

    • main.py.txt

      (2,7 kB, 178 Mal heruntergeladen, zuletzt: )
  • Änderungen in der main.py beenflussen die exe nicht.

    OK dann habe ich wohl etwas falsch verstanden,

    richtig ausführen

    Ich glaube das Problem ist das ich als Laie mit deiner Anleitung(https://github.com/Vacuum-Tube…lob/main/python/README.md) nicht gut genug klarkomme.


    Kannst du vielleicht das Vorgehen für die Exe nochmal etwas Detailierter erklären? Denn Irgendwas fehlt mir, mache ich falsch


    In etwas so:


    Powershell öffnen


    in Modordner gehen,


    main.exe... eingeben


    oder so?



    Finally, you need to define the coordinates of your map excerpt...

    Da Frage ich mich wo ich das machen soll.

  • Die exe ist eine Alternative für Leute die kein Python installieren wollen. Die exe wird einmal über den Code "kompiliert" und steht dann für sich, ist unabhängig von den Quellcode Dateien.


    main.exe lässt sich über die Kommandozeile mit Argumenten ausführen. Entweder mithilfe der bat Datei wo man den Befehl festhalten und per Klick ausführen kann oder halt ins cmd Terminal kopieren (ich vermeide Powershell).


    Ich probiere es mit run.bat oder main.exe, mit "main.exe map.osm osmdata.lua 24576,24576 47.5536190,8.9988814,47.7746353,9.3270573" in Windows Powershell.

    Hier hast du es doch eigentlich schon richtig gemacht?

  • Man soll doch nicht zu viel auf einmal probieren oder?


    Jedenfalls, ich habe die Osmdata.lua immer mit der .bat generiert, jedoch mit Standardeinstellungen. Weil ich der .bat nicht anmerkte, dass sie am Arbeiten war , hielt ich es für wahrscheinlicher, dass meine Eingaben in Powershell Erfolg gehabt hätten.


    ich vermeide Powershell

    Ok jetz weiss ich warum, "main.exe map.osm osmdata.lua 24576,24576 47.5536190,8.9988814,47.7746353,9.3270573" führt in Windows Powershellwas in Powershell zu Fehlermeldungen, dafür gelingt die Konvertierung mit der Eingabeaufforderung.


    So mit der neuen osmdata.lua occured nun ein Error just beim generieren der Städtenamen, dafür keine Städte ausserhalb der Map. Die Karte hat nun im Log auch die richtige Grösse.


    Vielen Dank für deine konstannten Bemühungen mir zu helfen.

    Dateien

    • log_1.7z

      (971,18 kB, 193 Mal heruntergeladen, zuletzt: )
    • stdout_1.7z

      (11,64 kB, 225 Mal heruntergeladen, zuletzt: )
  • Hm da gibts irgendein Hindernis. Ist die Karte leer?

    Es könnte auch sein, dass eine Stadt da hin gerutscht ist, wo bei dir auf der Karte Wasser ist.

    Ich habe dafür letztens einen Workaround geschrieben. Zieh dir doch bitte nochmal die aktuelle Version und ersetze den res Ordner.


    Oder wie gesagt, teste besser erstmal ein 4x4 km Gebiet (am besten auf Land) um das Ergebnis zu sehen und zu schauen ob alles passt. Bei 180 000 Edges dauert das Bauen mindestens 10h...

  • Ohne Wasser kann ich die Ortsnamen generieren. Ich habe jedoch die ganze Mod ersetzt, nicht nur den res Ordner.


    Mit Wasser gibt es weiter einen Error.

  • Von einem Fehler zum nächsten:



    So siehts aus:

    (Beispielhaft)

  • Wie ich dir prophezeit habe, kann man keine unterschiedliche Versionen von OSM Converter (python) und OSM Builder also der "Mod" (das was in Lua ist), miteinander kombinieren. Wenn du die v1.2 vom Converter nutzt, muss auch der res Ordner von diesem Zustand genutzt werden.


    Ich habe nämlich in der Zwischenzeit was geändert. Wenn du deinen alten Ordner nicht mehr hast: Diese Version müsste funktionieren.


    (BTW so sieht es aus, wenn die Tangenten nicht angepasst sind)

  • --- Version 1.3 ---


    Die Änderungen sind jetzt in v1.3 finalisiert.


    Ich habe außerdem die Dokumentation zur Benutzung des Converters nochmal überarbeitet. Ich hoffe es ist jetzt verständlicher.

    Download der exe hier ---> OSM-TPF2-Importer <---


    Ich danke allen bisherigen Testern für die Rückmeldungen!


    Das war alles was ich vor dem Import für mein Frankfurt Projekt implementieren/automatisieren wollte. Damit ist die Entwicklung von OSM-TPF2 Importer abgeschlossen. Es sind keine funktionalen Erweiterungen meinerseits geplant. Bugfixes natürlich ausgenommen.


    ---


    Konkret ist da die bereits erwähnte Überarbeitung der Path Generierung drin, was zu besseren Kurven führt und ordentliche Weichen ermöglicht.

    Außerdem habe ich mir noch das Terrain Problem angeschaut:

    [...Curve Smoothing] galt jetzt alles für die x-y Ebene (2D). Eigentlich habe ich dasselbe Problem aber auch in der z Ebene für die Höhen. Die Höhe entlang der Kurve ist zum Glück nur 1 dimensional. Es ist trotzdem ein bisschen anders, weil die Höhen ja erst im Spiel festgelegt werden und daher die z Werte und Tangenten in Lua berechnet werden müssen. Falls ich hier noch einen Geistesblitz bekomme, wie man den Verlauf geschickt glätten kann, erhält man vielleicht direkt passende Steigungen und muss nicht überall den Ramp Equalizer anwenden. Vielleicht muss ich das Terrain auch zwischen den Nodes abtasten. So müsste man sich ggf auch weniger Mühe in der Terrain Vorbereitung geben.

    Die Höhe entlang von Rampen werden jetzt geglättet, sodass auch mit weniger Aufwand bei der Terrain Vormodellierung schon ziemlich glatte Gleis/Straßen Rampen entstehen.


    Dieses Bild war vom Eingangspost mit Vergleich jetzt: