Version 1.0 von Map Composer

So, Nop hat die nötigen Änderungen gemacht, nun läuft es bei mir unter Ubuntu 14.04 ohne Probleme.

Danke :slight_smile:

Und wie kriegst Dus ans laufen?

ich habs wie folgt versucht:

runterladen
entpackt in ein subverzeichniss meines heimverzeichnis mit namen mc
in dem Verzeichniss eine start.sh angelegt mit folgedem inhalt

#! /bin/bash
cd ~/jens/mc
java -Xmx2000M -cp map_composer.jar:ndsc15.jar:nop.jar:colorpicker.jar:bzip2.jar:jai_codec.jar:protobuf-java-2.5.0.jar:osmosis-osm-binary-0.43.1.jar nop.osmc.MapComposer

diese datei mit chmod +x start.sh ausführbar gemacht.

und jetzt steh ich auf dem Schlauch. rufe ich sie mit dem terminal auf meint er “befehl nicht gefunden”

natuerlich kann ich jetzt den java befehl direkt eintippen, aber das ist ja schon unkomfortabel… und er funktioniert auch nicht korrekt. z.B. kann man keine Regionübersicht aufrufen.

einfach viel zu lange her, dass ich mal ein terminal benutzt hab.

Einfach die start.sh doppelklicken. Dann müsste es laufen.
Bei mir jedenfalls funktioniert es so.

Gruß
svr54

Hier gibt es noch eine Anleitung von Nop:

http://composer.waldpfa.de/index.php?n=MC.Anleitung

Bei mir ist folgendes Problem aufgetreten:

Das Gernerieren der Karte wird abgebrochen. :frowning:

Ich habe Map Composer V1.0 vom 12.12.2017 und das aktuelle Starthilfeset unter Win 7 Pro SP1 geladen und installiert.
Die germany.osm.pdf ist mit einem Stand vom 19.11.2017 09:26 auf meinem lokalen Laufwerk vorhanden.

Moin,
Ohne mich jetzt mit MapComposer näher beschäftigt zu haben…
2 Dinge die mir aufgefallen sind: Du sagst du hast den File lokal aber laut der Fehlermeldung wird versucht den File von Geofabrik runter zu laden. Wenn er in dem angegebenen Pfad nicht (mehr) liegt dann würde das den Error erklären. Und 2. warum heist dein lokaler File .osm.pdf, müsste der nicht nur eine .osm Endung haben?

LG Tom

Ich gebe dir Recht, es sieht so aus, als ob die Datei bei http://geofabrik.de/europe geladen werden soll. Die Eingangsdatei soll aber “nur bei Bedarf” dann geladen und geschnitten werden (so sind meine Einstellungen), wenn die vorhandenen Planetfiles zu alt ist. M.M.n. liegt der Fehler auch nicht hier, denn vorher steht: “Checking for local data files.” Und da gibt´s keinen Fehler.

Der Composer sucht m.W.n. auf dem lokalem Verzeichnis nach einer Datei *.osm.pdf und erzeugt eine *_input.osm.pbf der gewünschten Region.

Übrigens … mit der Version 0.95a läuft alles bestens.

Was für einen Job hast Du denn eingestellt? Hast Du die pbf manuell eingestellt oder mit Composer runtergeladen?

Schau mal in der errorLog.txt, da sollte der volle Callstack der Fehlermeldung zu finden sein. Das würde weiterhelfen.

bye, Nop

Ich habe beim Composer 0.95a folgendes eingestellt:

Datei holen
Planetfiles holen - bei Bedarf
Daten schneiden - bei Bedarf - Datum merken
API Download - bei Bedarf

und auf den Composer 1.00 übernommen. Bisher hat das ja immer funktioniert.

Die germany.osm.pdf ist mit einem Stand vom 21.12.2017 08:15 aktuell auf meinem lokalen Laufwerk vorhanden.

