logo separator

[mkgmap-dev] Splitter Error

From Paul news at pointdee.co.uk on Wed Sep 9 12:54:11 BST 2009

Chris Miller wrote:
> Thanks Paul, that would explain it for sure. The problem Ralf hit was definitely 
> a bug in the splitter though, I had made one too many assumptions in some 
> custom code for parsing floating point numbers (Java's double parsing is 
> very slow). I figured if the code could parse the planet file it could parse 
> anything. Apparently not! :)
> The mixture of node and way IDs should be OK as long as the --mixed parameter 
> is specified for the splitter when it generates the cache. Using --mixed 
> together with the fix I put in to r88 means there should be no need for your 
> perl script. Once you have a cache generated, you can rerun the splitter 
> as many times as you like without --mixed by using the (much faster) cache 
> instead of the osm file. There's no need to even specify the osm file on 
> the command line if you have a populated cache.
> eg first run:
> java -Xmx2000m splitter.jar --cache=cache/srtm_test --mixed --max-nodes=1200000 
> srtm_test.osm

Sorry Chris but unless I've missed something then.....

paul at paul-pc:~/Maps/tile-splitter/splitter-r88/dist> java -jar
splitter.jar --mapid=70020001 --cache=./ --mixed
Time started: Wed Sep 09 11:48:04 BST 2009
mapid = 70020001
cache = ./
Checking for an existing cache and verifying contents...
No suitable cache was found. A new cache will be created to speed up the
splitting stage
Map is being split for resolution 13:
 - area boundaries are aligned to 0x800 map units
 - areas are multiples of 0x1000 map units wide and high
Processing ../../../srtm2osm/Srtm2Osm-
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 19
        at uk.me.parabola.splitter.Convert.parseDouble(Convert.java:171)
        at uk.me.parabola.splitter.OSMParser.startNode(OSMParser.java:138)
        at uk.me.parabola.splitter.OSMParser.startElement(OSMParser.java:98)
        at uk.me.parabola.splitter.Main.processOsmFiles(Main.java:346)
        at uk.me.parabola.splitter.Main.processMap(Main.java:335)
        at uk.me.parabola.splitter.Main.calculateAreas(Main.java:240)
        at uk.me.parabola.splitter.Main.split(Main.java:148)
        at uk.me.parabola.splitter.Main.main(Main.java:93)

The input file is 3.9GB if that helps and r88 runs against the very
small test file I created when testing my script. If you need any other
info just ask.



More information about the mkgmap-dev mailing list