[OSM-dev] Layered Tiling (Mapnik)

marqqs at gmx.eu marqqs at gmx.eu
Tue Dec 28 13:27:10 GMT 2010


Yes, would be a very good solution!
The client would get the texts and their font information including their position and display them on its own. This could be done in Javascript. Even collision management would be possible (omitting texts which low priorities or moving them a bit). Of course, we would have to provide this priority information too.

Alternatively, every text could be served as a bitmap instead of UTF-8 etc. In this case, the client wouldn't have to do any rendering. I think, I would prefer this solution.

Maybe we should think about supplying abbreviations for the texts. So, the client could determine how much space is left and use either the full text or the abbreviated one. But I think, this needs not to be implemented in a first step, it should be a future expansion. ;-)

Markus

-------- Original-Nachricht --------
> Datum: Tue, 28 Dec 2010 12:46:37 +0100
> Von: Igor Brejc <igor.brejc at gmail.com>
> An: marqqs at gmx.eu
> CC: dev at openstreetmap.org
> Betreff: Re: [OSM-dev] Layered Tiling (Mapnik)

> You're right, that would be a problem. But I guess as long as you have
> raster-only data, there isn't a perfect way to solve this problem.
> 
> An alternative would be to render text (and icons, since they can collide,
> too) on the client-side using JavaScript on top of server-generated tiles.
> The server could still perform the actual text placement and then send the
> text, text vectors and classes (=priorities) to the client which would
> then
> render it.
> 
> Client would be able to determine that the bus stop label can be rendered
> if
> the railway station class is turned off, for example. In advanced scenario
> the client would even be able to do additional text placement automation,
> if
> necessary.
> 
> Igor
> 
> On Tue, Dec 28, 2010 at 11:10 AM, <marqqs at gmx.eu> wrote:
> 
> > Sounds great, but it's not that easy, I think...
> >
> > Depending of the map layers you compose, you would need different text
> > layer compositions. For example:
> >
> > In my public transport map, there are priorities for the texts; the name
> of
> > a railway station has always a higher priority than the name of a bus
> stop.
> > Hence, if there is bus stop nearby a railway station, the name of the
> bus
> > stop is not displayed.
> > Now, if you would decide to have different layers for railways and
> buses,
> > and to switch off the railway layer, the name of the bus stop would have
> to
> > reappear.
> >
> > To go one step further:
> > Ideal would it be to move the colliding texts slightly instead of
> omitting
> > them. But then, how to deal with different map layers?
> >
> > Markus
> >
> >
> > -------- Original-Nachricht --------
> > > Datum: Tue, 28 Dec 2010 07:30:51 +0100
> > > Von: Igor Brejc <igor.brejc at gmail.com>
> > > An: marqqs at gmx.eu
> > > CC: Frederik Ramm <frederik at remote.org>, dev at openstreetmap.org
> > > Betreff: Re: [OSM-dev] Layered Tiling (Mapnik)
> >
> > > On Mon, Dec 27, 2010 at 11:29 PM, <marqqs at gmx.eu> wrote:
> > >
> > > >
> > > > But there is one problem you would have to deal with: there is no
> > > collision
> > > > avoidance between the texts of different tile layers.
> > > >
> > > >
> > > That could be solved if the all the layers were rendered as a single
> map,
> > > but painted onto several layer bitmaps. I'm planning to implement
> > > something
> > > like this in Maperitive.
> > >
> > > Igor
> >



More information about the dev mailing list