Le 12 février 2012 13:10, Hélène PETIT <h...@free.fr> a écrit :
> ...où en est la modif de mapnik qui n'écrit pas le nom de la commune au
> barycentre de la zone quand il y a un admin-centre dans la relation, merci ?

Mapnik ne le fait plus... sauf si la zone est éclatée en plusieurs
parties séparées, auquel cas il continue de mettre un label au centre
de chacune des sous-zones contigues incluent dans la même relation.

De plus ce n'est pas l'"admin_centre" qui détermine ça, puisque le nom
de l'admin_centre est très souvent différent de celui de la zone
définie par la relation, l'admin_centre mentionne le plus souvent le
nom de la commune chef-lieu, et ne correspond à la relation QUE quand
la relation est une commune (admin_level=8) : il n'y a que dans ce
cas-là que les deux noms font alors (éventuellement) doublons.

Enfin la position du chef-lieu ou siège (admin_centre) d'une zone plus
grande que la commune n'est franchement pas idéale non plus pour
positionner le nom de la zone, pour laquelle Mapnik a raison de placer
le label de chaque sous-zone au centre de la zone.

Là où je suis moins d'accord, c'est quand Mapnik mentionne le nom de
la relation EN MÊME TEMPS avec un label central (ou repositionné avec
un rôle 'label" dont les tags de nom n'a aucune importance et est
inutile, sachant qu'il n'est alors pas idiot d'avoir plusieurs noeuds
membres avec le rôle "label", si une zone contient des exclaves), ET
tout le long des frontières.

Il devrait pouvoir choisir directement en fonction de l'échelle, selon
la place prise par un label central (préférable à faible niveau de
zoom quand il est illusoire de vouloir représenter des contours trop
petits, le label recouvrant alors une zone plus grande que la zone)
par rapport à celle prise par le label affiché sur la frontière
(préférable si la représentation de cette frontière est assez longue
pour y afficher un libellé).
"
D'ailleurs le choix des labels multiples qui apparaissent sur les
frontière est actuellement complètement stupide, de même que Mapnik ne
sait toujours pas placer ces labels du bon côté et insiste pour les
mettre tous au milieu de cette frontière, en choisissant parmi eux de
façon complètement aléatoire...

De même Mapnik ne sait toujours pas dimensionner ou orienter
correctement ses labels "centraux": on peut l'aider à le placer avec
le rôle "label", mais uniquement sur un noeud "central" et pas le long
d'un chemin éventuellement oblique ou courbe. Tous les labels sont
alors affichés avec la même taille, horizontalement, sur une largeur
"idéale" à priori arbitraire pour couper les mots sur plusieurs
lignes. Pour moi, le rôle "label" ne sert qu'à ça : mieux positionner
les labels, mais même pas pour désigner le ou les noms à afficher.

Ces rôles "labels" devraient être stockés dans la base Mapnik (pas
dans la base OSM principale), et y avoir des attributs de taille,
couleur, style, et de sélection (ou non) selon le niveau de zoom rendu
(un label central apparaitra à un niveau de zoom d'un certain
intervalle, mais pas à niveau de zoom trop faible, où rien du tout ne
sera affiché, ni à niveau de zoom élevé, où le label central et de
position ajustée sera remplacé par des labels de frontières). De ce
point de vue-là, Mapquest fait nettement mieux !

La seule motivation pour qu'un "label" (stocké dans la base associée
au moteur de rendu) utilise un nom différent des noms de relations
OSM, serait qu'un moteur de rendu particulier ait besoin d'une version
abrégée des noms stockés dans une relation OSM (avec les tags "name"
et "name:*" pour les traductions, "alt_name:*" pour les trouver un
noms alternatifs par exemple avec Nominatim, "official_name:*" pour
les noms formels rarement représentés sur une carte mais parfois utile
au rapprochement de bases de données externes, "old_name:*" pour les
anciens noms, etc...), et pour y ajuster la position des sauts de
ligne en cas de besoin, voire représenter ces labels sous une forme
enrichie par exemple en HTML (sous-éléments en exposants, ou en plus
petits caractères...). C'est dans ce cadre là qu'il va vouloir ajuster
(et stocker) des préférences de placement, ou vouloir afficher un
label le long d'une courbe, ou avec des caractères plus ou moins
espacés.

Alors je veux bien qu'on ne tague pas pour le rendu, pourtant un
moteur de rendu a bel et bien besoin de calculer et conserver ses tags
bien à lui pour produire une carte lisible, et permettre d'altérer ce
que le placement automatique a mal déterminé : la base OSM ne suffit
pas, MÊME avec les meilleurs heuristiques de placement automatique
(car il n'existe PAS d'algorithme dès qu'il y a des collisions
possibles de labels pour des objets voisins différents ou d'étendues
géométriques très différents, ou d'importance relative différente, les
critères de sélection et de placements dépendant ce chaque type de
rendu de carte et de chaque échelle).

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à