Webinaire « Un jeu d’Arcade : exploration du langage de script d’Esri » — Q et R – Partie 1
Nous poursuivons sur notre lancée en répondant à vos questions sur la création d’expressions avec Arcade.
Hello World! (blague de codage)
Merci d’avoir assisté au webinaire Un jeu d’Arcade : exploration du langage de script d’Esri le 11 février 2021. Si vous l’avez manqué, vous pouvez en visionner l’enregistrement et en télécharger les diapositives sur demande. Mark Ho et moi espérons que vous avez aimé notre présentation sur les jeux vidéo classiques et que vous avez appris par la même occasion des choses sur le codage avec ArcGIS Arcade.
De nombreuses questions nous ont été posées pendant le webinaire. Nous avons pris le temps de les parcourir et d’y répondre du mieux que nous pouvions dans un billet de blogue en deux parties. Dans la première partie, je réponds à vos questions d’ordre général sur Arcade et je clarifie certains points obscurs concernant les profils Visualization (visualisation) et Attribute Rules (règles d’attributs). Si vous souhaitez obtenir des précisions sur les profils Labelling (étiquetage) et Popup (fenêtre contextuelle), demeurez à l’affût de la deuxième partie, dans laquelle Mark fournira de précieux renseignements.
N’oubliez pas que nous avons créé un groupe ArcGIS Online en complément au webinaire. Vous pouvez accéder au groupe à l’adresse suivante: bit.ly/arcadesfirewebinar (tout en minuscules)
Notre groupe ArcGIS Online propose des ressources supplémentaires tirées de ce webinaire sur Arcade.
Il comprend des cartes web et des exemples de code provenant de nos démonstrations, des projets ArcGIS Pro téléchargeables et d’autres ressources utiles. Et ce n’est pas tout, alors demeurez à l’affût.
Enfin, Mark et moi vous avons transmis notre amour commun pour le groupe Arcade Fire.
Vue d’Emilie sur la scène où s’est produit Arcade Fire lors de sa tournée Infinite Content en 2017.
Dans cette optique…
Des banlieues peuplées aux endroits les plus reculés, beaucoup ont assisté à notre webinaire et ont posé de nombreuses questions intéressantes. Nous sommes là pour y répondre. Au jeu! Préparons-nous ensemble à commencer!
Questions d’ordre général
Nous avons reçu de nombreuses questions sur la position d’Arcade dans le système ArcGIS, ainsi que sur la structure et la syntaxe du langage de script.
Q : Arcade remplacera-t-il d’autres langages de programmation que j’utilise comme Python ou JavaScript? Sinon, quel est l’avantage d’utiliser Arcade?
R : N’ayez crainte, Python et JavaScript ne sont pas près de disparaître. Arcade n’est pas destiné à remplacer les tâches d’automatisation et de géotraitement qui peuvent être réalisées avec Python. Il ne s’agit pas non plus d’un langage autonome destiné à la création d’applications ni à l’exécution d’expressions dans d’autres applications qui ne sont pas prises en charge par ArcGIS.
Alors, à quoi sert Arcade? Arcade est un langage simple et léger qui sert à évaluer les valeurs des champs d’attributs et des géométries dans le contexte d’applications créées par un autre produit ArcGIS comme ArcGIS Pro, ArcGIS Enterprise, ArcGIS Online ou ArcGIS API for JavaScript.
Q : Pour utiliser Arcade, de quelle version d’ArcGIS Pro ai-je besoin?
R : Le tableau suivant indique la version d’Arcade installée dans chaque version d’ArcGIS Pro. Pour obtenir de plus amples renseignements, y compris les limitations connues de la version du produit ArcGIS que vous employez pour créer des expressions Arcade et les appliquer, veuillez consulter la documentation d’ArcGIS Pro. Vous pouvez également consulter les notes de mise à jour de chaque version d’Arcade.
Q : Pour utiliser Arcade, de quelle version de Portal for ArcGIS ai-je besoin?
R : Le tableau suivant indique la version d’Arcade installée dans chaque version du portail ArcGIS Enterprise. Pour obtenir de plus amples renseignements, y compris les limitations connues de la version du produit ArcGIS que vous employez pour créer des expressions Arcade et les appliquer, veuillez consulter la documentation de Portal for ArcGIS. Vous pouvez également consulter les notes de mise à jour de chaque version d’Arcade.
Q : Pour utiliser Arcade, de quelle version d’ArcGIS Server ai-je besoin?
R : Le tableau suivant indique la version d’Arcade installée dans chaque version d’ArcGIS Server. Pour obtenir de plus amples renseignements, y compris les limitations connues de la version du produit ArcGIS que vous employez pour créer des expressions Arcade et les appliquer, veuillez consulter la documentation d’ArcGIS Server. Vous pouvez également consulter les notes de mise à jour de chaque version d’Arcade.
Q : Où puis-je trouver une référence raisonnablement complète sur les fonctions et la syntaxe d’Arcade?
R : La meilleure façon d’entreprendre votre aventure avec Arcade est de vous renseigner. Consultez la page de référence sur les fonctions d’Arcade pour vous familiariser avec l’ensemble des fonctions. Que vous travailliez avec des fonctions de données ou de date, formatiez du texte ou exécutiez des opérations mathématiques, la première étape logique (😉) consiste toujours à vous documenter.
Après avoir exploré les possibilités qu’offrent les fonctions intégrées, nul doute que vous vous sentirez suffisamment inspiré pour commencer à créer vos propres expressions Arcade. Consultez le document portant sur la structure et la logique d’Arcade pour trouver des réponses à vos questions concernant la portée, les opérateurs, les variables, etc., puis commencez à écrire des scripts en toute simplicité.
Q : Puis-je contacter l’assistance technique si j’ai des problèmes avec mes expressions Arcade?
R : Oui. L’équipe d’assistance technique d’Esri Canada est là pour vous aider, y compris en vous donnant un coup de main avec une expression Arcade qui semble impossible à déboguer. Avant de soumettre une demande à l’équipe d’assistance technique, pensez à consulter les forums ci-dessous pour obtenir de l’aide. Quelqu’un a peut-être rencontré un problème similaire.
Q : Quelle est la meilleure façon de déboguer une expression Arcade?
R : Il s’agit d’une excellente question. Pendant le webinaire, une grande partie du code que nous avons présenté a fonctionné sans problème du premier coup. La vérité, c’est que nous vous avons épargné le long processus de test et de débogage. Vous trouverez deux armes secrètes à la fenêtre d’expression, soit Test et Results (résultats).
Le volet Results (résultats) vous indiquera ce que l’expression tente de renvoyer sur votre carte. Si le type ou la valeur résultante ne correspond pas à ce que vous attendiez, vous pouvez faire trois choses :
- Examinez chaque ligne de votre expression.
- Utilisez l’instruction return (renvoyer) pour chaque ligne afin de vous assurer d’obtenir le résultat souhaité à chaque étape.
- Ajoutez // devant toute partie de votre code que vous voulez que l’expression ignore.
Vous pouvez également utiliser le petit symbole de crayon à droite d’un champ pour modifier la valeur utilisée pendant le test. Par défaut, le premier enregistrement de votre table s’affiche. Mais si vous voulez essayer d’autres scénarios pour en constater le résultat, vous pouvez simplement saisir une valeur différente.
Une autre façon d’observer ce que votre expression renvoie à différentes étapes consiste à utiliser la fonction Console(). Il s’agit presque d’une instruction imprimée dans un autre langage de codage. La fonction enregistrera un message dans la fenêtre Messages aux fins de débogage.
Au cours de la prochaine année, nous envisageons d’améliorer l’éditeur web d’Arcade, notamment en offrant de meilleures capacités de test et de dépannage. Demeurez à l’affût!
Q : Arcade sera-t-il accessible dans ArcMap à l’avenir?
R : ArcGIS 10.8.1 est la version actuelle d’ArcMap, et elle sera prise en charge jusqu’au 1er mars 2026, conformément au cycle de vie des produits ArcGIS Desktop. Nous n’avons pas l’intention de diffuser une version 10.9 d’ArcMap dans le cadre du lancement des prochaines versions d’ArcGIS en 2021. C’est pourquoi Esri met à votre disposition de nombreuses ressources pour faciliter votre transition d’ArcMap à ArcGIS Pro, si vous souhaitez tirer parti de certaines fonctionnalités d’Arcade dans votre SIG de bureau. Pour en savoir plus sur la prise en charge continue d’ArcMap, cliquez ici.
Q : Avec quels types de services Arcade est-il compatible?
R : Arcade est mis en œuvre dans différentes parties du produit, et sa portée continuera de s’étendre. À mesure que de nouveaux produits seront lancés, vous pourrez voir l’empreinte d’Arcade s’élargir. Pour avoir une idée des emplacements où il est possible d’exécuter Arcade, consultez la documentation sur les profils d’Arcade. Un profil consiste en un contexte dans lequel une expression Arcade est évaluée et comprise. Chaque profil prévoit des types d’entrée et de sortie particuliers selon le cas d’utilisation.
Q : If-Else, IIF, When… Quelle instruction conditionnelle dois-je utiliser?
R : Si vous tentez d’établir la logique de votre fonction, c’est la question à vous poser. Pour prendre votre décision, vous devez tenir compte de certains éléments. Je vous suggère de faire ce qui vous semble le plus logique. Si vous ne connaissez pas bien la syntaxe d’Arcade, essayez d’utiliser les fonctions IIF() ou When(). Voici quelques façons de tirer parti des instructions conditionnelles dans Arcade :
Logique de la fonction If-Else
Cette méthode utilise une syntaxe qui ressemble à celle de JavaScript, où vous écrivez une condition entre parenthèses pour indiquer à l’expression ce qu’elle doit renvoyer. Par exemple :
IIf(condition, trueValue, falseValue) return {*}
Cette fonction intégrée fait la même chose que le code ci-dessus, mais elle ne vous oblige pas à écrire la syntaxe du code. Ce pourrait être un moyen facile de vous lancer si vous ne maîtrisez pas l’art du codage. À la première position, vous écrivez l’instruction conditionnelle. À la deuxième position, vous indiquez ce que l’instruction conditionnelle doit renvoyer si elle est respectée (if true). À la troisième position, vous indiquez ce que l’instruction conditionnelle doit renvoyer si elle n’est pas respectée (else). Par exemple :
When([expression1, result1,…expressionN, resultN], default) returns {*}
Cette fonction intégrée est utile lorsque vous avez de nombreuses instructions conditionnelles différentes. Elle agit comme la fonction IIF(), sauf que vous pouvez inclure autant d’instructions conditionnelles que nécessaire pour votre calcul. Pour chaque instruction conditionnelle, vous indiquez à la fonction ce que vous voulez qu’elle renvoie.
Si vous souhaitez en savoir plus, je vous invite à observer ces différents fragments de code en action sur la carte web suivante.
Q : Une variable numérique peut-elle être renvoyée sous forme de nombre entier plutôt qu’à virgule flottante (12 plutôt que 12,543533)?
R : Arcade a été développé dans un souci de simplicité. Pour cette raison, les nombres représentent un type de données unique. Ils peuvent être entiers ou à virgule flottante. Il peut même s’agir de valeurs de chaîne s’apparentant à des nombres et pouvant être exprimées à l’aide de la fonction Number().
Q : Arcade peut-il être utilisé dans ArcGIS Field Maps?
R : Oui. Vous pouvez utiliser des expressions Arcade pour calculer des entrées à la volée lorsque les membres de votre équipe collectent des données à l’aide de Field Maps. Vous pouvez calculer des entrées au moyen de formules et d’autres parties du formulaire que vous avez configurées. Pour voir d’autres exemples, consultez la documentation.
Visualisation
Comme Arcade vous permet de transformer les valeurs de vos données à la volée, vous n’avez plus besoin de calculer et de recalculer un nouveau champ jusqu’à ce que vous obteniez la bonne valeur. Arcade vous permet de générer de nouvelles valeurs et de créer des visualisations attrayantes, et ce, directement sur votre carte.
Exemple d’utilisation du profil Visualization (visualisation) pour générer des valeurs uniques afin de symboliser une carte à la volée à l’aide de calculs et d’instructions conditionnelles [voir la carte web de démonstration]
Q : Est-il possible d’afficher les enregistrements d’une table reliée sur une carte web? Par exemple, j’ai une couche d’entités de bornes d’incendie et une table reliée contenant les enregistrements d’entretien des bornes d’incendie.
R : Chaque profil prévoit des types d’entrée et de sortie particuliers selon le cas d’utilisation. Le profil Visualization (visualisation), par exemple, ne prend en charge que les variables globales $feature et $view.scale. Pour accéder aux enregistrements reliés, il faut utiliser l’objet FeatureSet, qui n’est offert que pour les profils Attribute Rules (règles d’attributs), Popup (fenêtre contextuelle) et Field Calculate (calcul de champ). Consultez le billet de blogue de Mark pour en savoir plus sur la façon d’accéder aux tables reliées à l’aide du profil Popup (fenêtre contextuelle).
Q : Puis-je utiliser Arcade pour visualiser des données temporelles?
R : Absolument. Arcade dispose de plusieurs fonctions de date prêtes à l’emploi qui simplifient le processus de visualisation des données temporelles. Des fonctions telles que DateAdd(), DateDiff(), toUTC(), Hour(), Weekday() et d’autres sont mises à votre disposition lorsque vous explorez et visualisez des données temporelles. Consultez ce billet de blogue pour obtenir d’excellents exemples.
Q : Comment fonctionne la variable globale $view.scales?
R : Nous n’avons pas eu l’occasion de parler de la variable globale $view.scale pendant le webinaire. Cette variable permet d’ajuster la taille de vos symboles en cas de zoom avant et arrière sur votre carte. La variable globale $view.scale fonctionne comme suit : elle renvoie l’échelle de la carte au moment où l’expression le commande. La variable globale $view.scale remplit une fonction similaire aux échelles de référence cartographiques dans ArcGIS Pro, que vous connaissez peut-être. Pour voir comment la variable globale est utilisée pour établir la taille des symboles à une hauteur et à une largeur souhaitées selon une échelle donnée, consultez cette carte récit.
Q : Puis-je combiner plusieurs expressions Arcade pour visualiser mes données?
R : Oui, vous le pouvez. Les cartes de relations permettent de visualiser et de comparer de multiples attributs à partir de vos données. Il en va de même pour les valeurs que vous calculez à la volée avec Arcade. La carte suivante montre l’évolution du nombre total d’accidents de la route à Ottawa entre 2018 et 2019 au moyen d’une combinaison de deux expressions Arcade.
La première expression renvoie une valeur de chaîne correspondant à une visualisation de valeur unique, afin d’indiquer les quartiers où il y a eu beaucoup de collisions et ceux où il y en a eu peu. La deuxième expression renvoie une valeur numérique correspondant à la taille variable des symboles sur la carte, afin d’indiquer les pics d’accidents de la route.
Règles d’attributs
Les règles d’attributs améliorent l’expérience d’édition et l’intégrité des ensembles de données stockés dans les géodatabases. Il s’agit de règles définies par l’utilisateur qui peuvent être utilisées pour déterminer automatiquement les attributs, limiter les modifications non valides pendant les opérations d’édition et effectuer des contrôles d’assurance qualité sur les entités existantes. Les possibilités sont incroyables. Les règles d’attributs sont faciles à mettre en place et peuvent considérablement accélérer vos flux de travaux d’édition.
Exemple d’utilisation du profil Attribute Rules (règles d’attributs) pour déclencher une erreur définie par l’utilisateur afin de s’assurer que les bons renseignements sont saisis pendant le flux de travaux d’édition [Essayez par vous-même]
Q : Les règles d’attributs sont-elles prises en charge dans ArcGIS Online?
Non. À l’heure actuelle, les règles d’attributs ne sont pas prises en charge dans les couches d’entités hébergées dans ArcGIS Online.
Q : Où peut-on créer des règles d’attributs?
Il est possible d’ouvrir le profil Attribute Rules (règles d’attributs) à partir des emplacements suivants :
- Volet Catalog (catalogue) – faites un clic droit sur une classe d’entités ou une table, puis cliquez sur Design > Attribute Rules (concevoir > règles d’attributs).
- Volet Contents (contenu) – faites un clic droit sur une couche ou une table, puis cliquez sur Design > Attribute Rules (concevoir > règles d’attributs).
- Ruban – sélectionnez une couche ou une table dans le volet Contents (contenu). Dans le ruban contextuel Feature Layer (couche d’entités), cliquez sur l’onglet Data (données), puis sur Attribute Rules (règles d’attributs) dans le groupe Design (concevoir).
Q : Les règles d’attributs fonctionnent-elles avec ArcGIS Field Maps?
Utiliser ArcGIS Field Maps pour modifier une couche qui possède des règles d’attributs déclenchera immédiatement des règles de calcul et de contrainte sur le serveur. Toutefois, modifier une carte hors ligne ne déclenchera pas ce type de règles d’attributs tant que les modifications ne seront pas synchronisées.
Q : Les règles d’attributs fonctionnent-elles dans un flux de travaux déconnecté avec ArcGIS Field Maps?
Pas encore. Les règles d’attributs seront bientôt intégrées aux services d’entités hébergées et aux formulaires afin que vous puissiez exécuter une logique applicative dans votre formulaire, qu’il soit connecté ou non.
Vous n’avez pas trouvé la réponse que vous cherchiez? Gardez l’œil ouvert pour la deuxième partie de ce billet de blogue, où Mark répondra à vos questions sur les profils Labeling (étiquetage) et Popup (fenêtre contextuelle). Mark et moi sommes reconnaissants de votre intérêt et de votre curiosité. Ayez du plaisir avec Arcade. C’est vraiment amusant! Bon codage! Nous sommes derrière vous!
Ce billet a été écrit en anglais par Emilie Rabeau et peut être consulté ici.