[OSM-dev] Stack Overflow in mkgmap

Ludwig ludwigbrinckmann at gmail.com
Wed Mar 26 15:46:42 GMT 2008


I have no particular experience with the mkgmap application, but from using
cgpsmapper for making maps I know that using too large an area will often
fail.

There is however a simple way of combining individually created
non-overlapping maps into a larger map, using a program called gmaptool (
http://www.anpo.republika.pl/download.html). It is a simple command line
application. I have used this successfully to combine maps created from OSM
data into a larger file.

HTH

Ludwig

On 26/03/2008, Rainer Rothkegel <rainer.rothkegel at googlemail.com> 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]
> -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
>
>
> _______________________________________________
> dev mailing list
> dev at openstreetmap.org
> http://lists.openstreetmap.org/cgi-bin/mailman/listinfo/dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstreetmap.org/pipermail/dev/attachments/20080326/f79b0e4e/attachment.html>


More information about the dev mailing list