[Tilesathome] Osmarender Perl implementation

Frederik Ramm frederik at remote.org
Fri Mar 7 12:24:30 GMT 2008


Hi,

> Nice ;-)
>
> Did you compare your re-implementation with one of the hideously  
> complex
> tiles from Netherlands?

No, I used a reasonably but not overly complex tile from the  
Edinburgh city area. But the bottleneck in processing is really not  
the Osmarender part but the SVG rendering that comes after that. I  
see a lot of potential for improvement there, i.e. or/p could try and  
generate SVG that is easier to handle for the SVG renderer.

> Would generating JPG's / PNG's be out-of-scope for os/p? As far as I
> remember, the main problem with the Netherlands tiles was inkscape  
> using
> multiple gigabytes of memory per tile.

Exactly. One could try to write code that, instead of generating SVG  
instructions, created bitmaps directly. That would simplify some  
things but complicate others. You would not have to write a full SVG  
rendering engine but you'd have to find a good bitmap graphics lib to  
support the task (you don't want to implement the drawing of dashed  
lines by hand). It would be quite a big task I reckon.

I think it is more promising to improve or/p so that it writes  
simpler SVG output - *especially* dropping all detail from the SVG  
output that will not be visible anyway, i.e. path definitions that  
are not used, stuff that is painted outside of the clipping area,  
adjacent points in a path that we know will be indiscernible in the  
final bitmap because they're so close. Once we manage to do the  
clipping properly (i.e. not generate output for stuff outside the  
clipping box) this will then enable us, if need be, to split a tile  
in half, render each part separately, and combine the resulting bitmap.

Bye
Frederik

-- 
Frederik Ramm  ##  eMail frederik at remote.org  ##  N49°00.09' E008°23.33'






More information about the Tilesathome mailing list