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.
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.
Le
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.
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.
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