Rechercher dans le blog

ArcGIS dans l'œil du développeur : récap de la plénière du 2024 Developer Summit d'Esri

Du 12 au 15 mars dernier a eu lieu la conférence annuelle d'Esri à destination des développeurs, le Developer Summit. La plénière, qui revient sur les nouveautés marquantes de l'année écoulée, et nous donne un aperçu des directions dans lesquelles se développe ArcGIS.  
Le replay de la plénière est accessible ici, mais si vous n'avez pas le temps de le regarder en entier, je vous propose de découvrir dans cet article un récapitulatif des points saillants aillant été présentés. On va parler d'IA, de développement web, de moteurs de jeu, d'applications natives, et de développement Open Source.

L'Intelligence Artificielle dans ArcGIS

Je ne résiste pas à l'envie de commencer par parler d'Intelligence Artificielle, sujet incontournable du moment et sur lequel toutes les boîtes du monde de la tech travaillent activement. Logiquement, le sujet a donc fait une apparition très attendue lors de la plénière.
Dans ArcGIS, l'IA prend deux formes : 
  • la GeoAI, permettant de l'analyse géographique (classification, prédiction,...) et de l'extraction d'informations provenant de données issues de capteurs (imagerie, vidéo, RADAR,...). Celle-ci est ancrée dans le système depuis plusieurs année, permettant par exemple la classification de nuage de points, la classification d'objets, l'extraction d'entités, et en mettant à disposition de nombreux modèles de Deep Learning pré-entrainés ;
  • les assistants IA, dont le but est de faciliter l'utilisation des applications via des interfaces en langage naturel. Esri se concentre actuellement sur leurs implémentations, dont le but est à la fois d'aider les non-experts à accéder à l'information géographique, et de faciliter l'utilisation des solutions SIG aux géomaticiens plus expérimentés.
Ces deux aspects ont été mis en illustration par les équipes d'Esri durant la plénière de ce Dev Summit : 

Text SAM (Segment Anything Model)

SAM (Segment Anything Model) est un modèle d'Intelligence Artificielle de Meta, qu'Esri a intégré à ArcGIS via le Living Atlas depuis l'an dernier. Ce modèle, capable de segmenter tous les objets d'une image en se basant sur une classification des pixels, est rapidement devenu le modèle pré-entraîné le plus populaire sur la plateforme.
Le problème de SAM, c'est qu'il segmente tout, sans faire de distinction spécifique selon un type d'objet.
Afin de pouvoir indiquer à SAM via un prompt textuel quel type d'objet extraire, Esri a publié un nouveau modèle combinant SAM au Modèle Grounding DIMO : le modèle Text SAM.
En plus d'être accessible dans le Living Atlas, Text SAM est disponible en tant que modèle Open Source sur le github d'Esri.
 
SAM est conçu pour fonctionner avec des données d'imagerie à 3 bandes en couleurs naturelles (RVB), mais Esri a également ajouté la possibilité de l'entraîner avec d'autres types de données, comme par exemple du SAR, des données d'élévation, ou encore de l'imagerie multispectrale, en se basant sur une nouvelle technique, LoRA (low-rank adaptation), permettant d'entraîner le modèle sur la GPU d'un ordinateur classique en moins de 30 minutes.

Un assistant IA pour vous aider à créer vos cartes

L'implémentation de ce second point est encore à l'état de développement et de prototype dans de nombreux produits de la suite ArcGIS (Experience Builder, Hub, Survey123, Pro, ...), et nous avons pu avoir un aperçu de la forme que cela pourrait prendre dans le Map Viewer par exemple. Dans la captation ci-dessous, vous pouvez voir le démonstrateur discuter en langage naturel avec l'assistant afin de réaliser la symbologie de sa carte. L'assistant est capable d'interpréter la demande et d'aller rechercher les informations pertinentes dans les champs de la couche, et ce même si les noms des champs ne sont pas très parlants à première vue.
Bien que l'assistant permette dans ce cas d’accélérer la création de la symbologie, il est toujours possible de garder la main sur cette dernière et d'affiner les propositions faites par l'IA pour que le résultat final corresponde totalement à vos besoins. Esri n'a pour l'instant pas communiqué de date sur la mise à disponibilité pour le grand public de ce type d'outil.