Die errorLog.txt sieht so aus:
21.12.17 09:35 Exception getting file size from server
java.io.FileNotFoundException: http://download.geofabrik.de/europe/germany.osm
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection$10.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at nop.osmc.edit.PlanetFile.getOnlineSize(PlanetFile.java:198)
at nop.osmc.edit.PlanetFile.updateOnlineSize(PlanetFile.java:309)
at nop.osmc.generator.Mapper.cutSourceFile(Mapper.java:577)
at nop.osmc.generator.Mapper.generate(Mapper.java:149)
at nop.osmc.MapComposer$13.act(MapComposer.java:425)
at nop.gui.MenuThreadAction.run(MenuThreadAction.java:27)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.FileNotFoundException: http://download.geofabrik.de/europe/germany.osm
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(Unknown Source)
at java.net.URLConnection.getHeaderFieldLong(Unknown Source)
at java.net.URLConnection.getContentLengthLong(Unknown Source)
at nop.osmc.edit.PlanetFile.getOnlineSize(PlanetFile.java:197)
… 6 more
21.12.17 09:35 java.io.FileNotFoundException: http://download.geofabrik.de/europe/germany.osm
21.12.17 09:35 Exception downloading: Can’t download: http://download.geofabrik.de/openstreetmap/europe/germany.osm
java.io.FileNotFoundException: http://download.geofabrik.de/europe/germany.osm
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(Unknown Source)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
at java.net.URL.openStream(Unknown Source)
at nop.net.Downloader.download(Downloader.java:266)
at nop.net.Downloader.fetch(Downloader.java:139)
at nop.net.DownloadJob.run(DownloadJob.java:21)
at java.lang.Thread.run(Unknown Source)
21.12.17 09:35 osmosis call failed!

Das sieht für mich so aus, als ob der Composer trotz aktueller germany.osm.pdf versucht auf die geofabrik zuzugreifen.

Ich habe den Job mal umgestellt auf:

Datei holen
Planetfiles holen - Aus
Daten schneiden - bei Bedarf - Datum merken
API Download - Aus

Dann sieht die errorLog.txt so aus:
21.12.17 09:44 osmosis call failed!

Composer will eine neue Version der PBF herunterladen. Das dürfte daran liegen, daß die PBF Daten jetzt nicht mehr im Input-Verzeichnis liegen sondern im Zwischendaten-Verzeichnis. Darum würde er Deine aktuelle PBF nicht finden.

Es ist also ok daß er etwas herunterladen will. Das Problem ist, daß er nach “…germany.osm” sucht. Die gibt es nicht. Richtig müßte es heißen “…germany.osm.pbf”.

Ich habe das Ganze grade nochmal bei mir mit Deutschland getestet und es funktioniert einwandfrei. Die URLs der Planetfiles stehen in der Tabelle Planet.tbl, Du kannst Sie unter “Daten/Planetfiles” nachsehen. Dort enden aber alle URLs mit .osm.pbf. Das war auch schon in früheren Versionen von Composer so, seit Version 0.92. Kannst Du mal nachsehen ob das bei Dir anders ausschaut?

Wie hast Du das Update vollzogen? Hast Du die neue Planet.tbl von Composer 1.0 mit reinkopiert wie in der Anleitung unter “Updates” beschrieben?

bye, Nop

O.k., dann kann der Composer die aktuelle Datei nicht finden. Die liegt bei mir im Verzeichnis …\Input. Da werde ich das im neuen Jahr mal ausprobieren. Derzeit komme ich an den Composer-PC nicht ran.

Die Planetfile sehen bei mir für Deutschland so aus:

Version 0.95a kann ich derzeit nicht prüfen. Derzeit komme ich an den Composer-PC nicht ran.

Nein, ich habe es wie bisher gemacht. Also installiert und vor dem ersten Start “meine” Icon- und TBL-Dateien in das neue Verzeichnis kopiert.

Danke erst einmal. Ich gebe Bescheid, wenn ich´s probiert habe.

Frohe Festtage!

Dann ist die Sache klar, mit der alten Planet.tbl können der Datenquellenwizard und Download nicht funktionieren. Ich vermute Du hast Composer die germany.osm.pbf bisher manuell zur Verfügung gestellt.
Bitte alle benötigten Dateien nach Anleitung kopieren (und ggf. die germany.osm.pbf umparken), dann bist Du wieder im Rennen. :slight_smile:

Feier schön, Nop

Hallo Nop,

danke für deine Hinweise. Mit den entsprechenden Umstellungen konnten / können die Karten wieder aktualisiert werden. :slight_smile:

Herzliche Grüße und allen alles Gute in 2018,
Torsten.

Alle Jahre wieder kurz vor Weihnachten … ?

