maps4cim - a real world map generator for CiM 2

  • vanos, Samsonxxx
    Vielleicht sollte ich noch ein tutorial zur Bedienung schreiben oder so, hier mal die Kurzfassung:

    • Der Wert "Height offset" bestimmt genau den Höhenversatz, also z.B. ein offset von 500 würde eine Karte um 500m nach unten versetzen (negative Offsets, also nach oben verschieben, sind nicht möglich).

    Egal was ich da eingebe, die Karte verschiebt es immer nach Oben.

    :surrender:

    :dribble:

    :tongue:

  • Naja, wir haben beim aktuellen Wettbewerb auch nur 4 Teilnehmer gehabt :(
    Knapp 50 Leute haben abgestimmt. Insgesamt motiviert das nicht gerade, etwas auf die Beine zu stellen...


    Kopf hoch! MIt dem Generator wird es wahrscheinlich viel mehr Karten geben. Wenn irgendwann die OpenSource-Version rauskommt plane ich .osm Dateien direkt einlesbar zu machen,also kann man fiktive Karten schonmal vorplanen als Textdatei. Die werden dann eigelesen und verarbeitet.

  • Ich starte dieses geniale Programm. Nehm mir einen beliebigen Kartenausschnitt Von 8x8 und "push" Rendern.
    Speichere die Karte Im korrekten Ordner.

    Starte CIM2 und finde diese dann im Karteneditor vor und starte sie.
    Dann blicke ich auf eine Wasserlandschaft.
    Der Kartenausschnitt ist aber ein Teil von Berlin.

    Kannst du bitte deine Logdatei posten? (Anleitung im ersten Post). Ich würde mal auf einen Fehler beim Height offset tippen, kannst du das Häkchen neben "auto" aktivieren und nochmal rendern?

    Egal was ich da eingebe, die Karte verschiebt es immer nach Oben.

    Hm, also du meinst obwohl dein Kartenausschnitt bei x Metern liegt, wird auf der tatsächlichen Karte eine Höhe von mehr als x angezeigt? Das ist wirklich ungewöhnlich. Bitte poste doch auch deine Logdatei, dann sehe ich mir das mal an.

    Wenn irgendwann die OpenSource-Version rauskommt plane ich .osm Dateien direkt einlesbar zu machen,also kann man fiktive Karten schonmal vorplanen als Textdatei. Die werden dann eigelesen und verarbeitet.

    Guter Gedanke, sollte technisch jedenfalls nicht allzu schwer umsetzbar sein, von den Overpass-Servern bekomme ich ja auch nichts anderes als OSM XML Dateien, die auf Festplatte zwischengespeichert und dann eingelesen werden. Mit einem Tool wie JOSM eine fiktive Karte zu planen ist eigentlich eine ziemlich gute Idee :thumbup:

  • Das Tool ist der absolute Oberhammer! Habe es soeben ausprobiert und alles funktionierte beim ersten Mal einwandfrei. Da ärgert es mich gar nicht mehr, dass meine mühevoll handgearbeitete Karte von Vancouver durch einen Spielabsturz gelöscht wurde. Mit dem Programm wird's 1000 mal besser ;)

    Vielen Dank Klamann für die viele Arbeit und das großartige Tool! :thumbup:
    Jetzt fehlt mir zum Glück nur noch ein "European Buildings" DLC ;)

    150 Jahre London Tube Map!

  • Klamann

    Display Spoiler

    11:35:26,602 INFO [Launcher] Done. Total Time: 2,958 s
    11:35:26,602 INFO [Launcher] If you plan to publish this map, please attribute correctly. You can copy the following text to do so:
    This map was created using maps4cim, with data from the OpenStreetMap (© OpenStreetMap contributors).
    11:50:23,703 DEBUG [Launcher] ---------- NEW SESSION ----------
    11:50:23,734 DEBUG [Launcher] Writing log to C:\Users\kai\AppData\Roaming\maps4cim\maps4cim.log
    11:50:28,528 DEBUG [Launcher] ---------- NEW SESSION ----------
    11:50:28,533 DEBUG [Launcher] Writing log to C:\Users\kai\AppData\Roaming\maps4cim\maps4cim.log
    11:50:33,288 DEBUG [MainWindow] The last used config has been successfully loaded
    11:50:33,293 DEBUG [MainWindow] The last used config has been successfully loaded
    11:51:32,115 INFO [Launcher] Map Generator has been started.
    11:51:32,115 INFO [SRTM] Using SRTM as source for the map's relief
    11:51:32,131 INFO [TextureMap] Using OpenStreetMap as source for the map's texture
    11:51:32,131 INFO [MapGenerator] Initializing the Map Generator...
    11:51:32,131 INFO [Launcher] Ressources initialized. The map will now be written...
    11:51:32,131 INFO [MapGenerator] Starting to build the map from the selected source data...
    11:51:32,131 INFO [MapGenerator] Loading static map file prefix and postfix
    11:51:32,162 INFO [MapGenerator] Writing resulting map to file C:\Users\kai\AppData\LocalLow\Colossal Order\Cities in Motion 2\Maps\maps4cim1.map
    11:51:32,162 DEBUG [MapGenerator] Writing file header...
    11:51:32,162 DEBUG [MapGenerator] Writing reliefmap...
    11:51:32,162 INFO [SRTM] The relief map will be generated for an area of 8.0x8.0km, with the center at (52.5411°, 13.5901°). The virtual zero height will be set to the highest possible value and all elevations are scaled 1:1.
    11:51:32,162 DEBUG [SRTM] Retrieving SRTM data.
    11:51:32,287 DEBUG [TileDownload] Downloading SRTM Tile for (52,13). It will be stored in cache for later use.
    11:51:34,986 ERROR [MapGenerator] Error generating map
    java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read1(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at sun.net.http://www.http.httpclient.parsehttpheader(Unknown Source)
    at sun.net.http://www.http.httpclient.parsehttp(Unknown Source)
    at sun.net.http://www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at de.nx42.maps4cim.util.xml.Network.downloadToFile(Network.java:36)
    at de.nx42.maps4cim.map.relief.srtm.TileDownload.getTile(TileDownload.java:126)
    at de.nx42.maps4cim.map.relief.srtm.TileDownload.getTiles(TileDownload.java:95)
    at de.nx42.maps4cim.map.relief.SRTM.retrieveSRTMdata(SRTM.java:304)
    at de.nx42.maps4cim.map.relief.SRTM.fromBounds(SRTM.java:131)
    at de.nx42.maps4cim.map.relief.SRTM.generateRelief(SRTM.java:98)
    at de.nx42.maps4cim.map.ReliefMap.writeTo(ReliefMap.java:50)
    at de.nx42.maps4cim.MapGenerator.generateMap(MapGenerator.java:66)
    at de.nx42.maps4cim.Launcher.runMapGenerator(Launcher.java:212)
    at de.nx42.maps4cim.gui.RenderWindow$4.run(RenderWindow.java:177)
    at java.lang.Thread.run(Unknown Source)
    11:51:34,986 INFO [Launcher] Done. Total Time: 2,873 s
    11:51:34,986 INFO [Launcher] If you plan to publish this map, please attribute correctly. You can copy the following text to do so:
    This map was created using maps4cim, with data from the OpenStreetMap (© OpenStreetMap contributors).
    11:56:04,229 DEBUG [Launcher] ---------- NEW SESSION ----------
    11:56:04,229 DEBUG [Launcher] Writing log to C:\Users\kai\AppData\Roaming\maps4cim\maps4cim.log
    11:56:06,460 DEBUG [MainWindow] The last used config has been successfully loaded
    12:09:49,957 DEBUG [Launcher] ---------- NEW SESSION ----------
    12:09:49,957 DEBUG [Launcher] Writing log to C:\Users\kai\AppData\Roaming\maps4cim\maps4cim.log
    12:09:52,141 DEBUG [MainWindow] The last used config has been successfully loaded
    12:11:31,201 INFO [Launcher] Map Generator has been started.
    12:11:31,201 INFO [SRTM] Using SRTM as source for the map's relief
    12:11:31,201 INFO [TextureMap] Using OpenStreetMap as source for the map's texture
    12:11:31,201 INFO [MapGenerator] Initializing the Map Generator...
    12:11:31,201 INFO [Launcher] Ressources initialized. The map will now be written...
    12:11:31,201 INFO [MapGenerator] Starting to build the map from the selected source data...
    12:11:31,201 INFO [MapGenerator] Loading static map file prefix and postfix
    12:11:31,248 INFO [MapGenerator] Writing resulting map to file C:\Users\kai\AppData\LocalLow\Colossal Order\Cities in Motion 2\Maps\Marzahntest.map
    12:11:31,248 DEBUG [MapGenerator] Writing file header...
    12:11:31,248 DEBUG [MapGenerator] Writing reliefmap...
    12:11:31,248 INFO [SRTM] The relief map will be generated for an area of 8.0x8.0km, with the center at (52.5392°, 13.5946°). The virtual zero height will be set to the highest possible value and all elevations are scaled 1:1.
    12:11:31,248 DEBUG [SRTM] Retrieving SRTM data.
    12:11:31,389 DEBUG [TileDownload] Downloading SRTM Tile for (52,13). It will be stored in cache for later use.
    12:11:34,228 ERROR [MapGenerator] Error generating map
    java.net.SocketTimeoutException: Read timed out
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.fill(Unknown Source)
    at java.io.BufferedInputStream.read1(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    at sun.net.http://www.http.httpclient.parsehttpheader(Unknown Source)
    at sun.net.http://www.http.httpclient.parsehttp(Unknown Source)
    at sun.net.http://www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
    at de.nx42.maps4cim.util.xml.Network.downloadToFile(Network.java:36)
    at de.nx42.maps4cim.map.relief.srtm.TileDownload.getTile(TileDownload.java:126)
    at de.nx42.maps4cim.map.relief.srtm.TileDownload.getTiles(TileDownload.java:95)
    at de.nx42.maps4cim.map.relief.SRTM.retrieveSRTMdata(SRTM.java:304)
    at de.nx42.maps4cim.map.relief.SRTM.fromBounds(SRTM.java:131)
    at de.nx42.maps4cim.map.relief.SRTM.generateRelief(SRTM.java:98)
    at de.nx42.maps4cim.map.ReliefMap.writeTo(ReliefMap.java:50)
    at de.nx42.maps4cim.MapGenerator.generateMap(MapGenerator.java:66)
    at de.nx42.maps4cim.Launcher.runMapGenerator(Launcher.java:212)
    at de.nx42.maps4cim.gui.RenderWindow$4.run(RenderWindow.java:177)
    at java.lang.Thread.run(Unknown Source)
    12:11:34,228 INFO [Launcher] Done. Total Time: 3,023 s
    12:11:34,228 INFO [Launcher] If you plan to publish this map, please attribute correctly. You can copy the following text to do so:
    This map was created using maps4cim, with data from the OpenStreetMap (© OpenStreetMap contributors).
    12:20:32,932 DEBUG [Launcher] ---------- NEW SESSION ----------
    12:20:32,979 DEBUG [Launcher] Writing log to C:\Users\kai\AppData\Roaming\maps4cim\maps4cim.log12:20:35,225 DEBUG [MainWindow] The last used config has been successfully loaded

  • Benignus123
    Du hast ein Netzwerkproblem. Deine Karten werden überhaupt nicht geschrieben, weil maps4cim nicht aufs Internet zugreifen kann.
    Wahrscheinlich ist das ein Firewall-Problem, du musst während maps4cim läuft für Java den Zugriff aufs Internet erlauben (maps4cim macht das nicht direkt, da kommt eine Anfrage von Java.exe oder so). Schau dir mal deine Firewall-Konfiguration an oder mach sie kurz aus wenn du deine Karte rendern willst (auf eigenes Risiko).

    Wegen der Idee, eine Übersichtskarte über alle erstellten Maps zu erstellen:
    Es gibt da ein paar Dienste, die es erlauben, kollaborativ eigene Inhalte auf eine Weltkarte zu setzen. Da könnte also jeder, der eine Karte fertig hat, seinen Marker mit Link zur Filebase setzen. Müsste man sich mal genauer anschauen:
    Test - CommunityWalk
    How To Create Shared Collaborative Google Maps

  • Noch ein mal: Danke für das Programm ;) Kann gar nicht genug danken.

    Hier aber leider mal 2 Beispiele mit denen ich nicht zufrieden bin ;)
    Ein mal klappt das rendern gar nicht, ein mal ist das Ergebnis sehr unschön.
    Ich habe alle Informationen dazu gezipped und angehangen.

    Als alternative zu der verhunzten Seenlandschaft wäre evtl eine Option gut, in denen das Programm versucht, gar kein Wasser selber zu erstellen (Häkchen im Programm) oder zb das Relief ganz weg lässt.
    Weil in einem Fall wie diesem müsste ich eh alles glätten und neu terraformen.


    P.S.: Die map files selber konnte ich aufgrund der Maximalen Dateigröße nicht anhängen, aber ich kann sie nachreichen, falls gewünscht.

  • @ Klamann.

    Also ein anfrage Fenster kommt nicht !
    Ich markiere das Feld und klicke dann auf Rendern.
    Es öffnet sich ein das Feld zum Speicherort aussuchen und es dann kommt die Erstellung.

    Ich hab Spybot installiert.. könnte er es evtl verhindern ?

  • An alle bei denen das Rendern bei "Preparing OSM data for rendering" hängen bleibt, habe ich wahrscheinlich die Lösung: Laded euch die Datei im Anhang runter und legt sie im selben Ordner wie die maps4cim-gui-0.9-beta.jar ab. Alternativ könnt ihr eine neue Textdatei anlegen mit der Dateiendung .bat und folgendem Inhalt:

    Code
    start javaw -jar -Xms64m -Xmx2048m maps4cim-gui-0.9-beta.jar


    Dann die Datei einfach per Doppelklick starten. Für Mac und Linux müsste man ein vergleichbares Shellscript basteln.

    Das ist die Lösung für ein Speicherproblem, mir ist das bei der London-Map von @AlexanderN aufgefallen: Java stellt seinen Programmen nur eine begrenzte Speichermenge zur Verfügung. Wenn ihr jetzt Städte wie London rendern wollt, die in der OpenStreetMap extrem gut kartiert wurden, bringt allein der Download der Quelldaten schon >100MB auf die Waage. Alle diese Daten müssen im Speicher gehalten werden, um die Karte rendern zu können und da greifen dann die Java-Sicherheitsmechanismen. Wenn ihr maps4cim über die Batch-Datei startet, bekommt Java bis zu 2GB Speicher, das sollte für jede Karte ausreichen.

    @AlexanderN
    wegen der Hamburg-Karte: eine Option, das Relief ganz wegzulassen, wäre denkbar. Ich schau mal ob ich das zeitlich hinbekomme.

    Benignus123
    tut mir leid, aber es liegt zu 100% an deiner Netzwerkverbindung. Vielleicht hilft dir dieser Artikel zur Konfiguration der Windows-Firewall weiter, oder frag mal in einem Computerforum, wie man seine Firewall richtig konfiguriert.

    update:
    ich hab den Download in der FileBase jetzt aktualisiert, damit jeder die batch-Datei standardmäßig mitbekommt.

  • Klamann.. Danke!!

    Firewall kurz deaktiviert und schwups gings es. Schaut sehr sehr gut aus.


    @All ..


    Kann man mir wer sagen ob das mit dieser Wolken/Nebelschicht im Game immer normal ist oder man es ausstellen kann.
    Bitte nur per PN antworten!! Möchte das Thema nicht verspamen.

    Danke! :)

  • Mehr bleibt eigentlich nicht zu sagen! :thumbup:
    Funktioniert bei mir einwandfrei. Dank 100Mbit geht der Datendownload auch fix. Das Rendern passiert bei mir innerhalb von ein paar Sekunden.
    Wer also hier Probleme hat mal Java checken und oder seine Internetverbindung.

    Eine Frage hab ich allerdings: Kann man irgedwo den Standardordner zum speichern einstellen/ändern?

  • Guckst du hier
    (Da steht im grunde das deine Firewall das vermutlich verhindert. Wenn du sie auf EIGENE GEFAHR ausstellst und dann die Karte erstellst sollte es funktionieren. Nicht vergessen sie wieder anzustellen. ^^ )


    Von da an ein wenig lesen. :)

    Zumal dein Problem auch dahin gehört.
    Manche lieben es wohl ein neues Thema zu starten. :whistling:

    Edited 2 times, last by Benignus123 (June 29, 2013 at 1:30 PM).

  • An alle bei denen das Rendern bei "Preparing OSM data for rendering" hängen bleibt, habe ich wahrscheinlich die Lösung: Laded euch die Datei im Anhang runter und legt sie im selben Ordner wie die maps4cim-gui-0.9-beta.jar ab. Alternativ könnt ihr eine neue Textdatei anlegen mit der Dateiendung .bat und folgendem Inhalt:

    Code
    start javaw -jar -Xms64m -Xmx2048m maps4cim-gui-0.9-beta.jar


    Dann die Datei einfach per Doppelklick starten. Für Mac und Linux müsste man ein vergleichbares Shellscript basteln.

    Das ist die Lösung für ein Speicherproblem, mir ist das bei der London-Map von @AlexanderN aufgefallen: Java stellt seinen Programmen nur eine begrenzte Speichermenge zur Verfügung. Wenn ihr jetzt Städte wie London rendern wollt, die in der OpenStreetMap extrem gut kartiert wurden, bringt allein der Download der Quelldaten schon >100MB auf die Waage. Alle diese Daten müssen im Speicher gehalten werden, um die Karte rendern zu können und da greifen dann die Java-Sicherheitsmechanismen. Wenn ihr maps4cim über die Batch-Datei startet, bekommt Java bis zu 2GB Speicher, das sollte für jede Karte ausreichen.

    Wollte hier mal kurz in die Runde fragen, ob jemand schon für den Mac eine Lösung hat, wie ich die Parameter dranhänge um Java mehr Speicher zu gewähren.

    Danke euch!


    noch was:
    Dateipfad Spiel und Speicherstand - Lexikon - Cities in Motion - Fanpage
    Diesen Pfad gibts bei mir nicht am aktuellen OSX.

    Edited once, last by Gumfuzi (June 29, 2013 at 9:09 PM).

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!