Deux nouveaux services de localisation pour enrichir vos applications

ArcGIS propose de nombreux services permettant d'intégrer de l'intelligence géographique au sein de vos applications : des fonds de carte,  du géocodage, des itinéraires, du géoenrichissement, de l'analyse spatiale, ou encore depuis 2023 des points d'intérêts. 
D'ici l'été 2024, ce catalogue s'enrichira avec deux nouveaux services en version bêta (disponibles uniquement sur ArcGIS Location Platform dans un premier temps) :
  • Le Static Basemap Tile Service (service de tuiles de fond de carte statique) permettra de générer sur demande des tuiles de carte statiques, plus légères que les fonds de cartes utilisés classiquement. Ce service est destiné à créer des fonds de carte pour des applications légères, ou destinées à être utilisées sur des appareils capables de mobiliser peu de ressources.
  • L'Elevation Service (service d'élévation) donne accès facile aux valeurs d'altitude (Z) dans le monde entier. Il permet notamment de tracer des profils d'élévation, et ce par rapport au Mean Sea Level (niveau moyen de la mer) ou par rapport à l'ellipsoïde de référence.
Enfin, je vais vous donner une petite exclusivité de la session "Road Ahead" pour les services de localisation d'ArcGIS, qui n'a pas été mentionné durant la plénière 👀 Le catalogue de service devrait s'enrichir d'un service "Last Mile Delivery" permettant de compléter le service de routes classique afin de faciliter la navigation dans les derniers mètres avant la livraison, pouvant être soumis à des règles particulières.

Perspectives et tendances de développement web avec le SDK JavaScript

Le SDK JavaScript d'ArcGIS permet de développer des applications cartographiques aux capacités avancées à destination du web. Avec 3 mises à jour par an, il s'enrichit régulièrement de nouvelles fonctionnalités puissantes. Parmi les dernières nouveautés introduites, les composants marquent un tournant clair dans l'évolution du SDK. Revenons sur ce qui a été montré en plénière : 

Configurer sa Web Map avant de développer

Avant de mettre les mains dans le code avec le SDK, une bonne pratique très répandue et encouragée qui a été rappelée durant la plénière consiste à paramétrer au maximum votre carte directement dans l'interface Map Viewer ou Scene Viewer de votre portail ArcGIS Online ou Enterprise. 
En configurant les couches à ajouter, la symbologie, les fenêtres contextuelles, les géosignets, les graphiques etc. directement via le Map Viewer au niveau de la Web Map, vous réduisez considérablement l'effort de développement, et améliorez également la maintenabilité du code et la réutilisation de la carte dans différentes applications. Une fois configurée, la Web Map est intégrable en 3 lignes de code ; et si vous devez en modifier le contenu, les changements enregistrés via le Map Viewer se répercuteront dans toutes vos applications appelant la Web Map sans que vous n'ayez à modifier une seule ligne de code.
 

Les composants du SDK JavaScript pour faciliter le développement web

L'une des grandes nouveautés de l'an dernier dans le SDK JavaScript d'ArcGIS est l'introduction des Maps SDK Components depuis la version 4.28. Ces composants permettent de réduire l'effort de développement en mettant à disposition des composants réutilisables et facilement intégrables avec quelques lignes de HTML. Les Maps SDK Components donnent accès à des composants cartographiques : les cartes, les scènes, ainsi que tous les widgets disponibles via l'API JavaScript, et à divers diagrammes depuis la version 4.29 pour faciliter la compréhension de vos données, via les Chart Components
En configurant directement vos diagrammes dans le MapViewer, vous pouvez ensuite très simplement les appeler dans votre application via ces composants en une seule ligne de HTML. Dans l'exemple ci-dessous, le démonstrateur a inclus deux graphiques à son application : 
Vous pouvez retrouver la documentation relative à cet exemple ici. Et voici le résultat :
Pour en apprendre plus sur ces composants, comment les implémenter et comment ils modifient le paradigme de développement, je vous conseille cet article sorti sur le blog à la fin de l'an dernier.
 

