x

mkgmap: Zu hohe max-nodes ergeben Fehler


Geschrieben von opasto (Gast) am 08. Dezember 2012 21:13:12: [flux]

Zuerst mein Resultat: Die Splitter/mkgmap Kombination mit max-nodes=3000000 ergeben etwa 50% leere "tiles" und die resultieredne Datei ist weniger als halb so gross als sie sein sollte. Die Karte hat viele leere Rechtecke. Mit max-nodes=2000000 fallen noch 8 von 86 tiles aus, mit max-nodes=1500000 keine mehr.

Details: Ich habe mit untenstehender Batchdatei die Datei germany.osm.pbf, am 7.12. von Geofabrik heruntergeladen, mit Splitter (Version r200) sowie mkgmap (Version 2384) auf einem Rechner mit Java 64 Bit(Version 7 Update 9) bearbeitet und dabei den Parameter max-nodes verändert. Dabei entstehen in Splitter xxx.osm.pbf Dateien (die scheinen in Ordnung zu sein) und dann in mkgmap zuerst xxy.img Dateien. Dabei werden, bei max-nodes=3000000 etwa die Hälfte der über 100 xxy.img Dateien mit 0 Byte Grösse abgespeichert, obwohl die Beobachtung des Rechenfortschritts anzeigt, daß auch diese Teile zwischen 10 s und 30 s zur Berechnung benötigen. Irgendeine Fehlermeldung erfolgt nicht. Die resultierende Gesamtkarte ist dann nur ca 550 MB gross und zeigt in Basemap einen entsprechenden Fleckenteppich. Einen Zusammenhang zwischen der Grösse der xxx.osm.pbf Dateien und der der entsprechenden xxy.img Dateien konnte ich nicht erkennen, ebenso keinen Zusamenhang mit dem Rechenfortgang oder mit der Position auf der Karte..
max-nodes auf 2000000 gesetzt ergibt folgendes: 8 von 86 der xxy.img Dateien haben 0 Bytes Grösse, die Gesamtdatei ist ca 1,3 GB gross. Die hier leeren Bereiche der karte waren alle in der Version mit 3000000 max-nodes auch schon leer.
max-nodes=1500000 ergibt keine leeren Dateien mehr, die resultierende Gesamtdatei ist ca 1,5 GB gross. Die Rechenzeit ist dabei kaum grösser als bei max-nodes=2000000.
Da ich noch Anfänger bin, kann es durchaus sein, daß der Fehler an mir liegt. Ich kann mir aber nicht vorstellen, woran das liegen könnte. Ich habe eher den Eindruck mkgmap müsste eine Fehlermeldung absetzen, wenn trotz intensiver Rechenarbeit nur 0 Bytes grosse Dateien ausgegeben werden.
Die Batch Datei:
prompt $p $t$g
echo Vorbereiten:meinTyp kopieren als meinTypxxxx.typ und darin FID ändern(xxxx= FID)
echo Param1=Kartenosm Param2=Kartenname Param 3 = 4 stellige FID

java -Xmx3000m -jar q:\prog_r200\splitter.jar --overlap=6000 --output-dir=Q:\erg1\ --max-nodes=1500000 --mapid=6%3001 %1

java -ea -Xmx3000m -jar q:\prog_2384\mkgmap.jar --preserve-element-order --remove-short-arcs --precomp-sea=q:\sea\ --gmapsupp --draw-priority=25 --route --style-file=q:\stile\meinStil --family-id=%3 --family-name=Karte --mapname=%3 --description=%2 q:\erg1\*.osm.pbf q:\stile\meinTyp%3.TYP

copy gmapsupp.img Q:\karten\Karte_%2.img


Antworten: