logo separator

[mkgmap-dev] mkgmap ToDo list

From Gerd Petermann gpetermann_muenchen at hotmail.com on Wed Apr 30 13:06:34 BST 2014



Hi,

if I got that right the number of nodes is not 
highly correlated to the img size, so the max-nodes
value  is not a good estimate.

I assume the reason is that nodes which belong to
roads produce a lot more bytes
in the img file compared to nodes which are parts
of shapes or other non-routable ways, not talking
about nodes which are simply ignored by the style.

So, a possible solution in splitter could be to parse 
the ways before reading the nodes and save all nodeids
which belong to ways with highway=*.
If these nodes are refered by more than one way with highway=*
we assume that they will be routing nodes.
These special nodes could be counted e.g. 10 times to 
give a better estimate.

Gerd

> Date: Wed, 30 Apr 2014 13:36:19 +0200
> From: osm at na1400.info
> To: mkgmap-dev at lists.mkgmap.org.uk
> Subject: Re: [mkgmap-dev] mkgmap ToDo list
> 
> Multithreading the tile rendering for a single map is indeed a bit 
> difficult and I gave it up because you need to keep track which image 
> id's are already in use. Since I provide multiple maps the work-around 
> is running a few scripts parallel, which is also a crude form of 
> multithreading.
> 
> The script language is PHP and it doesn't run on Windows without some 
> changes ('/' vs '\' in paths, 'rm -rf', that sort of stuff). Never tried it.
> 
> To get a better optimum in file size, using the process I described 
> earlier, you could start off with a huge --max-nodes setting and then 
> 'search' for the highest --max-nodes that works for each specific area.
> 
> On 30/04/2014 11:49, Felix Hartmann wrote:
> > I would love if there was a possibility that you pass the used max-nodes
> > value to mkgmap.
> > When mkgmap is compiling the maps, then after the .img is created it
> > should check
> > a) did it crash due to too many max-nodes
> > b) for me not important - but for others with very old GPS, etrex 10,
> > ---> is tile bigger than X (usually 8) MB.
> >
> > if a) or b) true, then pass the file back to splitter and split with 60%
> > of maxnodes - and compile the resulting .img files again. Should it fail
> > again, use 40%, again 25%... Sometimes there are awful tiles, that need
> > supersmall max-nodes till they compile, however lately (last 1-2 years)
> > I never encountered them anymore. I think that happened rather due to a
> > but in splitter/mgkmap that is fixed now.
> >
> > okay, you could also do this with a script, but it gets rather
> > complicated to multithread it (you need to wait till mgkmap finished
> > compiling all .img files - and run mkgmap first without address index to
> > save time) and do some clever routines on making sure that the map id
> > (e.g. 6340????.img)  stay correct. Even more complicated to have
> > consequent map id...
> >
> > For europe with a fixed max-node I get tiles from 1.9MB up to 18MB.
> > That's factor 9 - so it's huge...
> > If I could narrows that down easily to 8-18MB - without getting tiles
> > crashing due to too high max-nodes values, that would be sweet.
> >
> >
> >
> > As for the scripts - would they run on windows too? - What programming
> > language are they in?
> >
> >
> > On 29.04.2014 21:39, osm at na1400.info wrote:
> >> Oh, and ofcourse anyone interested can get my scripts, send an email.
> >> They'll be on Github someday anyway.
> >>
> >>
> >> On 2014-04-29 20:37, Gerd Petermann wrote:
> >>> Hi Lambertus,
> >>>
> >>> okay, if I got that right you finally get *.img files with a size
> >>> near (but below) 8MB, so maybe Henning can use that script, too.
> >>>
> >>> If you do that for e.g. Germany, how small is tpically the smallest
> >>> *.img file ?
> >>> Is it probably near 4 MB?
> >>>
> >>> Gerd
> >>>
> >>>> To: mkgmap-dev at lists.mkgmap.org.uk
> >>>> Date: Tue, 29 Apr 2014 20:30:27 +0200
> >>>> From: osm at na1400.info
> >>>> Subject: Re: [mkgmap-dev] mkgmap ToDo list
> >>>>
> >>>> These are the direct results from Splitter. The format is o5m, both
> >>>> input as output. Splitter version is: r321.
> >>>>
> >>>> For this test I split the original source with --max-nodes=8000000.
> >>> Then
> >>>> I render the initial tiles, when the result is larger than 8MB it's
> >>>> subsplit again with --max-nodes=(8000000-(attempt*100000)). The
> >>> initial
> >>>> source files are ~70MB (o5m) and after several subsplits the two
> >>> *.img
> >>>> are < 8MB. During this process --max-nodes has been reduced to e.g.
> >>>> 7500000 and the source file is split up in two o5m files of about
> >>> 37MB.
> >>>>
> >>>> I can upload an example source file and it's two subsplit siblings
> >>> if
> >>>> you want.
> >>>>
> >>>>
> >>>> On 2014-04-29 19:38, GerdP wrote:
> >>>> > Hi Lambertus,
> >>>> >
> >>>> > that's interesting. Are these the img file sizes or the osm file
> >>> sizes?
> >>>> >
> >>>> > Gerd
> >>>> >
> >>>> >
> >>>> > Lambertus wrote
> >>>> >> Unfortunately I cannot confirm that. Below is a bit of logging
> >>> from my
> >>>> >> script:
> >>>> >> Original: 97000020 (70551453), New: 0 (35684445), New: 1
> >>> (36852845)
> >>>> >> Original: 97000001 (74621042), New: 0 (37522992), New: 1
> >>> (37222739)
> >>>> >> Original: 97000002 (73391358), New: 0 (37679505), New: 1
> >>> (38098627)
> >>>> >> Original: 97000003 (77862567), New: 0 (39075311), New: 1
> >>> (39261197)
> >>>> >>
> >>>> >> The original files above contain contour data, the filesize is
> >>> between
> >>>> >> brackets. As you can see both resulting file are approximately
> >>> the
> >>>> >> same
> >>>> >> size.
> >>>> >>
> >>>> >> On 2014-04-29 15:39, Gerd Petermann wrote:
> >>>> >>> Hi Lambertus,
> >>>> >>>
> >>>> >>> and I guess that even after this optimization you will
> >>>> >>> see a factor 3 or higher between the largest tile and the
> >>> smallest.
> >>>> >>> Can you confirm that?
> >>>> >>>
> >>>> >>> Gerd
> >>>> >>>
> >>>> >>>> Date: Tue, 29 Apr 2014 15:32:38 +0200
> >>>> >>>> From:
> >>>> >
> >>>> >> osm@
> >>>> >
> >>>> >>>> To:
> >>>> >
> >>>> >> mkgmap-dev at .org
> >>>> >
> >>>> >>>> Subject: Re: [mkgmap-dev] mkgmap ToDo list
> >>>> >>>>
> >>>> >>>> Num-tiles=x would indeed be better for this specific need.
> >>>> >>>>
> >>>> >>>> It is my experience that it regularly takes multiple calls to
> >>>> >>> Splitter
> >>>> >>>> to get 2+ sub-tiles when you reduce the max-nodes by 100k for
> >>> each
> >>>> >>>> sub-split attempt. This is what I currently do to get an
> >>> optimum in
> >>>> >>>> tile-size vs total number of tiles.
> >>>> >>>>
> >>>> >>>>
> >>>> >>>>
> >>>> >>>> On 29/04/2014 15:09, Gerd Petermann wrote:
> >>>> >>>> > Hi Lambertus,
> >>>> >>>> >
> >>>> >>>> > that sounds like a possible change in splitter:
> >>>> >>>> > Instead of specifying max-nodes you may specify --num-tiles=x
> >>>> >>>> > and splitter will try to find a split that produces excactly
> >>> x
> >>>> >>> tiles
> >>>> >>>> > which are not too narrow and have a node number which is not
> >>>> >>>> > too far from the average (but still aligned to a multiple of
> >>> map
> >>>> >>> units
> >>>> >>>> > as now).
> >>>> >>>> > So, for your script that means you don't have to find the
> >>>> >>> max-nodes
> >>>> >>>> > value.
> >>>> >>>> >
> >>>> >>>> > I'll think about this again...
> >>>> >>>> >
> >>>> >>>> > Gerd
> >>>> >>>> >
> >>>> >>>> > > Date: Tue, 29 Apr 2014 14:59:36 +0200
> >>>> >>>> > > From:
> >>>> >
> >>>> >> osm@
> >>>> >
> >>>> >>>> > > To:
> >>>> >
> >>>> >> mkgmap-dev at .org
> >>>> >
> >>>> >>>> > > Subject: Re: [mkgmap-dev] mkgmap ToDo list
> >>>> >>>> > >
> >>>> >>>> > > While this possibly can be solved in Splitter or Mkgmap, it
> >>>> >>> could also
> >>>> >>>> > > be solved by your build-script when you add a maximum tile
> >>> size
> >>>> >>> check
> >>>> >>>> > > and re-split (with a lower number of max-nodes) until you
> >>> get
> >>>> >>> two or
> >>>> >>>> > > more sub-tiles. Granted, this adds complexity to the script
> >>> but
> >>>> >>> it works
> >>>> >>>> > > well for me.
> >>>> >>>> > >
> >>>> >>>> > > On 25/04/2014 21:54, Henning Scholland wrote:
> >>>> >>>> > > > Hi Gerd,
> >>>> >>>> > > >
> >>>> >>>> > > > I would like to have img-tiles which have globally nearly
> >>> the
> >>>> >>> same
> >>>> >>>> > > > filesize, so that they use the space of devices like
> >>> eTrex 10.
> >>>> >>>> > > >
> >>>> >>>> > > > With my actual map I use globally the same value for
> >>>> >>> max-nodes. But the
> >>>> >>>> > > > size of the img-tiles differ more then factor 2. Eg. a
> >>> tile in
> >>>> >>> Germany
> >>>> >>>> > > > is between 2 and 5 mb where a tile in China is about 10
> >>> mb. If
> >>>> >>> I remove
> >>>> >>>> > > > details, this difference will increase, because in
> >>> Germany
> >>>> >>> more objects
> >>>> >>>> > > > will be removed from the img-tile then in China.
> >>>> >>>> > > >
> >>>> >>>> > > > Henning
> >>>> >>>> > > >
> >>>> >>>> > > > _______________________________________________
> >>>> >>>> > > > mkgmap-dev mailing list
> >>>> >>>> > > >
> >>>> >
> >>>> >> mkgmap-dev at .org
> >>>> >
> >>>> >>>> > > > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> >>>> >>>> > >
> >>>> >>>> > > _______________________________________________
> >>>> >>>> > > mkgmap-dev mailing list
> >>>> >>>> > >
> >>>> >
> >>>> >> mkgmap-dev at .org
> >>>> >
> >>>> >>>> > > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> >>>> >>>> >
> >>>> >>>> >
> >>>> >>>> > _______________________________________________
> >>>> >>>> > mkgmap-dev mailing list
> >>>> >>>> >
> >>>> >
> >>>> >> mkgmap-dev at .org
> >>>> >
> >>>> >>>> > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> >>>> >>>> >
> >>>> >>>>
> >>>> >>>> _______________________________________________
> >>>> >>>> mkgmap-dev mailing list
> >>>> >>>>
> >>>> >
> >>>> >> mkgmap-dev at .org
> >>>> >
> >>>> >>>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> >>>> >>>
> >>>> >>> _______________________________________________
> >>>> >>> mkgmap-dev mailing list
> >>>> >>>
> >>>> >
> >>>> >> mkgmap-dev at .org
> >>>> >
> >>>> >>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> >>>> >> _______________________________________________
> >>>> >> mkgmap-dev mailing list
> >>>> >
> >>>> >> mkgmap-dev at .org
> >>>> >
> >>>> >> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> >>>> >
> >>>> > --
> >>>> > View this message in context:
> >>>> >
> >>> http://gis.19327.n5.nabble.com/mkgmap-ToDo-list-tp5803388p5804588.html
> >>>> > Sent from the Mkgmap Development mailing list archive at
> >>> Nabble.com.
> >>>> > _______________________________________________
> >>>> > mkgmap-dev mailing list
> >>>> > mkgmap-dev at lists.mkgmap.org.uk
> >>>> > http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> >>>> _______________________________________________
> >>>> mkgmap-dev mailing list
> >>>> mkgmap-dev at lists.mkgmap.org.uk
> >>>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> >>>
> >>> _______________________________________________
> >>> mkgmap-dev mailing list
> >>> mkgmap-dev at lists.mkgmap.org.uk
> >>> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> >> _______________________________________________
> >> mkgmap-dev mailing list
> >> mkgmap-dev at lists.mkgmap.org.uk
> >> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev
> >
> 
> _______________________________________________
> mkgmap-dev mailing list
> mkgmap-dev at lists.mkgmap.org.uk
> http://www.mkgmap.org.uk/mailman/listinfo/mkgmap-dev

 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20140430/4db801c9/attachment-0001.html>


More information about the mkgmap-dev mailing list