Pages: 1
- Sujet précédent - QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette - Sujet suivant
#1 Mon 25 April 2016 11:57
- Romain3dmap
- Participant occasionnel
- Date d'inscription: 8 Apr 2016
- Messages: 41
QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
Bonjour,
J'essai de faire apparaître le nom des villes avec la première lettre en majuscule, j'ai trouvé sur un forum cette solution :
Aller dans l'édito en rentrant la formule suivante :
concat(upper( left("monchamp",1) ), lower( right("monchamp", length("monchamp")-1)))
Dans l'éditeur la casse est bien prise en compte puisque l'exemple du dessous me le confirme.
Mais lorsque j'applique les modifications dans la propriétés de la couche rien ne se passe .
1- Ai je oublié une manipulation ?
2- Est il possible de mettre une majuscule pour chaque début de mot et pas qu'au début du nom ?
Merci à vous
Hors ligne
#2 Mon 25 April 2016 12:30
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
bonjour,
Tu as la possibilité d'utiliser la fonction title() qui d'après la doc
Convertit l'ensemble des mots d'une chaîne de caractères en casse de titre (tous les mots sont en minuscule sauf la première lettre du mot qui est en majuscule).
ex :
title('salut MOnde') → 'Salut Monde'
Hors ligne
#3 Mon 25 April 2016 12:36
- Romain3dmap
- Participant occasionnel
- Date d'inscription: 8 Apr 2016
- Messages: 41
Re: QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
Serais tu ou je peux trouver la doc ?
Etant novice en la matière je risque d'en avoir besoin.
Merci pour ton tuyau
Hors ligne
#4 Mon 25 April 2016 12:41
- gustavecoste
- Participant actif
- Lieu: Montpellier
- Date d'inscription: 24 Apr 2013
- Messages: 118
Re: QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
Tu trouvera la documentation de QGIS ici.
Bonne lecture!
Gustave Coste
Hors ligne
#5 Mon 25 April 2016 12:43
- Leehan
- Participant actif
- Lieu: tours
- Date d'inscription: 10 Jun 2009
- Messages: 52
Re: QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
Dans le calculateur d'expressions qui te permet de paramétrer ton étiquetage, il y a 3 fenêtres. Celle du milieu liste les fonctions. Quand tu cliques sur une fonction, tu as les détails dans le fenêtre de droite.
sinon qgis.org, tu trouveras les manuels utilisateurs. Et pour aller plus loi sur Github, tu as les explications plus détaillées des développeurs concernant les extensions.
Hors ligne
#6 Mon 25 April 2016 15:35
- Marc-André
- Participant assidu
- Lieu: Montréal
- Date d'inscription: 30 Sep 2005
- Messages: 688
Re: QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
Bonjour,
Essayez ceci.
De mon côté, ça fonctionne.
Code:
concat( upper( left( "monchamp" ,1)), (lower ( substr("monchamp""monchamp" ,2,100))))
Hors ligne
#7 Mon 25 April 2016 17:25
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 3947
Re: QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
Bonjour,
1- Ai je oublié une manipulation ?
A priori, je dirais non si tu es bien dans la bonne fenêtre et si dans les propriétés texte de l'étiquette, tu n'as pas bidouillé l'option "Type de casse".
2- Est il possible de mettre une majuscule pour chaque début de mot et pas qu'au début du nom ?
C'est ce que fait la fonction title évoquée précédemment ou encore la dernière option de l'option casse (qui ne marche bien que si tes données ne sont pas à l'origine en majuscule).
Ai rectifié mon message d'origine car peu juste: je n'avais pas fait attention à la casse de base des données.
Dernière modification par SANTANNA (Tue 26 April 2016 06:40)
Hors ligne
#8 Tue 09 August 2016 09:47
- Yaëlle F
- Participant actif
- Date d'inscription: 27 Sep 2012
- Messages: 87
Re: QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
Bonjour,
Je me permets de rebondir sur le sujet, car j'ai le même problème.
J'ai une couche avec les communes dont le nom est entièrement en majuscule. Je voudrais les étiqueter avec la première lettre des mots en majuscule. Toutes les fonctions proposées et disponibles fonctionnent (bien que mon champ soit en majuscule). Cependant, le résultat ne correspond pas totalement à mes attentes, les mots composés sont considérés comme un seul mot. Or, je voudrais que tous les premiers mots soient en majuscules, ou dans l'idéal pouvoir définir les règles.
Par exemple pour : SAINT-YAN devient Saint-yan avec les fonctions, moi je voudrais obtenir Saint-Yan
Cela est-il possible ? En quel langage ?
Par ailleurs, est-il possible de pousser le vice pour obtenir à la place de AIX-EN-PROVENCE, Aix-en-Provence par exemple ?
En vous remerciant par avance,
Yaëlle
Hors ligne
#9 Tue 09 August 2016 15:34
- smermet
- Juste Inscrit !
- Date d'inscription: 10 Feb 2011
- Messages: 1
Re: QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
Bonjour Yaëlle,
Pas de réponse dans l'immédiat sous QGIS, mais ce fil de discussion répond à ta question avec un script en vbscript : http://georezo.net/forum/viewtopic.php?id=84678
Samuel
Hors ligne
#10 Tue 16 August 2016 15:00
- JD
- Moderateur
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
Bonjour,
je te propose d'ajouter le fichier startup.py dans le dossier .qgis2/python ( qui se trouve soit dans tes documents C:\Users\XX\.qgis2\python ou alors C:\Program Files (x86)\QGIS\profil\python pour la version ministère)
Voici le code à ajouter au fichier startup.py :
Code:
from qgis.core import * from qgis.gui import * import re def replace(match): if match.group(0): return match.group(0).lower() @qgsfunction(args='auto', group='test') def return_in_title (label, feature, parent): """ Renvoie la chaine de caractère suivant la charte toponymie de l'IGN (page 13) → <a href="http://www.ign.fr/sites/all/files/charte_toponymie_ign.pdf">http://www.ign.fr/sites/all/files/charte_toponymie_ign.pdf</a> <h4>Syntaxe</h4> <p>return_in_title(<i>name</i>)</p> <h4>Arguments</h4> <p><i> name</i> → le nom de la ville à nettoyer.<br> <h4>Exemple</h4> <p><!-- Exemple.--> return_in_title('AIX-EN-PROVENCE') → 'Aix-en-Provence'</p> """ try: newLabel = label.title() except AttributeError: parent.setEvalErrorString( u'String expected : {} must be a string'.format( label ) ) return False newLabel = re.sub(u'(-|\s)(Au|Aux|De|Du|Devant|Derrière|En|La|Le|Les|Lès|Près|Sur|Sous)(-|\s)', replace, newLabel) newLabel = re.sub(u'(-|\s)(Au|Aux|De|Du|Devant|Derrière|En|La|Le|Les|Lès|Près|Sur|Sous)(-|\s)', replace, newLabel) #appliquer 2 fois pour gérer les cas où deux mots dans la liste se succèdent newLabel = re.sub(u"(-|\s)[LD]\'", replace, newLabel) return newLabel
Il ajoute une fonction return_in_title(nom) dans le groupe test
la fonction renvoie pour return_in_title('AIX-EN-PROVENCE') --> 'Aix-en-Provence'
Je me suis inspiré de la charte toponymie de l'IGN disponible : http://www.ign.fr/sites/all/files/chart … ie_ign.pdf
Cordialement,
Dernière modification par lejedi76 (Tue 16 August 2016 15:11)
Hors ligne
#11 Wed 17 August 2016 09:03
- Floflo49fb
- Participant assidu
- Lieu: Montpellier
- Date d'inscription: 29 Aug 2009
- Messages: 250
- Site web
Re: QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette
Bonjour,
De mon côté, je me suis créé une petite expression QGIS qui fait le job dans la majorité des cas.
@lejedi76 : Très intéressant ton doc sur la toponymie de l'IGN.
MAJ : Je viens de créer une expression V2 en me basant sur les éléments du doc fournit par lejedi76
Bonne journée,
Dernière modification par Floflo49fb (Wed 17 August 2016 19:31)
Florian Boret
Dream it, Make it, Share it
Hors ligne
Pages: 1
- Sujet précédent - QGIS: 1ère lettre en majuscule et le reste en minuscule sur étiquette - Sujet suivant