Utiliser des listes pour résoudre des problèmes
Exemple
Vous avez des lignes centrales de rues linéaires et, à chaque point d'intersection, vous aimeriez savoir quelles rues se rejoignent. La sortie doit être un ensemble de points, chacun avec un attribut de chaîne unique contenant les noms de rues intersectées séparés par des virgules.
Solution
Configurez un traitement qui achemine toutes les lignes centrales des rues dans un Transformer Intersector. Ajustez les paramètres de l'Intersector pour fournir un nom de liste (par exemple, all_streets).
Supposons que les rues en entrée aient un attribut appelé NOM. Le port de sortie Node de l'Intersector comporte une liste appelée all_streets{}.NAME
. Cette liste contient les noms de toutes les rues qui se croisent à chaque point particulier (ou Node) produit.
Pour récupérer la liste des NOMS en une seule chaîne de caractères, ajoutez un Transformer ListConcatenator . Configurez les paramètres du ListConcatenator pour stocker le contenu de la liste des noms all_streets{}.NAME
, séparé par des virgules, dans l'attribut de destination.
Acheminez la sortie du ListConcatenator vers un fichier de sortie, et assurez-vous que l'attribut de destination a été acheminé vers un attribut de la sortie. Après avoir exécuté la traduction, vous obtiendrez le résultat souhaité.
Exposer des éléments
Notez que vous pouvez avoir accès au nom des rues en "éclatant" certains éléments de la liste : faire un clic droit sur le nom de la liste (dans notre exemple all_streets{}.NAME
) et sélectionner Eclater la liste.
Dans la boîte de dialogue Sélectionner les éléments de liste, entrez le nombre d'éléments à exposer. (L'inconvénient de cette approche est que vous devez savoir à l'avance avec combien d'éléments de liste vous voulez travailler).