logo separator

[mkgmap-dev] [Patch] Improve boundary splitting

From Gerd Petermann gpetermann_muenchen at hotmail.com on Mon May 7 06:51:54 BST 2012


Hi WanMil,


> Date: Sun, 6 May 2012 20:56:48 +0200
> From: wmgcnfg at web.de
> To: mkgmap-dev at lists.mkgmap.org.uk
> Subject: Re: [mkgmap-dev] [Patch] Improve boundary splitting
> 
> Hi Gerd,
> 
> I decided not to include your patch.
> The improvement is done only for the precompilation step. So it affects 
> only a very few people that precompile the boundaries.
> The patch itself adds another conversion step from Area to Shape format. 
> In my point of view this is the breaking point where the source code 
> will be no longer maintainable.

I used  the Shape superclass because it allows to pass Area and Path2D parameters 
without conversion. In my eyes, Area should only be used when we need its methods
like contains or intersect. It is very inefficient when you just want to store 
a closed way with double precision that is already known to be not self-intersecting. 

> 
> Before adding some special algorithms to improve performance it is 
> necessary to overwork the boundary related classes and give them a clean 
> structure. The current structure is the result of implementing a totally 
> new function of mkgmap and improving and changing it completely for 
> performance reasons (with a great result!). Now once it's working there 
> is the time for some restructuring.

Yes, that's true. The methods are spread over multiple files, and I had 
problems to decide where to put new methods. 
I guess you working on the restructuring  to finish the precompiled-sea code?

> 
> Sorry for that! I hope you understand my reasons.

Yes, sure.  I'll continue working on splitter now. 

Gerd

> 
> WanMil
> 
> > Hi WanMil,
> >
> > attached is a patch that uses an optimized implementation of the
> > Sutherland-Hodgman algorithm
> >
> > http://en.wikipedia.org/wiki/Sutherland-Hodgeman wikipedia
> >
> >
> > which is much faster than the area.intersect. It is only used to create the
> > precompiled boundaries.
> >
> > The improvements depend on the continent, for africa I see  130 secs with
> > r2272 and 84 secs
> > with the patched version. For asia, I see only a small improvement of ~ 10%
> >
> > On my machine, the precompilation of the boundaries is now quite often
> > waiting for the disk.
> >
> > http://gis.19327.n5.nabble.com/file/n5670294/BoundarySplitter.patch
> > BoundarySplitter.patch
> >
> > Gerd
> >
> > --
> > View this message in context: http://gis.19327.n5.nabble.com/Patch-Improve-boundary-splitting-tp5670294p5670294.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
 		 	   		  
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.mkgmap.org.uk/pipermail/mkgmap-dev/attachments/20120507/e120e0bd/attachment.html 


More information about the mkgmap-dev mailing list