logo separator

[mkgmap-dev] Problems with latest splitter versions

From Michael Prinzing mipri at t-online.de on Fri Mar 4 01:51:42 GMT 2011

On Thu, 03 Mar 2011 00:36:10 +0100, Michael Prinzing wrote:

>2.) File containing contour data cannot be processed
>----------------------------------------------------

The problem that the splitter did not finish with only a single thread
is solved now, but the problem with the splitter crashing on some data 
still exists.

I could track it down to a very simple example. When I am trying to 
split the following data:

------------------------------------------------------
<?xml version='1.0' encoding='UTF-8'?>
<osm version="0.6" generator="Osmosis 0.38">
  <node id="2073742179" version="1" timestamp="2011-03-03T22:05:10Z"
lat="50.8776211" lon="6.0933333"/>
  <node id="2073742180" version="1" timestamp="2011-03-03T22:05:10Z"
lat="50.88" lon="6.0969358"/>
  <node id="2073742181" version="1" timestamp="2011-03-03T22:05:10Z"
lat="50.8859414" lon="6.1066667"/>
  <node id="2073742182" version="1" timestamp="2011-03-03T22:05:10Z"
lat="50.8922471" lon="6.12"/>
  <node id="2073742183" version="1" timestamp="2011-03-03T22:05:10Z"
lat="50.8933333" lon="6.1235571"/>
  <way id="2000000000" version="1" timestamp="2011-03-03T22:05:10Z">
    <nd ref="2073742179"/>
    <nd ref="2073742180"/>
    <nd ref="2073742181"/>
    <nd ref="2073742182"/>
    <nd ref="2073742183"/>
    <tag k="contour" v="elevation"/>
    <tag k="contour_ext" v="medium"/>
    <tag k="level" v="5"/>
    <tag k="ele" v="200"/>
  </way>
</osm>

------------------------------------------------------

I am getting the following:


------------------------------------------------------
java -jar splitter.jar test.osm

cache=
description=
geonames-file=
legacy-mode=false
mapid=63240001
max-areas=255
max-nodes=1600000
max-threads=1 (auto)
mixed=false
no-trim=false
output-dir=
overlap=2000
resolution=13
split-file=
status-freq=120
write-kml=
Elapsed time: 0s   Memory: Current 15MB (1MB used, 14MB free) Max 247MB
Time started: Fri Mar 04 02:32:06 CET 2011
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 test.osm
in 1 file
Time: Fri Mar 04 02:32:06 CET 2011
Exact map coverage is (50.87762117385864,6.093313694000244) to
(50.89332818984985,6.123547554016113)
Trimmed and rounded map coverage is (50.888671875,6.064453125) to
(50.9765625,6.15234375)
Splitting nodes into areas containing a maximum of 1.600.000 nodes
each...
Area (50.888671875,6.064453125) to (50.9765625,6.15234375) contains 2
nodes. DONE!
1 areas:
Area 63240001 covers (0x243000,0x45000) to (0x244000,0x46000)
Writing out split osm files Fri Mar 04 02:32:06 CET 2011
Processing 1 areas in a single pass
Starting pass 1 of 1, processing 1 areas (63240001 to 63240001)
Making SparseMultiMap
Making SparseMultiMap
Processing test.osm

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
Start index (-30655339) is negative
        at it.unimi.dsi.fastutil.Arrays.ensureFromTo(Arrays.java:45)
        at
it.unimi.dsi.fastutil.objects.ObjectArrays.ensureFromTo(ObjectArrays.jav
a:351)
        at
it.unimi.dsi.fastutil.objects.ObjectArrays.fill(ObjectArrays.java:313)
        at
it.unimi.dsi.fastutil.objects.ObjectArrayList.size(ObjectArrayList.java:
308)
        at
uk.me.parabola.splitter.SparseInt2ShortMapInline.resizeTo(SparseInt2Shor
tMapInline.java:96)
        at
uk.me.parabola.splitter.SparseInt2ShortMapInline.put(SparseInt2ShortMapI
nline.java:123)
        at
uk.me.parabola.splitter.SparseInt2ShortMultiMap$Inner.put(SparseInt2Shor
tMultiMap.java:81)
        at
uk.me.parabola.splitter.SparseInt2ShortMultiMap.put(SparseInt2ShortMulti
Map.java:31)
        at
uk.me.parabola.splitter.SplitProcessor.writeNode(SplitProcessor.java:209
)
        at
uk.me.parabola.splitter.SplitProcessor.processNode(SplitProcessor.java:1
18)
        at
uk.me.parabola.splitter.OSMParser.endElement(OSMParser.java:243)
        at
uk.me.parabola.splitter.AbstractXppParser.parse(AbstractXppParser.java:5
7)
        at uk.me.parabola.splitter.Main.processMap(Main.java:399)
        at uk.me.parabola.splitter.Main.writeAreas(Main.java:355)
        at uk.me.parabola.splitter.Main.split(Main.java:188)
        at uk.me.parabola.splitter.Main.start(Main.java:116)
        at uk.me.parabola.splitter.Main.main(Main.java:105)

------------------------------------------------------

Is there a limit for Node-IDs and Way-IDs lower than 2^32 that was
introduced after r161?



Michael






More information about the mkgmap-dev mailing list