Mapnik-tilemill text-dy

Salut,
Une toute petite question, vu la documentation lacunaire autour de Tilemill (on en vient à trouver celle de Maperitive abondante… abondante peut-être pas, mais concise, complète et claire…).
Quand je rends une étiquette liée à un polygone, et un placement d’étiquette du genre :
text-placement-type: simple;
text-placements: “N,S,E,W,NE,SE,NW,SW,2”;
text-dy: 5;
text-dx: 8;
text-vertical-alignment: middle;
text-horizontal-alignment: middle;
text-align: center;
Est-ce que l’essai de placement initial se fait sur le point « central », ou déjà décalé de 5 vers le haut, ou décalé de 5 vers le haut et 8 à droite ? Sinon, y a-t-il moyen d’essayer le central avant les autres ?
(J’aurais plein d’autres questions… mais je me limite… du genre comment couper les lignes de texte au tiret (-) sans supprimer le tiret… et puis d’autres que j’ai oubliées…)
JB.

La doc de tilemill est hyper résumée… le mieux est d’aller voir celle de mapnik, car finalement tilemill ne sert qu’à configurer mapnik.

https://github.com/mapnik/mapnik/wiki/TextSymbolizer

Visiblement pour text-placement, ça va tout de suite décaler sans tester la position de base.

Tu peux contourner ça en essayant de place ce texte 2 fois, la première sans text-placement, puis la seconde avec text-placement:

a/text-vertical-alignment: middle;
a/text-horizontal-alignment: middle;
a/text-align: center;

b/text-placement-type: simple;
b/text-placements: “N,S,E,W,NE,SE,NW,SW,2”;
b/text-dy: 5;
b/text-dx: 8;
b/text-vertical-alignment: middle;
b/text-horizontal-alignment: middle;
b/text-align: center;

C’est comme ça que je procède pour placer le nom complet si il y a la place ou à défaut le short_name.

Hou, ça a l’air bon ça… Je vais aller voir de plus près…
Tu l’utilises sur osmfr ? C’est dans quelle feuille de style, que je plagie la syntaxe.
JB.

Ou bien tu tripotes le xml directement après l’export par Tilemill ? J’ai rien trouvé dans la doc TM à part quelques ticket mergés les uns après les autres, mais jamais résolus.

la syntaxe est celle indiquée…

Exemple avec 3 placement de textes à partir d’un même objet:

long/text-name: “[name]”;
long/text-size: 10;
long/text-fill: brown;
long/text-face-name: @book-fonts;
long/text-halo-radius: 1;
long/text-placement: interior;
short/text-name: “[nom]”;
short/text-size: 10;
short/text-fill: brown;
short/text-face-name: @book-fonts;
short/text-halo-radius: 1;
short/text-placement: interior;
ele/text-name: “[ele]”;
ele/text-size: 9;
ele/text-fill: brown;
ele/text-face-name: @oblique-fonts;
ele/text-halo-radius: 1;
ele/text-placement: interior;

long/ va tenter de placer le nom complet
short/ va placer le nom court (si place pas prise par le long)
ele/ va placer un deuxième texte différent, l’altitude d’un POI (pic, col, etc)

Ok, ça marche effectivement !
(Tu as trouvé ça où, sinon ? Y’a une doc potable sur le sujet quelque part ? On a l’air assez loin du principe d’héritage qu’on voit dans mapnik)
Et merci aussi, j’aurai peut-être une version imprimée grand format du travail en cours pour le SotM-FR.
JB.

J’ai retrouvé !

en bas de: https://www.mapbox.com/tilemill/docs/guides/symbol-drawing-order/

Tu peux aussi la syntaxe ::blablabla

Heu, oui, mais là, on dit que si on peut placer deux fois l’étiquette, on va la placer deux fois, non ?
Je vais essayer ça…

Bingo, s’il peut la placer deux fois, il la place deux fois… Bon, c’est peut-être tiré par les cheveux, mais quand on veut vraiment placer une étiquette et qu’on est prêt à aller très loin pour la mettre, c’est foireux.

Bonjour,
Question en passant : c’est quoi le 2 à la fin ?

text-placements: "N,S,E,W,NE,SE,NW,SW,2";

C’est un truc crado pour qu’il affiche des pattes de mouches s’il a pas réussi à placer l’étiquette…
Au démarrage, c’est plutôt
text-placements: “N,S,E,W,NE,SE,NW,SW,8,7,6”;
Il essaye les positions avec le text-size indiqué, et s’il y arrive pas, il réessaye avec text-size=8, puis 7…

En fait, après utilisation, c’est surtout foireux pour les noms courts : les villages de Pin, Vars, sont affichés deux fois… Va falloir filtrer sur la longueur du texte à afficher ou un truc dans le genre.

Je repasse en mode question : pourquoi est-ce qu’il refuse des indications conditionnelles, c’est normal ?
c/[LEN<5]{text-min-padding: 3;}
Parse error…

Le 2, c’est un changement de taille de texte.

L’algo de placement va d’abord essayer avec la taille initiale (text-size), dans les différentes positions, puis changer la taille et il me semble retenter chaque position.
Tu peux indiquer comme ça plusieurs tailles, générale décroissantes.