Ich nutze immer noch die Version 1.0 des MC. Deswegen meine Fragen hier.

Ich habe einige Regionen definiert und lasse den Composer mit den entsprechenden Jobs mehr oder weniger regelmäßig durchlaufen. Das funktioniert auch alles ohne Probleme.

Nun habe ich gestern eine Region (Pfälzer_Wald 7.4 | 8.3 | 49.0 | 49.6) neu dazu genommen und einen entsprechenden Job erstellt. Beim Generieren wurde am Ende auch eine Karte erstellt und in meinem MapSource eingebunden. Auf den ersten Blick konnte ich keine Fehler entdecken. Allerdings gab´s im log und in der errorLog.txt folgenden Fehler

Dieser Fehler taucht in der errorLog.txt dreimal auf.

Interessant ist, dass es das Unterverzeichnis …\Ver100\input\templates bei mir nicht gibt. Und mir ist dieses Unterverzeichnis bei meinen Sicherungen bisher auch nicht aufgefallen. Weiterhin interessant ist, dass ein Job einer vorhandenen Region, der eine halbe Stunde früher lief, diesen Fehler nicht hatte.

Was ist da bei mir falsch?

Ich hoffe, es kann mir jemand helfen,
Torsten.

… und weil ich einmal dabei bin ein zweites Problem.
Ich habe eine weiter Region (Sauerland 7.2 | 9.2 | 50.8 | 51.7) und einen entsprechenden Job erzeugt. Beim Generieren bleibt der MapComposer einfach stehen und macht nichts mehr.

Der Log sieht so aus:

Die errorLog.txt ist leer. Es wird also kein Fehler mitgeschrieben.

Weiß jemand, was hier los ist bzw. nicht stimmt?

Danke Torsten.

Bricht der Job ab oder zieht er noch CPU?

linux: top , htop
win: irgnd nen taskmanager
mac: ??

Gruss
walter

Hallo Walter,
der Taskmanager zeigt eine recht schwache CPU-Auslastung an. Da passiert nichts besonderes. Der MC bleibt einfach stehen, wird aber im Taskmanager als Anwendung und Prozess aufgeführt.

Ein wiederholtes Generieren des Jobs bring keine Besserung. Der MC bleibt nach “Sorting region Sauerland” stehen und kann nur abgebrochen werden.

Herzliche Grüße, Torsten.

Kann das eventuell mit den Änderungen an großen Multipolygonen zusammenhängen, die wir in den anderen Threads grade diskutier(t)en? Bei “Pfälzer Wald” klingelts bei mir. Irgendwas war da doch an den Daten komisch, wenn ich mich recht erinnere.

Wollte mal ausprobieren, ob es an mkgmap liegt, aber ich komme schon mit dem installatierten Beispiel nicht weiter.
Ich habe map_composer_102.zip und mc_starthilfe_100.zip in das gleiche Verzeichnis ausgepackt und dann start_x64.bat aufgerufen.

In errorLog.txt findet man folgendes:

14.12.18 11:18 javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,50]
Message: Leerstellen erforderlich zwischen publicId und systemId.
14.12.18 11:18 Exception reading data from downloaded file
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,50]
Message: Leerstellen erforderlich zwischen publicId und systemId.
	at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
	at nop.osm.OSMInputFile.openXmlStream(OSMInputFile.java:167)
	at nop.osm.OSMInputFile.<init>(OSMInputFile.java:142)
	at nop.osmc.generator.RegionMapper.downloadRegion(RegionMapper.java:100)
	at nop.osmc.generator.Mapper.generate(Mapper.java:195)
	at nop.osmc.MapComposer$13.act(MapComposer.java:425)
	at nop.gui.MenuThreadAction.run(MenuThreadAction.java:27)
	at java.lang.Thread.run(Unknown Source)
14.12.18 11:18 javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,50]
Message: Leerstellen erforderlich zwischen publicId und systemId.
14.12.18 11:18 Exception reading data from downloaded file
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,50]
Message: Leerstellen erforderlich zwischen publicId und systemId.
	at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
	at nop.osm.OSMInputFile.openXmlStream(OSMInputFile.java:167)
	at nop.osm.OSMInputFile.<init>(OSMInputFile.java:142)
	at nop.osmc.generator.RegionMapper.downloadRegion(RegionMapper.java:100)
	at nop.osmc.generator.Mapper.generate(Mapper.java:195)
	at nop.osmc.MapComposer$13.act(MapComposer.java:425)
	at nop.gui.MenuThreadAction.run(MenuThreadAction.java:27)
	at java.lang.Thread.run(Unknown Source)
