#1 Thu 19 March 2009 13:39
- Vincent87
- Participant actif
- Date d'inscription: 26 Jun 2006
- Messages: 113
[Mapserver] Requete dans LABELITEM
Bonjour,
J'ai mis en place des étiquettes via l'outil LABEL de Mapserver.
Donc dans l'entête de mon layer j'ai mis mon LABELITEM "mon champ"
Puis dans ma CLASS j'ai mis les paramètres de mon LABEL :
Code:
LABEL COLOR 0 0 0 OUTLINECOLOR 255 255 255 FONT VERDANA-bold TYPE truetype SIZE 6 MINFEATURESIZE auto POSITION cc PARTIALS FALSE END
Je souhaiterais maintenant mettre en place une requete qui me permet de sélectionner une chaine de caractere précise dans mon champs pour l'afficher dans l'étiquette.
Exemple : Mon champs contient "OA" et je ne souhaite afficher que "A"
Etant dans une base PostGis/PostGre j'ai rentré dans mon LABELITEM l'expression suivante :
"ltrim (mon champ,O)"
afin qu'il me supprrime le O.
Mais cela ne fonctionne pas...et du coups je ne suis pas sur d'avoir rentrer la bonne expression au bonne endroit qu'en pensez vous??
Merci de vos réponses.
Hors ligne
#2 Fri 20 March 2009 13:41
- tbonfort
- Participant actif
- Date d'inscription: 11 Oct 2007
- Messages: 87
Re: [Mapserver] Requete dans LABELITEM
Les transformations par postgis doivent etre precisées dans le champ DATA de ton mapfile, pas dans le LABELITEM.
remplace donc
Code:
DATA "the_geom from matable"
par
Code:
DATA the_geom from (select gid, the_geom, ltrim (mon champ,O) as monlabel from matable) as foo using unique gid using srid=xxx LABELITEM monlabel
tu peux bien sur ajouter toute sorte de filtrage ou de jointure dans la sous-requete postgis, il faut par contre bien s'assurer que ta sous-requete retourne bien tous les champs qui vont etre utilisés dans le reste de ton LAYER (notamment le classitem, et toute valeur utilisée pour du binding, ex SIZE [monchamplargeur] )
a+
thomas
Hors ligne
#3 Fri 20 March 2009 13:45
- Vincent87
- Participant actif
- Date d'inscription: 26 Jun 2006
- Messages: 113
Re: [Mapserver] Requete dans LABELITEM
Bin oui forcément GNE.....c'était tellement évident que j'ai pas tilté! Merci beaucoup!
je test ça de suite!
Hors ligne
#4 Fri 20 March 2009 14:12
- Vincent87
- Participant actif
- Date d'inscription: 26 Jun 2006
- Messages: 113
Re: [Mapserver] Requete dans LABELITEM
A noter que pour éliminer un caractère de type chiffre celui ci doit être en tre simple cote
Exemple mon champs contient 0A pour supprimer le 0 je tape :
ltrim(monchamps,'0')
EDIT j'ai testé ça marche nickel
Merci !!
Dernière modification par Vincent87 (Fri 20 March 2009 14:15)
Hors ligne