[OSM-dev] parameterization of mapnik style-sheets in mod_tile / renderd and multi-lingual maps

Kolossos tim at alder-digital.de
Sat Oct 26 10:33:48 UTC 2013


Sounds also interesting for historical OSM, where we could use a time or
a time span as parameter.

Greetings Tim alias Kolossos

Am 14.10.2013 18:40, schrieb Kai Krueger:
> Hello everyone,
> 
> I would like to mention that I have committed a new feature to mod_tile
> / renderd and would appreciate any feedback or comments.
> 
> Mod_tile and renderd are now prepared for the possibility to
> parameterize the mapnik style-sheet on the fly on a (meta)tile by
> (metatile) basis.
> 
> For this purpose, the URL schema for tileservers was extended. It now
> takes the form:
> 
> https://my.tile.server/style/parameters/z/x/y.ext
> 
> parameters is an arbitrary string that gets passed on to renderd and can
> be used to parameterize the style-sheet for that rendering request.
> 
> The first use for this functionality is to make it easy to offer
> multi-lingual maps. I.e. to be able to specify (parameterize) the
> language in which the names should appear on the map. E.g. one can
> specify that English names (name:en) should be used instead of the plain
> name tag.
> 
> This is heavily based upon Jochen Topf's work on the multi-lingual
> project for wikimedia [1,2], that has shown the feasibility of this
> concept. By integrating it into mod_tile / renderd and making it trivial
> to enable, it will hopefully see wider adoption and prove useful to a
> bigger audience.
> 
> You can specify an ordering of name tags to be used when trying to
> render any labels. E.g. de,en,_ will use name:de if available, otherwise
> try name:en and finally use name if neither name:de or name:en is
> available. Technically, renderd will take the stylesheet it loads and
> replace name in the sql queries with coalesce(tags->'name:de',
> tags->'name:en', tags->'name') as name.
> 
> 
> Everything should be backwards compatible and one can activate this
> feature on a style-by-style basis. If not activated, the old URL schema
> continues to be used.
> 
> So e.g. a server can support https://my.tile.server/osm/0/0/0.png and
> https://my.tile.server/osm-multilingua/de,en,_/0/0/0.png.
> 
> 
> To make this possible, the protocol between mod_tile and renderd was
> extended to include the parameterization string (as well as pass through
> mime information for future purposes, e.g. to be able to render both png
> and jpg). However, again, everything (both mod_tile and renderd) should
> be backwards compatible. I.e. renderd can receive rendering requests
> with the previous version of the protocol, in case you only want to
> update renderd and still have an older version of mod_tile (or indeed
> another server software or utility for issuing render requests).
> Likewise, mod_tile can still send the requests in the previous protocol,
> and indeed will do so by default unless the parameterization feature is
> explicitly activated for the given style. This should ensure
> compatibility with tirex, that has not yet been updated to the change in
> protocol.
> 
> Although its first use is for the multi-lingual maps, hopefully this
> feature can be used for other purposes as well. You still need to write
> code to interpret the parameterization string and apply the
> transformation to the mapnik stylesheet object, but given that is all
> encapsulated in a separate file, this will hopefully be relatively easy
> if one needs it.
> 
> Kai
> 
> 
> 
> 
> 
> [1]
> http://blog.jochentopf.com/2012-06-21-wikipedia-multilingual-maps-project.html
> [2]
> http://blog.jochentopf.com/2012-12-19-status-of-the-multilingual-maps-project.html
> 





More information about the dev mailing list