[OSM-dev] [OSM-talk] Bilingual rendering for Greece

Stephan Knauss osm at stephans-server.de
Wed Aug 18 20:30:38 BST 2010


Peter Körner wrote:
> Am 18.08.2010 10:31, schrieb Stephan Knauss:
>> It's complicated because different languages take up different space on
>> the map. So the placement of icons is not trivial.
> 
> Ævar had a great Idea for a third approach:
> Only objects that actually have a translation need to be in the language 
> overlay -- all other objects like most streets can go into the base 
> layer. That way the language overlay would become nearly empty on higher 
> zoom levels.

How should this solve the problem with texts in different languages 
taking up different space on the map?

I think the only solution is to have all elements that can be placed on 
the map by mapnik (or left off in case there is no room for it) being 
placed on the language overlay.

You can "reserve" space by rendering symbols transparent, but this leads 
to suboptimal results. When mapnik reserves space based on the largest 
possible space you have given away precious space on the map in most cases.

> You can then create a conditional index like
> CREATE INDEX bla ON points (osm_id) WHERE NOT "name:" IS NULL;

I did not measure the lookup speed, but having an index sounds nice ;) 
Why do you need an additional column? Do I have a wrong understanding on 
how indexes work?

I did this:
CREATE INDEX planet_osm_point_names ON planet_osm_point USING 
btree(osm_id) WHERE NOT (tags->'name:en') IS NULL;

For what query is this used? My planner tends to sequential scans...

Stephan




More information about the dev mailing list