I experienced a similar error, also with mkgmap rev 1053, when compiling germany.osm.bz2 with my own contour lines added. Mkgmap fails with an assertion error when I try to compile one of the resulting tiles. For some reason one road gets "stuck" while subdividing. When I omit the contour lines the tile will compile just fine.

When looking at the log output there are a lot of ways with the name "SIEDLUNG NEUD?RFEL" (#35170047, #35160048, #35170059, #35170062, #35170063, #35170064, #35170070, #35170071, #35170072, #35170084, ... all in all 174) at about lat 51,08201/lon 14,67827. There are much less ways with that name in the original germay.osm.bz2! They consume 174 entries in TableA and TableB (whatever that is). But in TableB only 62 entries are allowed. This triggers a subdivision, but that doesn't help, as still they all get into one subdivision, which gets divided further and further until the assertion is triggered.

Overriding the assertion by making sure that empty BBoxes are skipped doesn't help, as this will simply trigger a Stack Overflow.

So what's the problem here? Maybe the splitter gets wild and generates a lot of duplicates? Splitter is the most recent version from svn (rev 33) by the way. And seemingly unchanged since ages...

Looking at the ways of "SIEDLUNG NEUD?RFEL" there is only one obvious pecularity: the two points #413985320 and #413985328 are very near to each other (to four decimal places at least).

The command line is
java -Xmx2048m -ea -Dlog.config=logging.properties -jar trunk/dist/ mkgmap.jar --net --route problem.osm

The log output is available at http://osm.arndnet.de/mkgmap.log.0 (15 MB) The input file problem.osm is available at http://osm.arndnet.de/problem.osm.zip (16 MB)

The stack dump is very similar to that published by extremecarver:

Exception in thread "main" java.lang.AssertionError: trying to get center of empty BBox at uk.me.parabola.imgfmt.app.net.NOD1Part$BBox.center(NOD1Part.java: 141) at uk.me.parabola.imgfmt.app.net.NOD1Part.toRouteCenter(NOD1Part.java: 286)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:242)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
        at uk.me.parabola.imgfmt.app.net.NOD1Part.subdivide(NOD1Part.java:266)
at uk .me.parabola.mkgmap.general.RoadNetwork.splitCenters(RoadNetwork.java: 161) at uk.me.parabola.mkgmap.general.RoadNetwork.getCenters(RoadNetwork.java: 166)
        at uk.me.parabola.mkgmap.build.MapBuilder.makeMap(MapBuilder.java:186)
        at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:90)
        at uk.me.parabola.mkgmap.main.MapMaker.makeMap(MapMaker.java:56)
        at uk.me.parabola.mkgmap.main.Main.processFilename(Main.java:151)
at uk.me.parabola.mkgmap.CommandArgsReader $Filename.processArg(CommandArgsReader.java:237) at uk .me.parabola.mkgmap.CommandArgsReader.readArgs(CommandArgsReader.java: 120)
        at uk.me.parabola.mkgmap.main.Main.main(Main.java:92)

_______________________________________________
mkgmap-dev mailing list
mkgmap-dev@lists.mkgmap.org.uk
http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

Reply via email to