Des composants cartographiques à utiliser en synergie avec des composants d'UI

Si vous connaissez bien le système ArcGIS, ces composants cartographiques nouvellement introduits dans le SDK JavaSciprt  ne sont peut-être pas sans vous rappeler Calcite. Calcite est le Design System mis à disposition par Esri, qui donne accès à divers composants pour vous aider à développer vos applications, en se concentrant pour sa part sur la partie interface utilisateurs.
Durant la démonstration en plénière, certains de ces composants ont été utilisés pour créer ce menu complexe dans une application responsive : 
Si ces composants ont retenu votre attention, restez attentifs aux prochains articles du blog : un tutoriel est actuellement en préparation pour vous guider dans la création d'une app utilisant Calcite et les composants cartographiques du SDK JavaScript !

Le futur du SDK JavaScript : focus sur l'édition web

L'édition web est un point sur lequel Esri concentre actuellement ses efforts de développement. Le but est de pouvoir offrir une expérience d'édition complète et efficace directement sur le web, sans passer par un client lourd. Cela signifie pouvoir travailler avec des modèles de données complexes comme ceux des réseaux (utility networks) par exemple, avoir accès à des formulaires intelligents, être capable de travailler sur les enregistrements associés, avoir des outils d'aide à l'édition comme le snapping aussi bien en 2D qu'en 3D, ou encore pouvoir utiliser des données versionnées.
Lors de la plénière, Esri nous a montré comment coupler les récentes couches d'imageries orientées introduites en version 4.28 du SDK avec des formulaires intelligents afin de compléter des workflows d'inspection tout en tirant parti de la capacité à éditer des enregistrements associés. 
Une seconde démonstration a montré comment mettre à jour un tracé Utility Network d'un réseau de distribution d'eau en utilisant de la gestion de branche. Le démonstrateur a été capable de compléter le tracé de son réseau, notamment grâce aux capacité de snapping qui lui assurent un tracé continu et un respect des règles du réseau existant.

Un SDK résolument 3D

Le SDK JavaScript d'ArcGIS permet de créer des solutions cartographiques en 2D, mais gère également la 3D de manière très fluide.
Parmi les dernière nouveautés, nous notons notamment la capacité de permettre à l'utilisateur d'importer en direct des données 3D dans divers formats (IFC, Collada, Obj ou encore d'autres standards de l'industrie), que vous pouvez tester par vous-même ici, depuis la version 4.29.
Le SDK peut être également utilisé pour des processus de validation. Dans l'exemple ci-dessous, le bâtiment importé ne respecte pas certaines des règles d'urbanisme de la zone ; des alertes sont alors levées dans l'application pour permettre une inspection plus approfondie du projet.

Vos bâtiments en Réalité Mixte avec les SDKs pour moteurs de jeux

Les SDKs pour moteurs de jeux (Unity et Unreal Engine) d'ArcGIS permettent d'intégrer vos données SIG dans les moteurs de jeux afin de créer des expériences immersives. Ces expériences immersives peuvent être de la réalitée augmentée, où des informations se superposent au monde réel ;  de la réalité mixte incluant des tables de travail virtuelles permettant de la collaboration ; ou encore de la réalité virtuelle totalement immersive.
Le monde des moteurs de jeu évolue continuellement, et ces SDKs sont constamment mis à jour pour offrir de nouvelles fonctionnalités. L'an dernier, nous parlions durant cette plénière de la capacité à intégrer des données issues du BIM. Au cours de l'année, le support de celle-ci s'est amélioré  avec la possibilité par exemple de créer des filtres sur certaines parties du bâtiment. Il est également maintenant possible de créer des masques sur des photomaillages, afin de visualiser ses projets BIM dans un environnement existant.
Esri nous a également montré comment le SDK pouvait être utilisé dans le contexte du bâtiment en réalité virtuelle pour s'entraîner par exemple dans des scénarios d'incendie.

