Vous pouvez utiliser des expressions d’étiquettes pour ajuster la mise en forme de vos étiquettes. Outre l’insertion de caractères et de fonctions de script, vous pouvez utiliser des balises de mise en forme ArcGIS dans les expressions d’étiquettes. Il s'agit de caractères spéciaux permettant de modifier l'aspect de tout ou partie de vos étiquettes. Par exemple, vous pouvez utiliser la balise de formatage en gras pour faire apparaître en gras la première ligne d'une étiquette empilée à plusieurs lignes.
Pour en savoir plus sur la mise en forme des étiquettes avec les balises de mise en forme de texte
Une expression d’étiquette est limitée à une seule ligne de code, à moins que vous cochiez la case Advanced (Avancé) dans la boîte de dialogue Label Expression (Propriétés d’étiquette). Cochez la case Advanced (Avancé) pour saisir une fonction contenant une logique de programmation et couvrant plusieurs lignes de code.
Les valeurs de champ sont automatiquement redéfinies en chaînes de texte. Par conséquent, pour utiliser une valeur numérique dans une opération arithmétique, ou si vous effectuez une comparaison, vous devez la redéfinir en type de données numériques.
Les exemples suivants ajoutent deux champs de nombre entier :
Python
int([FIELD1]) + int([FIELD2])
VBScript
cint([FIELD1]) + cint([FIELD2])
JScript
parseInt([FIELD1]) + parseInt([FIELD2])
Étapes :
- Cliquez sur le bouton Label Manager (Gestionnaire d’étiquettes) de la barre d’outils Labeling (Étiquetage).
- Cliquez sur une classe d’étiquettes dans la liste Label Classes (Classes d’étiquettes).
- Cliquez sur le bouton Expression.
- Sélectionnez un langage dans le menu Analyseur.
- Saisissez une expression Python, VBScript ou JScript. Vous pouvez également créer une expression en double-cliquant sur le champ afin de l’ajouter à l’expression ou en sélectionner le champ et en cliquant sur le bouton Append (Ajouter) afin d’ajouter le champ à la fin de l’expression en le séparant par un espace.
Les champs se trouvent entre crochets [ ], quel que soit le type de données de la source de données de la couche.
Entrez éventuellement des balises de mise en forme de texte ArcGIS dans la zone Expression pour appliquer la mise en forme à une partie de votre texte d’étiquette.
Si l'expression doit couvrir plusieurs lignes de code, activez la case à cocher Avancé et entrez les propriétés d'étiquette.
- Cliquez sur Verify (Vérifier) pour vous assurer qu’il n’y a pas d’erreur de syntaxe.
- Cliquez sur OK dans toutes les boîtes de dialogue.
Exemples d'expressions :
Voici quelques exemples d'expressions d'étiquettes :
- Concaténez une chaîne à la valeur d'un champ. L'expression suivante permet, par exemple, de créer une étiquette en faisant précéder la valeur du champ PARCELNO par le texte "Parcel no:" :
Python
"Parcel no: " + [PARCELNO]
VBScript
"Parcel no: " & [PARCELNO]
JScript
"Parcel no: " + [PARCELNO]
- Arrondissez un nombre décimal à un nombre défini de décimales. Par exemple, cette expression affiche un champ Zone arrondi à un chiffre après la virgule.
Python
round(float([AREA]), 1)
VBScript
Round ([AREA], 1)
JScript
function FindLabel ( [AREA] ) { var ss; var num= parseFloat([AREA]); ss = num.toFixed(1); return (ss); }
- Convertissez toutes vos étiquettes textuelles en majuscules ou en minuscules. Par exemple, l'expression suivante convertit un champ Nom en minuscules:
Python
def FindLabel ( [NAME] ): S = [NAME] S = S.lower() return S
VBScript
LCase ([NAME])
JScript
[NAME].toLowerCase()
- Convertissez vos étiquettes textuelles à la casse appropriée. Par exemple, l'expression suivante remplace la casse d'un champ Nom en majuscules par une autre casse appropriée :
Python
def FindLabel ( [NAME] ): S = [NAME] S = S.title() return S
VBScript
Function FindLabel ( [NAME] ) FindLabel = UCase(Left([NAME],1)) & LCase(Right([NAME], Len([NAME]) -1)) End Function
JScript
function FindLabel ( [NAME] ) { var str = [NAME]; var iLen = String(str).length; var upper = (str.substring(0,1)).toUpperCase(); var lower = (str.substring(1, iLen)).toLowerCase() return upper + lower; }
- Créez du texte empilé. Par exemple, cette expression crée une étiquette avec le champ Nom et les deux champs d'adresse sur des lignes distinctes :
Python
"Name: " + [NAME] + '\n' + [ADDRESS_1] + '\n' + [ADDRESS_2]
VBScript
"Name: " & [NAME] & vbCrLf& [ADDRESS_1] & vbCrLf& [ADDRESS_2]
JScript
"Name: " + [NAME] + "\r" + [ADDRESS_1] + "\r" + [ADDRESS_2]
- Créez du texte empilé en fonction du texte d'un champ. Par exemple, l'expression suivante utilise la virgule pour définir l'emplacement de la pile :
Python
def FindLabel ( [LABELFIELD] ): S = [LABELFIELD] S = S.replace(', ', '\n') return S
VBScript
Function FindLabel ( [LABELFIELD] ) FindLabel = replace([LABELFIELD], ", ", vbnewline) End Function
JScript
function FindLabel ( [LABELFIELD] ) { var r, re; var str = [LABELFIELD]; re = /,/g; r = str.replace(re, "\r"); return r; }
- Mettez en forme vos étiquettes. Par exemple, cette expression affiche l'étiquette sous forme de devise :
Python
def FindLabel ( [MAXIMUM_OC], [RATE] ): import locale locale.setlocale(locale.LC_ALL, '') S = locale.currency(float([MAXIMUM_OC]) * float([RATE])) return S
VBScript
"Occupancy Revenue: " & FormatCurrency ([MAXIMUM_OC] * [RATE])
JScript
function FindLabel ( [MAXIMUM_OC], [RATE] ) { var ss; var num1 = parseFloat([MAXIMUM_OC]); var num2 = parseFloat([RATE]); var num3 = num1 * num2 ss = num3.toFixed(2); return ("$" + ss); }
- Définissez une instruction conditionnelle if-else. Ces fonctions permettent d'étiqueter les villes avec des noms dans une police rouge de grande taille si leur population est supérieure ou égale à 250 000 habitants et dans la police par défaut des étiquettes si la population est inférieure à 250 000 habitants :
Python
def FindLabel ( [NAME], [POPULATION] ): if long([POPULATION]) >= 250000: return "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>" else: return [NAME]
VBScript
Function FindLabel ([NAME], [POPULATION]) if (cLng([POPULATION]) >= 250000) then FindLabel = "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>" else FindLabel = [NAME] end if End Function
JScript
function FindLabel ( [NAME], [POPULATION] ) { if (parseFloat([POPULATION]) >= 250000){ return ("<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>"); } else return ([NAME]); }
- Python Language Reference
- Référence de langage Microsoft VBScript
- Microsoft JScript Language Reference
(Ces informations sont hébergées sur des pages web non créées, non possédées, ni conservées par Esri. Esri ne peut en aucun cas garantir la disponibilité de ces pages et ne saurait être tenu responsable quant à la nature et au contenu de ces pages.)