logo separator

[mkgmap-dev] mkgmap error with austria.osm.bz2 of June 1 (all other contry extracts by gefabrik for Europe compiled except for Austria)

From Thilo Hannemann thannema at gmx.de on Tue Jun 2 06:50:51 BST 2009

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)




More information about the mkgmap-dev mailing list