14.12.18 11:18 java.lang.ArrayIndexOutOfBoundsException: -1
14.12.18 11:18 Exception analyzing data for Wertheim
java.lang.ArrayIndexOutOfBoundsException: -1
	at nop.osm.nodetree.TreePage.getLess(TreePage.java:84)
	at nop.osm.nodetree.NodeTree.copy(NodeTree.java:297)
	at nop.osm.nodetree.NodeTree.copyTo(NodeTree.java:289)
	at nop.osmc.generator.Analyzer.standardAnalysis(Analyzer.java:166)
	at nop.osmc.generator.Analyzer.analyze(Analyzer.java:81)
	at nop.osmc.generator.Mapper.generate(Mapper.java:208)
	at nop.osmc.MapComposer$13.act(MapComposer.java:425)
	at nop.gui.MenuThreadAction.run(MenuThreadAction.java:27)
	at java.lang.Thread.run(Unknown Source)
14.12.18 11:27 javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,50]
Message: Leerstellen erforderlich zwischen publicId und systemId.
14.12.18 11:27 Exception reading data from downloaded file
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,50]
Message: Leerstellen erforderlich zwischen publicId und systemId.
	at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
	at nop.osm.OSMInputFile.openXmlStream(OSMInputFile.java:167)
	at nop.osm.OSMInputFile.<init>(OSMInputFile.java:142)
	at nop.osmc.generator.RegionMapper.downloadRegion(RegionMapper.java:100)
	at nop.osmc.generator.Mapper.generate(Mapper.java:195)
	at nop.osmc.MapComposer$13.act(MapComposer.java:425)
	at nop.gui.MenuThreadAction.run(MenuThreadAction.java:27)
	at java.lang.Thread.run(Unknown Source)
14.12.18 11:27 javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,50]
Message: Leerstellen erforderlich zwischen publicId und systemId.
14.12.18 11:27 Exception reading data from downloaded file
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,50]
Message: Leerstellen erforderlich zwischen publicId und systemId.
	at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source)
	at nop.osm.OSMInputFile.openXmlStream(OSMInputFile.java:167)
	at nop.osm.OSMInputFile.<init>(OSMInputFile.java:142)
	at nop.osmc.generator.RegionMapper.downloadRegion(RegionMapper.java:100)
	at nop.osmc.generator.Mapper.generate(Mapper.java:195)
	at nop.osmc.MapComposer$13.act(MapComposer.java:425)
	at nop.gui.MenuThreadAction.run(MenuThreadAction.java:27)
	at java.lang.Thread.run(Unknown Source)
14.12.18 11:27 java.lang.ArrayIndexOutOfBoundsException: -1
14.12.18 11:27 Exception analyzing data for Wertheim
java.lang.ArrayIndexOutOfBoundsException: -1
	at nop.osm.nodetree.TreePage.getLess(TreePage.java:84)
	at nop.osm.nodetree.NodeTree.copy(NodeTree.java:297)
	at nop.osm.nodetree.NodeTree.copyTo(NodeTree.java:289)
	at nop.osmc.generator.Analyzer.standardAnalysis(Analyzer.java:166)
	at nop.osmc.generator.Analyzer.analyze(Analyzer.java:81)
	at nop.osmc.generator.Mapper.generate(Mapper.java:208)
	at nop.osmc.MapComposer$13.act(MapComposer.java:425)
	at nop.gui.MenuThreadAction.run(MenuThreadAction.java:27)
	at java.lang.Thread.run(Unknown Source)

Schön, aber zeigst du uns den Job auch mal? Möchte mich nicht total neu einarbeiten, da ich das Teil eigentlich nicht kenne/brauche.

Gruss
walter

Ich habe keinen Job (bzw. irgendein generietes Skript) gefunden. Es gibt diverse *.tbl Dateien, die wahrscheinlich vom mc direkt in in Aufrufe anderer Tools umgesetzt werden, also ohne Umweg über eine shell.