Hallo,
meine Frage hat wohl nur indirekt etwas mit OSM zu tun. Doch ich finde in der wiki von Openstreetmap Anleitungen zur Erstellung von img Dateien mit mkgmap, um diese in QMapShack und auf meinem Dakota 20 zu nutzen.
Mein System:
Debian Linux, 1 TB SSD, 16 GB Ram
Version mkgmap 49xx
Problem: soweit ich weiß, kann man diese IMGs nur mit mkgmap erstellen. Wenn ich zB die europe.osm.pbf als Inputdatei verwende, bricht mir das Java zusammen (Java heap space).
Versuche:
- den Heap Space einfach erhöhen mittels der Java Option --Xmx8G (8 GB Speicher)
Das sieht in meiner CLI so aus:
[Nutzer@OS]─[/usr/share/mkgmap] java -Xmx8g -jar mkgmap.jar --style-file=/PFAD/style.style --route --adjust-turn-headings=3 --gmapsupp --family-id=8001 --read-config=/PFAD/config.txt --max-jobs=1 --output-dir=/PFAD/ --input-file=/PFAD/europe-latest.osm.pbf /PFAD/osm.typ
Das Problem bleibt aber leider bestehen.
Auch bei der DACH.osm.pbf (5,6 GB) bricht das Java ab. Ich glaube, ich mache hier irgend etwas falsch. Zu DACH bekomme ich diese Meldungen:
Mkgmap version 4905
Time started: Sun Sep 15 18:43:57 CEST 2024
SCHWERWIEGEND (global): Out of memory.
Try using the Java -Xmx option to increase the available heap memory.
java.lang.OutOfMemoryError: Java heap space
at java.base/java.util.regex.Matcher.<init>(Matcher.java:248)
at java.base/java.util.regex.Pattern.matcher(Pattern.java:1134)
at uk.me.parabola.imgfmt.app.Label.squashSpaces(Label.java:106)
at uk.me.parabola.mkgmap.reader.osm.Element.addTagFromRawOSM(Element.java:64)
at uk.me.parabola.mkgmap.reader.osm.bin.OsmBinHandler$BinParser.parseDense(OsmBinHandler.java:134)
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.OsmBinHandler.parse(OsmBinHandler.java:54)
at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.parse(OsmMapDataSource.java:167)
at uk.me.parabola.mkgmap.reader.osm.OsmMapDataSource.load(OsmMapDataSource.java:142)
at uk.me.parabola.mkgmap.main.MapMaker.loadFromFile(MapMaker.java:165)
at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:58)
at uk.me.parabola.mkgmap.main.Main.lambda$processFilename$1(Main.java:291)
at uk.me.parabola.mkgmap.main.Main$Lambda$17/0x00007f0d30008938.call(Unknown Source)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
Number of ExitExceptions: 1
Time finished: Sun Sep 15 18:49:02 CEST 2024
Total time taken: 5 minutes 5 seconds
Ideen:
- Vielleicht nimmt Java die Option --Xmx8g nicht richtig an, oder etwas ist an der Syntax falsch.
- 8 GB reichen offensichtlich nicht, um IMGs von 5,6, oder 31 GB zu parsen.
Ich habe es dann mit der Liechtenstein.osm.pbf (2,8 MB) probiert und da geht es.
Ich werde nicht schlauer aus den Anleitungen im Netz.
Kennt sich jemand damit gut aus und mag mir helfen?
Grüße, M.