Résumé
Dans Map Viewer dans ArcGIS Online et Portal for ArcGIS, des expressions Arcade comportant plusieurs instructions peuvent être utilisées pour fractionner et repositionner les chaînes de texte d’un champ dans une fenêtre contextuelle. Les chaînes de texte repositionnées peuvent être utilisées pour la gestion des données ou l’optimisation des résultats de recherche. Cet article fournit un exemple et des instructions sur l’utilisation d’expressions Arcade pour fractionner et réorganiser des chaînes de texte dans une fenêtre contextuelle pour Map Viewer.
L’image ci-dessous montre une fenêtre contextuelle Map Viewer affichant le champ Forest_Name (Nom_forêt) et les enregistrements de chaîne de texte.
Procédure
- Ouvrez la carte dans Map Viewer. Cliquez sur Layers (Couches) dans la barre d’outils Content (Contenu) (foncée), puis sélectionnez la couche présentant la fenêtre contextuelle pour la modifier.
- Dans la barre d’outils Settings (Paramètres) (claire), cliquez sur Pop-ups (Fenêtres contextuelles) > Options > Attribute expressions (Expressions attributaires).
- Cliquez sur + Add Expression (+ Ajouter une expression) pour ouvrir la fenêtre de l’éditeur d’expressions.
- Dans la fenêtre de l’éditeur, spécifiez un nom pour la nouvelle expression.
- Dans la boîte de dialogue Expression, insérez l’expression Arcade ci-après.
- Définissez la variable avec la fonction permettant de fractionner la chaîne de texte en utilisant un espace comme séparateur.
var <variableName1> = Split($feature.<featureName>, ' ')
- Définissez la variable avec la fonction permettant de compter le nombre de fractionnements pour chaque enregistrement.
var <variableName2> = Count(<variableName1>)
- Spécifiez l’instruction ci-après pour renvoyer une valeur vide lorsque la valeur du champ est vide.
if (<variableName2> == 0) {
return ''
}
- Spécifiez l’instruction ci-après pour renvoyer la même valeur de texte lorsque le champ comporte un mot unique.
if (<variableName2> == 1) {
return $feature.<featureName>
}
- Spécifiez l’instruction ci-après pour placer le deuxième mot en première position lorsque le champ comporte deux mots.
if (<variableName2> == 2) {
return <variableName1>[1] + ' ' + <variableName1>[0]
}
- Spécifiez l’instruction ci-après pour placer le premier mot en troisième position lorsque le champ comporte trois mots.
if (<variableName2> == 3) {
return <variableName1>[1] + ' ' + <variableName1>[2] + ' ' + <variableName1>[0]
}
Le bloc de code ci-dessous est un exemple d’expression opérationnelle complète.
var arrName = Split($feature.Forest_Name, ' ')
var lenName = Count(arrName)
if (lenName == 0) {
return ''
}
if (lenName == 1) {
return $feature.Forest_Name
}
if (lenName == 2) {
return arrName[1] + ' ' + arrName[0]
}
if (lenName == 3) {
return arrName[1] + ' ' + arrName[2] + ' ' + arrName[0]
}
- Cliquez sur Run (Exécuter) pour prévisualiser le résultat de l’expression. Si vous obtenez le résultat requis, cliquez sur Done (Terminé).
- Cliquez sur le bouton Previous (Précédent) au-dessus de l’expression Arcade dans la fenêtre Pop-up expressions (Expressions de la fenêtre contextuelle).
- Cliquez sur Fields list (Liste des champs) pour développer la liste des champs affichés dans les fenêtres contextuelles, puis cliquez sur Select fields (Sélectionner des champs).
- Vérifiez le champ d’expression sous la section Expressions, puis cliquez sur Done (Terminé).
L’image ci-dessous montre le champ Sorted Forest Names (Noms de forêt triés) nouvellement ajouté avec les valeurs réorganisées dans la fenêtre contextuelle après l’utilisation de l’expression Arcade.