Quantcast
Channel: arcOrama
Viewing all articles
Browse latest Browse all 2038

Introduction à Arcade (3/3)

$
0
0
Je termine aujourd'hui mon introduction au langage Arcade avec une troisième partie dans laquelle je vous propose d'évoquer les principales caractéristiques de ce nouveau langage d'expressions, sans toutefois aller trop dans les détails, la documentation en ligneétant faite pour cela. Pour terminer cette introduction, j'évoquerai l'importance d'Arcade et son future dans la plateforme ArcGIS.


 
Les caractéristiques du langage Arcade

Sans rentrer trop dans le détails,
Arcade est un langage simple qui permet par exemple de retourner implicitement une valeur à partir d'une seule line de code. Proche de JavaScript et de Python en terme de syntaxe, Arcade est en revanche insensible à la casse ce qui simplifie la manipulation des noms de champs et la mémorisation des instructions du langage.

La ligne suivante:


est équivalente à celle-ci:



Arcade repose sur le principe de retour implicite des valeurs. En l'absence d'instruction return, la dernière instruction renvoyant une valeur est considérée comme étant la valeur à renvoyer.

La ligne suivante:


est équivalente à celle-ci:




Arcade est également un langage riche qui propose plus de 70 fonctions pour le traitements des données, des dates, des textes, des géométries, et la réalisation d'opérations logiques ou mathématiques.


Comme beaucoup de langages, Arcade propose des types d'objets simples (Number, Boolean, Date, String) et des types d'objets plus avancés (Dictionary, Feature, Array, Point, Line, Polygon, Multipoint). Les constructeurs des objets ont  des constructeurs surchargés ce qui permet des instanciations simplifiées. Arcade propose un "casting" implicite des types pour les paramètres des fonctions et pour les expressions (calcul mathématique, concaténation de chaînes, ...). Des fonctions de "casting" sont également disponibles pour modifier explicitement le type d'un objet.

Exemple de "casting" implicite:

Exemple de "casting" explicite:


Comme tous les langages structurés, Arcade propose des instructions de tests conditionnels et de boucles. 

Pour réaliser un test conditionnel, vous utiliserez l'instruction classique  If...else... (avec la syntaxe de JavaScript) ou éventuellement les instructions IIF, Decode ou When pour des expressions rédigées sur une seule ligne.

Le test conditionnel suivant:


est équivalent à celui-ci:
  

Pour réaliser une boucle, vous utiliserez l'instruction classique For... (avec la syntaxe de JavaScript) pour itérer sur une série de valeur. 


Vous pourrez également utiliser le For...In pour itérer sur les éléments d'un tableau ou les noms de champs d'un dictionnaire ou d'une entité.


On notera que des instructions comme Break, Continue et Return sont supportées dans les boucles.

Le langage Arcade permet également l'écriture d'expressions plus évoluées et structurées en utilisant des fonctions. Ces dernières doivent être déclarées avec l'instruction Function... et doivent être déclarées avant d'être utilisées (plus en amont dans le code de votre expression).


Enfin, quelques mots sur l'utilisation des variables. Dans Arcade, les variables sont globales, sauf lorsqu'elles sont déclarées dans les fonctions où elles ont alors un scope local. Les variables se déclarent à l'aide de l'instruction var mais cette dernière est optionnelleL'assignement de valeur à une variable se fait comme dans la plupart des langages de scripting. Ci-dessous, quelques exemples de syntaxes courantes:


Le futur d'Arcade
 
Même si l'utilisateur n'y avait pas accès avant la version 10.5, Arcade est en réalité utilisé depuis plus d'un an dans le portail ArcGIS (Online et Enterprise) pour l'implémentation de certains rendus de SmartMapping introduit récemment dans les cartes web ArcGIS. Depuis la version 10.5 d'ArcGIS, vous pouvez utiliser ce nouveau langage pour créer des expressions d'étiquetage ou pour définir les valeurs associées aux symboles (taille, couleur, orientation ou transparence) de vos couches.


Dans les prochains mois, les nouvelles versions des applications ArcGIS supporteront les expressions Arcade dans les cartes web puis rapidement aussi dans les scènes web. On notera notamment l'implémentation complète d'Arcade (lecture, création et modification) des expressions Arcade. 

Mais au-delà des usages actuels, Esri envisage déjà l'utilisation d'Arcade dans d'autres contextes. 


Par exemple, à court terme, vous retrouverez la possibilité d'utiliser Arcade pour le calcul de valeurs de champs (dans la calculatrice d'ArcGIS Pro ou dans la visionneuse du portail par exemple). Bientôt, vous pourrez aussi utiliser Arcade dans la définition des contenus des fenêtres contextuelles (pop-ups) de vos cartes et scène web. 

Enfin, à moyen terme, Esri va introduire un nouveau système de règles attributaires au niveau de la Géodatabase pour permettre la définition de comportements dynamiques sur les valeurs des champs dans les tables (comme on le fait aujourd'hui avec l'outil "Attribute Assistant"). L'implémentation de ces règles attributaires reposera en grande partie sur le langage Arcade.
  
  
Conclusion

Arcade est une langage d'expression qui est complémentaire à Python qui, pour sa part, adresse les problématiques d'automatisation de tâches dans ArcGIS. Ce nouveau langage est déjà mature et va s'étendre sur le plan des contextes d'usage et sur le plan fonctionnel. C'est donc le moment de regarder Arcade d'un peu plus près et de commencer à découvrir la puissance et la simplification de workflow qu'il va vous apporter.
  

Viewing all articles
Browse latest Browse all 2038

Trending Articles