On Wed, Mar 26, 2008 at 10:23 AM, Rainer Rothkegel < [EMAIL PROTECTED]> wrote:
> I get a StackOverflow Exception when trying to create a Garmin map for > India. > I downloaded the India map data via > wget > > http://www.informationfreeway.org/api/0.5/*[bbox=67.28027,5.35352,89.07715,33.39476]<http://www.informationfreeway.org/api/0.5/*%5Bbbox=67.28027,5.35352,89.07715,33.39476%5D> > -O india-osmxapi.osm > > This resulted in a 130M osm file. > > Then I tried to convert it to a Garmin map file via > java -Xmx512M -jar /home/rainer/gps/osm/mkgmap/dist/mkgmap.jar > --gmapsupp --description="OSM India Map $(date)" india-osmxapi.osm > > After a few minutes of processing, I got the following stack trace: > > Exception in thread "main" java.lang.StackOverflowError > at java.util.ArrayList.toArray(ArrayList.java:306) > at java.util.logging.Logger.getHandlers(Logger.java:1214) > at > java.util.logging.LogManager$RootLogger.getHandlers(LogManager.java:995) > at java.util.logging.Logger.log(Logger.java:468) > at java.util.logging.Logger.doLog(Logger.java:494) > at java.util.logging.Logger.log(Logger.java:517) > at uk.me.parabola.log.Logger.arrayFormat(Logger.java:213) > at uk.me.parabola.log.Logger.warn(Logger.java:183) > at uk.me.parabola.mkgmap.build.MapArea.pickArea(MapArea.java:503) > at uk.me.parabola.mkgmap.build.MapArea.split(MapArea.java:218) > at > uk.me.parabola.mkgmap.build.MapSplitter.addAreasToList(MapSplitter.java > :111) > at > uk.me.parabola.mkgmap.build.MapSplitter.addAreasToList(MapSplitter.java > :112) > at > uk.me.parabola.mkgmap.build.MapSplitter.addAreasToList(MapSplitter.java > :112) > [last line repeated for zillions of times] > > > I checked out the source code and found that line 112 of > MapSplitter.java is the following recursion: > addAreasToList(sublist, alist); > > I am currently running the mkgmap in debug mode using the default > logging properties (java > -Dlog.config=mkgmap/dist/resources/logging.properties ...) but > (probably due to the high volume of data being logged) the application > has run for more than 1 hour without terminating yet. > > My question: Is this likely a data problem or a problem with mkgmap? > (Btw. creating a Garmin map file works fine if I process only the data > for south India.) > > Thanks in advance, > Rainer > You'll probably have to manually split the file and then run mkgmap on the separate sections. Each section needs to have a unique map id (use the --mapname=XXXXXXXX command-line argument). But maybe you don't have to do this yourself. According to the README: Processing more than one file at a time --------------------------------------- It is usual to split Garmin maps up into smaller tiles. This is because older GPS units (before large SD cards were cheap) had a limited amount of memory for maps, and secondly because there are limits within the map format itself. Anyway, then you can use something like sendmap (www.cGPSMapper.com) to recombine the resulting img files and download it to your GPS. Or try the gmaptool that Ludwig just mentioned. Karl
_______________________________________________ dev mailing list [email protected] http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/dev

