Opened 6 years ago

Last modified 6 years ago

#260 accepted enhancement

Zoom 19 : Optimisation du placement des labels

Reported by: BrunoC Owned by: cquest
Priority: minor Component: style osmfr
Keywords: label poi Cc:

Description

Pour profiter du zoom 19 dans nos centres-villes qui s'encombrent de POI et d'adresses, je propose une optimisation du placement des labels des POI en fonction de la rue la plus proche, en plaçant le label à l'opposé de la rue, alors qu'actuellement le label est systématiquement en dessous du POI.

Je n'ai rien inventé, tout est là :http://mapbox.com/tilemill/docs/guides/labels-advanced/
Leur solution finale ne gère que les 4 directions cardinales strictement, mais on peut ajouter NE, NW, SE, SW, surtout des groupes de valeurs possibles, triées par priorité, pour laisser à mapnik la liberté de placer le label en fonction des éléments déjà sur la carte. Ce qui donnerai par exemple en CartoCSS:

text-placements: 'N', 'NE', 'NW', 'E', 'W' ;
[ldir >= 45][ldir < 135] { text-placements: 'E', 'NE', 'SE', 'N', 'S' ; }
[ldir >= 135][ldir < 225] { text-placements: 'S', 'SE', 'SW', 'E', 'W' ; }
[ldir >= 225][ldir < 315] { text-placements: 'W', 'SW', 'NW', 'S', 'N'; }

En plus d'une meilleure lisibilité, je crois que mapnik pourra afficher plus de POI, (bien que je n'en sois pas totalement sûr, car cela dépend fortement de l'ordre des couches)

L’inconvénient, en plus d'une petite charge CPU inévitable, c'est la création d'une fonction SQL poi_ldir ce qui rend le rendu "non standard osm2pgsql". C'est grave ?

Change History (3)

comment:1 Changed 6 years ago by cquest

La fonction s'applique sur un schéma standard... donc pas de problème.

Le zoom 19 actuel n'est qu'une version "zoomée" du 18... il y a beaucoup de choses à améliorer pour le rendre utile et rendre d'autres objets comme les passages piéton, le mobilier urbain, etc.

comment:2 Changed 6 years ago by cquest

  • Summary changed from Optimisation du placement des labels to Zoom 19 : Optimisation du placement des labels

comment:3 Changed 6 years ago by cquest

  • Status changed from new to accepted
Note: See TracTickets for help on using tickets.