Bin mir nicht sicher, ob die MP-Fehler vom Rhein mit deinem ursprünglichen Problem “There is not enough room in a single garmin map for all the input data. The .osm file should be split into smaller pieces first.” was zu tun haben. Die MP-Fehler sind zwar nicht schön, aber so was kommt schon mal vor (und sollte repariert werden. Ich schreib mal den Mapper an. Evtl. ist der Mapper auch nicht der Verursacher, sondern versucht zu reparieren.)
Kannst du mal eine betroffene pbf-Datei (z.B. /home/mtbbiker99/11-extrem/data/extrem1_00073_0513_4_7_garmin.pbf) irgendwie zum Download zur Verfügung stellen?
Wenn ich genau die “extrem1_00070_0500_10_6_garmin.pbf” aus dem Download zusammen mit mkgmap.jar (Win10x64 DE, openjdk 14.0.2 2020-07-14,mkmap Version 4425) nehme
java -jar mkgmap.jar --gmapsupp c:\Downloads\extrem1_00070_0500_10_6_garmin.pbf
Time started: Tue Oct 27 21:35:57 CET 2020
Number of MapFailedExceptions: 0
Number of ExitExceptions: 0
Time finished: Tue Oct 27 21:37:03 CET 2020
Total time taken: 1 minute 5 seconds
mtbbiker99@mtbbiker99:~$ mkgmap --gmapsupp /home/mtbbiker99/Downloads/extrem1_00070_0500_10_6_garmin.pbf
Using /bin/java to execute mkgmap.
Time started: Tue Oct 27 22:02:45 CET 2020
Number of MapFailedExceptions: 0
Number of ExitExceptions: 0
Time finished: Tue Oct 27 22:03:51 CET 2020
Total time taken: 1 minute 6 seconds
Klapp bei mir auch unter Ubuntu 20.10.
So erhalte ich eine “bunte” Version von gmapsupp (mit qmapshack getestet), nicht wie ich sie mit map composer haben will. Aber mkgmap bricht so nicht ab, komisch…
mtbbiker99@mtbbiker99:~$ java --version
openjdk 11.0.9 2020-10-20
OpenJDK Runtime Environment (build 11.0.9+10-post-Ubuntu-0ubuntu1)
OpenJDK 64-Bit Server VM (build 11.0.9+10-post-Ubuntu-0ubuntu1, mixed mode, sharing)
mtbbiker99@mtbbiker99:~$ mkgmap --version
Using /bin/java to execute mkgmap.
Time started: Tue Oct 27 22:14:07 CET 2020
4565
Das ist eine interessante Feststellung, daß es mit den Defaulteinstellungen funktioniert.
In den Optionen stehen u.a. Parameter für die Einstellung der Zoomlevel und für die Douglas-Peucker Polygonreduktion. Beides kann die Kartengröße beeinflussen. Warten wir mal ab wie das im Detail aussieht.
so, ich habe map composer noch einmal komplett durchlaufen lassen. Diese Fehlermeldungen kommen:
errorLog.txt:
29.10.20, 20:58 Invalid action Icon einblenden for Evtl. Radfußweg anzeigen
29.10.20, 20:58 Invalid action Icon einblenden for Evtl. Radfußweg anzeigen
29.10.20, 20:58 Invalid action Icon einblenden for Evtl. Radfußweg anzeigen
29.10.20, 20:58 Invalid action Icon einblenden for Evtl. Radfußweg anzeigen
29.10.20, 20:58 java.lang.IllegalArgumentException: index capacity exeeded 8000084052
29.10.20, 20:58 Exception loading node information?
java.lang.IllegalArgumentException: index capacity exeeded 8000084052
at nop.osm.PresenceIndex.getPage(PresenceIndex.java:40)
at nop.osm.PresenceIndex.contains(PresenceIndex.java:51)
at nop.osm.Divider.loadNodeInformation(Divider.java:145)
at nop.osmc.generator.garmin.GarminMapper.prepareSegments(GarminMapper.java:309)
at nop.osmc.generator.garmin.GarminMapper.calculateSegments(GarminMapper.java:150)
at nop.osmc.generator.garmin.GarminMapper.generate(GarminMapper.java:68)
at nop.osmc.generator.Mapper.generate(Mapper.java:270)
at nop.osmc.MapComposer$13.act(MapComposer.java:425)
at nop.gui.MenuThreadAction.run(MenuThreadAction.java:27)
at java.base/java.lang.Thread.run(Thread.java:834)
29.10.20, 21:31 mkgmap call failed!
commands.log:
java.lang.OutOfMemoryError: Java heap space
at uk.me.parabola.mkgmap.reader.osm.Tags.<init>(Tags.java:52)
at uk.me.parabola.mkgmap.reader.osm.Element.addTag(Element.java:72)
at uk.me.parabola.mkgmap.reader.osm.Element.addTagFromRawOSM(Element.java:60)
at uk.me.parabola.mkgmap.reader.osm.bin.OsmBinHandler$BinParser.parseWays(OsmBinHandler.java:139)
at crosby.binary.BinaryParser.parse(Unknown Source)
at crosby.binary.BinaryParser.handleBlock(Unknown Source)
at crosby.binary.file.FileBlock.process(Unknown Source)
at crosby.binary.file.BlockInputStream.process(Unknown Source)
at uk.me.parabola.mkgmap.reader.osm.bin.OsmBinMapDataSource.load(OsmBinMapDataSource.java:55)
at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDataSource.java:138)
at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154)
at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52)
at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:265)
at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:261)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Exiting - if you want to carry on regardless, use the --keep-going option
Zum schluss habe ich noch diesen Terminal-Befehl ausgeführt:
mtbbiker99@mtbbiker99:~$ mkgmap --gmapsupp /home/mtbbiker99/Downloads/westmap_113_00072_0500_5_11_garmin.pbf
Using /bin/java to execute mkgmap.
Time started: Thu Oct 29 22:01:20 CET 2020
Number of MapFailedExceptions: 0
Number of ExitExceptions: 0
Time finished: Thu Oct 29 22:02:21 CET 2020
Total time taken: 1 minute 1 second
Mich wundert es nur, dass ich an den Parametern nichts verändert habe. Seit einigen Wochen bricht map composer leider ab und ich finde den Fehler nicht.
Wenn Composer eine Exception schmeißt, dann muß das zuerst untersucht und behoben werden. Dann können die Daten korrupt sein und alle Überlegungen Richtung mkgmap sind hinfällig.
Warum hast Du das bisher nicht erwähnt wenn Du das schon seit Wochen weißt?
Ok und danke für den Hinweis. Ich habe mal “Exception” gegooglet und heiß so viel wie “Ausnahme”. Übertragen auf den
map composer heißt das ja, dass es höchstwahrscheinlich in Richtung Renderregel/Ersetzngen geht, oder?
a) Wollte nicht nerven
b) Sportliche Ehrgeiz, es selbst zu schaffen
c) Bin schon in ein andere Forum “geflüchtet”, gefunden habe ich Dich u.a. schon wieder :D:D:D
Ich render jetzt noch einmal mit den originalen map composer Einstellungen ohne etwas zu verändern, außer die Koordinaten,
melde mich dann noch einmal.
Der Lauf ist durch, das gleiche Problem:
Ich habe nur die Koordinaten geändert, das Germany-file ausgewählt und die Routen aktivert.
Original Icons und die Einstellungen alles so gelassen. Bei solch einem Lauf gab es noch nie Probleme.
The problem is too hard for a man like me, to do it yourself…
Table Level loaded in 0 ms
Table Profile loaded in 1 ms
Table TagFilter loaded in 5 ms
exception comparing **asia.osm: java.lang.IllegalStateException: Only applies to polys of size 1
exception comparing russia.osm: **java.lang.IllegalStateException: Only applies to polys of size 1
written 96222585
Time for analysis 270 sec
java.lang.OutOfMemoryError: Java heap space
at java.base/java.lang.Long.valueOf(Long.java:1180)
at uk.me.parabola.mkgmap.reader.osm.ElementSaver.addWay(ElementSaver.java:128)
at uk.me.parabola.mkgmap.reader.osm.OsmHandler.endWay(OsmHandler.java:178)
at uk.me.parabola.mkgmap.reader.osm.bin.OsmBinHandler.access$1200(OsmBinHandler.java:35)
at uk.me.parabola.mkgmap.reader.osm.bin.OsmBinHandler$BinParser.parseWays(OsmBinHandler.java:148)
at crosby.binary.BinaryParser.parse(Unknown Source)
at crosby.binary.BinaryParser.handleBlock(Unknown Source)
at crosby.binary.file.FileBlock.process(Unknown Source)
at crosby.binary.file.BlockInputStream.process(Unknown Source)
at uk.me.parabola.mkgmap.reader.osm.bin.OsmBinMapDataSource.load(OsmBinMapDataSource.java:55)
at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDataSource.java:138)
at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:154)
at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:52)
at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:265)
at uk.me.parabola.mkgmap.main.Main$1.call(Main.java:261)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Exiting - if you want to carry on regardless, use the --keep-going option
Wenn Du im Fehlerlog solche Zeilen mit dem Wort “Exception” siehst, heißt das daß ein schwerer Softwarefehler aufgetreten ist. Du kannst Dann aufhören an den Parametern zu spielen, das muß ich in Ordung bringen.
So ungefähr argumentiert Trump auch …
Das könnte eine Möglichkeit sein, aber letztendlich bedeutet das nur, das die alte nicht die Bedingungen enthält, die zu einem Fehler bei composer führt.
Wenn man an den Symptomen rumdoktern will und die Zeit dafür verschwenden möchte, könnte das vielleicht zu einem vorübergehenden oder Teilerfolg führen - oder zu einem Gesamtspeichertest.
+1
Eine vernünftige Fehlerbehandlung beginnt am Anfang der Fehlerkette.
Veränderte Anfangsbedingungen können die Suche nur eingrenzen.
Edit:
Hier muss ich mich korrigieren: Wenn die PBF schon korrupt sein sollte, ist das natürlich auch der Anfang der Fehlerkette.
Nö, die letzte wesentliche Änderung liegt schon länger zurück. Hast Du es denn mal mit einem neueren Download versucht? Vermutlich wirst Du da das gleiche Problem haben.
Bei meinem Hinweis zum Speicherparameter bin ich davon ausgegangen, das die Exception im MapComposer ein Folgefehler des Abbruchs bzw. der möglicherweise sehr langwierigen Verarbeitung bei Speichermangel ist. Kann aber auch umgekehrt sein. Ich kann bei mkgmap Problemen helfen, aber nur, wenn ich die entsprechenden Eingabedateien habe. Wenn ich das richtig in Erinnerung habe, dann “versteckt” der MapComposer die aber ziemlich gut.
Ja, gestern. Das gleiche Problem mit der bekannten Fehlermeldung.
Ist das jetzt ein generelles Problem, oder bin ich der einzige, der diesen Fehler hat?
Kann das mit einem update vom map composer/mkgmap behoben werden?