Construction d'expressions d'étiquettes
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.
Une expression d'étiquette est limitée à une seule ligne de code, à moins que vous cochiez la case Avancé dans la boîte de dialogue Propriétés d'étiquette. L'option Avancé vous permet de saisir une fonction contenant une logique de programmation et couvrant plusieurs lignes de code.
Etapes :
- Cliquez sur le bouton Gestionnaire d'étiquettes de la barre d'outils Etiquetage.
- Cliquez sur une classe d'étiquettes dans la liste Classes d'étiquettes.
- Cliquez sur le bouton Expression.
- Sélectionnez un langage dans le menu Analyseur.
- Saisissez une expression VBScript ou JScript. 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 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:" :
VBScript
"Parcel no: " & [PARCELNO]
"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.
VBScript
Round ([AREA], 1)
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 :
VBScript
LCase ([NAME])
[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 :
VBScript
Function FindLabel ( [NAME] ) FindLabel = UCase(Left([NAME],1)) & LCase(Right([NAME], Len([NAME]) -1)) End Function
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 :
VBScript
"Name: " & [NAME] & vbCrLf& [ADDRESS_1] & vbCrLf& [ADDRESS_2]
"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 :
VBScript
Function FindLabel ( [LABELFIELD] ) FindLabel = replace([LABELFIELD], ", ", vbnewline) End Function
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 :
VBScript
"Occupancy Revenue: " & FormatCurrency ([MAXIMUM_OC] * [RATE])
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 :
VBScript
Function FindLabel ([NAME], [POPULATION]) if ([POPULATION] >= 250000) then FindLabel = "<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>" else FindLabel = [NAME] end if End Function
function FindLabel ( [NAME], [POPULATION] ) { if ([POPULATION] >= 250000){ return ("<CLR red='255'><FNT size = '14'>" + [NAME] + "</FNT></CLR>"); } else return ([NAME]); }
Remarque :Pour étiqueter un sous-ensemble d'entités selon une valeur de champ, créez la requête SQL dans la classe d'étiquettes plutôt que via les propriétés d'étiquette.
Pour en savoir plus sur Microsoft VBScript Language Reference
Pour en savoir plus sur Microsoft JScript Language Reference
Ces informations vous renvoient aux pages Web créées et gérées par Microsoft Corporation. ESRI ne peut en aucun cas garantir la disponibilité de ces pages et ne saura être tenu responsable quant à la nature et au contenu de ces pages.
balises de mise en forme de texte ArcGIS
Les étiquettes sont affichées à l'aide du symbole spécifié dans le Gestionnaire d'étiquettes ou dans l'onglet Etiquettes de la boîte de dialogue Propriétés de la couche. Pour modifier l'aspect de ce symbole ou en changer pour certaines parties de l'expression, insérez des balises de mise en forme ArcGIS dans l'expression sous forme de chaînes de texte. Vous pouvez ainsi créer des étiquettes de format mixte où, par exemple, un champ d'une étiquette est souligné.
Les balises que vous pouvez utiliser sont répertoriées dans le tableau ci-dessous. Les valeurs acceptables de couleur (RGB) sont rouge, vert, bleu = 0–255 et les valeurs acceptables de couleur (CMYK) sont cyan, magenta, jaune, noir = 0–100 ; les attributs de couleur manquants sont supposés être égaux à 0.
Police |
"<FNT name='Arial' size='18'>" & [LABELFIELD] & "</FNT>" "<FNT name='Arial' scale='200'>" & [LABELFIELD] & "</FNT>" |
Couleur |
"<CLR red='255' green='255' blue='255'>" & [LABELFIELD] & "</CLR>" "<CLR cyan='100' magenta ='100' yellow='100' black='100'>" & [LABELFIELD] & "</CLR>" |
Gras |
"<BOL>" & [LABELFIELD] & "</BOL>" |
Italique |
"<ITA>" & [LABELFIELD] & "</ITA>" |
Souligné |
"<UND>" & [LABELFIELD] & "</UND>" |
Tout en majuscules |
"<ACP>" & [LABELFIELD] & "</ACP>" |
Petites majuscules |
"<SCP>" & [LABELFIELD] & "</SCP>" |
Exposant |
"<SUP>" & [LABELFIELD] & "</SUP>" |
Indice |
"<SUB>" & [LABELFIELD] & "</SUB>" |
Espacement des caractères (0 % = normal) |
"<CHR spacing='25'>" & [LABELFIELD] & "</CHR>" |
Largeur des caractères (100 % = normal) |
"<CHR width='150'>" & [LABELFIELD] & "</CHR>" |
Espacement des mots (100 % = normal) |
"<WRD spacing='150'>" & [LABELFIELD] & "</WRD>" |
Interlignage (pts) |
"<LIN leading='12'>" & [LABELFIELD] & "</LIN>" |
Non gras |
"<_BOL>" & [LABELFIELD] & "</_BOL>" |
Non italique |
"<_ITA>" & [LABELFIELD] & "</_ITA>" |
Non souligné |
"<_UND>" & [LABELFIELD] & "</_UND>" |
Non-exposant |
"<_SUP>" & [LABELFIELD] & "</_SUP>" |
Non-indice |
"<_SUB>" & [LABELFIELD] & "</_SUB>" |
Syntaxe des balises
Les règles de syntaxe suivantes s'appliquent aux balises des expressions d'étiquettes.
- Les balises de mise en forme doivent être mises entre guillemets doubles et concaténées dans d'autres parties de l'expression à l'aide de l'opérateur & :
"<BOL>" & [LABELFIELD] & "</BOL>"
"Current <BOL>status</BOL> of parcel: " & [LABELFIELD]
- Les balises de mise en forme du texte ArcMap obéissent aux règles de syntaxe XML. Chaque balise de début doit être accompagnée d'une balise de fin. Les balises peuvent être imbriquées, mais vous devez fermer la balise interne avant de fermer une balise externe.
"<BOL><UND>" & [LABELFIELD] & "</UND></BOL>"
- La casse des paires de balises doit être exactement la même. Ainsi, la paire <BOL>...</BOL> est valide, tout comme <bol>..</bol>, mais <Bol>...</bol> est une paire non valide.
- Dans les expressions d'étiquettes, les attributs de balise doivent être placés entre guillemets simples ou entre deux paires de guillemets doubles. Les expressions suivantes sont équivalentes :
"<FNT name=""Arial"" size=""18"">" & [LABELFIELD] & "</FNT>"
"<FNT name='Arial' size='18'>" & [LABELFIELD] & "</FNT>"
- Les caractères spéciaux & et < ne sont pas valides dans votre texte si des balises de mise en forme sont utilisées. Utilisez les codes de caractère équivalents & et < à la place. Cette expression affiche, par exemple, les valeurs du champ d'étiquette entre les caractères < > :
"<ITA><" & [LABELFIELD] & "></ITA>"
Function FindLabel ([LABELFIELD]) NewString = Replace([LABELFIELD],"&","&") FindLabel = "<ITA>" & NewString & "</ITA>" End Function
- Les balises de mise en forme peuvent être incorporées aux valeurs du champ destiné à étiqueter les entités d'une couche, que vous utilisiez ou non des propriétés d'étiquette. De cette manière, vous pouvez modifier le format d'une partie quelconque d'une valeur particulière dans un champ d'étiquette. Pour incorporer des balises de mise en forme, le champ d'étiquette doit être de type chaîne. Les balises et attributs de balises utilisés dans les valeurs du champ n'ont pas besoin d'être mis entre guillemets. Les valeurs suivantes sont donc valides pour un champ d'étiquette :
<ITA>Rochester</ITA> <FNT size='18'>C</FNT>Colorado
Conseils pour construire des expressions d'étiquettes
Voici quelques conseils pratiques pour former vos expressions d'étiquettes :
- Pour s'assurer que les expressions contenant des balises de mise en forme du texte sont valides, cliquez sur le bouton Vérifier ou appliquez les modifications voulues et vérifiez les étiquettes représentées sur la carte. En cas de syntaxe ou de balises de mise en forme non valides, les balises sont affichées sous la forme de texte brut dans la fenêtre Vérifier et dans les étiquettes de la carte.
- Les balises de mise en forme du texte peuvent être utilisées presque partout où vous voyez du texte sur ou autour d'une carte.
Pour en savoir plus sur l'utilisation de balises de mise en forme de texte