Les SDKs pour applications natives accueillent Flutter

Les applications natives permettent de travailler sur de nombreux appareils (tablette, smartphone, ordinateur), en tirant parti de leurs capteurs. Elles sont très pour le travail sur le terrain grâce à leur possibilité d'être utilisées sans se connecter à un réseau.

Les technologies de développement étant en évolution constante, l'enjeu majeur pour Esri est que leurs SDKs puissent répondre aux nouveaux besoins des développeurs et prendre en charge les plateformes  les plus utilisées. C'est pour cela qu'ils ont développé un nouvel SDK natif à destination de Flutter. Flutter est en train de prendre une place importante dans le développement natif, en gagnant en popularité dans le développement cross-plateforme, bénéficiant d'une grande communauté et offrant des fonctionnalités permettant de gagner en productivité lors du développement.
Ce nouvel SDK sera bientôt disponible en Bêta, et sa version de production est prévue pour novembre 2024. En attendant, nous avons pu le voir en avant première durant la plénière. 
Lors du développement, Flutter permet d'émuler plusieurs rendus sur plusieurs appareils à la fois, comme par exemple ici sur iOS et Android.
En plus de cela, pour permettre une productivité de développement accrue, Flutter se base sur deux concept. Le premier est les widgets : tout dans Flutter est un widget. Les widgets sont les blocs fondamentaux pour l'interface utilisateur, et ils définissent à la fois le layout et les éléments interactifs. Les widgets permettent d'intégrer et de déplacer rapidement des éléments dans votre application. Le deuxième concept est le "Hot Reload" : lorsque vous sauvegardez vos changements, l'émulation se recharge immédiatement et vous voyez les résultats apparaître, sans avoir besoin de recompiler ou de redéployer. Ce mécanisme est permis car Flutter est écrit en Dart, un langage de programmation moderne et concis intégrant un compilateur à la volée à l'intérieur de ses machines virtuelles.

Open Source : l’API REST d’ArcGIS adhère à la spécification Open API

ArcGIS offre de nombreux SDKs permettant de développer des applications natives ou pour le web. Cependant, il est possible que vous travailliez avec d'autres technologies ou d'autres APIs, et vous pouvez notamment avoir des solutions existantes dans lesquelles vous souhaiteriez intégrer les services d'ArcGIS. Pour permettre cela, Esri s'assure qu'ArcGIS reste un système ouvert et interopérable, en supportant des standards comme l'OGC, W3C et ISO ; ou en s'assurant que ses services de localisation soient supportés dans des API tierces et soient agnostiques de tout framework.
 
Lors de la plénière, Esri s'est attardé sur le nouvel endpoint self de leur API de fonds de carte disponible dans l'API REST et décrivant le service. En utilisant son url, il est possible de requêter facilement le service ; une réponse JSON est retournée, contenant des informations sur les styles de service dipsonibles : leur nom, le lien vers le service, l'URL de la miniature... Cet endpoint est utilisable pour créer des applications, par exemple ci-dessous avec MapLibre. L'avantage d'utiliser cet endpoint self est que, si Esri met à jour son service en ajoutant ou en modifiant des fonctionnalités, cela sera reflété dans la réponse et votre application restera donc à jour.
Les APIs REST d'ArcGIS ont toujours été ouvertes, mais Esri donne une attention particulière à ce que leurs nouveaux services se conforment à la spécification Open API, un standart pour décrire les APIs HTTP quel que soit leur langage afin que les humains et les machines puissent les comprendre. Cette spécification étant agnostique, cela signifie que vous pouvez utiliser le langage de votre choix pour faire appel aux services d'ArcGIS, comme par exemple Ruby ou PHP.
En vous rendant par exemple sur la documentation du service Places, vous pouvez cliquer à gauche sur l'onglet OpenAPI Specification. Cela vous renvoie sur une page d'informations sur le service difficilement déchiffrable, mais que vous pouvez interpréter dans des extensions telles que Swagger UI.  

Aucun commentaire:

Enregistrer un commentaire