Le blog francophone consacré
aux technologies Esri

La nouvelle génération des SDKs ArcGIS Runtime 100.0 est arrivée !



C'est une étape importante qui est franchie aujourd'hui par Esri pour adresser les besoins des développeurs souhaitant créer des applications géospatiales natives, riches, cross-platform, cross-device et intégrées à la plateforme ArcGIS. Après une longue période en beta sous le nom de code "Quartz", la nouvelle génération des SDKs ArcGIS Runtime est désormais finalisée et disponible dans une version 100.0.

  
Un nouveau départ

Cette version 100.0 est la première version d'ArcGIS Runtime dans une architecture complètement repensée pour permettre de nouvelles capacités, une intégration plus étroite avec le SIG web ArcGIS, une meilleure homogénéité entre les différentes plateformes de développement et de meilleures performances.


Cet article technique d'Esri expliquait en détail, il y a un an, les évolutions d'architecture entre les version 10.2.x et la version 100.0.

  
Des évolutions importantes

Au delà de la refonte de son architecture, cette nouvelle génération d'ArcGIS Runtime met la carte web et la scène web au coeur de l'API pour permettre d'exploiter au mieux les capacités de la plateforme SIG web ArcGIS. Pour illustrer cette nouvelle approche, je reprends ci-dessous quelques exemples des améliorations clés de cette version 100.0.

Visualisation 3D

Sur les plateformes bureautiques (Windows, Linux, MacOS), les SDKs ArcGIS Runtime permettent désormais le développement d'application affichant, modifiant ou créant des scènes 3D. Ces scènes 3D peuvent consommer des services web (services de scènes, services d'entités, services tuilés, ...) ou consommer des paquetages de données 3D (fichiers .spk) stockés en local sur l'appareil pour un fonctionnement déconnecté. Ces capacités sont également disponible pour les plateformes mobiles (iOS, Android et Windows 10 Mobile) en beta.



Cartes et Scènes

L'objet "Map" a été découplé de la vue qui permet de l'affiché afin de séparer la logique (le modèle) de son rendu dans une architecture Model-View-Controller (MVC) ou Model-View-ViewModel (MVVM). La même approche a été appliquer pour l'objet "Scene". Ces 2 objets importants qui sont au coeur d'ArcGIS Runtime suivent le modèle d'information du SIG web ArcGIS. Ils contiennent les couches de fond de carte, les couches opérationnelles, les géosignets, les fenêtres contextuelles ou d'autres données spécifiques à la plateforme ArcGIS (stream layers, scene layers, ...) que vous souhaitez intégrer dans votre application. Une évolution notable est la capacité d'instancier différentes classes de l'API en utilisant l'URL des éléments d'un portail ArcGIS (une carte web, une scène web, une couche d'entités, ...) faisant ainsi économiser de nombreuses lignes de code pour définir les paramètres de représentation.


Les vues

Les vues (MapView et SceneView) sont uniquement responsables de l'affichage et des interactions avec l'utilisateur, les séparant ainsi de la logique des objets du modèle (Map et Scene) et permettant aux APIs d'être simples et harmonisées entre la 2D et la 3D. Les vues contiennent les éléments graphiques affichés au dessus de la carte ainsi que les classes permettant d'identifier ces éléments graphiques et les entités de la carte sans avoir à écrire de code spécifique à chaque couche.

Fonds de carte vectoriels

Vous pouvez désormais utiliser les couches de tuiles vectorielles dans vos apps ArcGIS Runtime. Ces nouveaux types de couches introduites sur ArcGIS Online et Portal for ArcGIS début 2016 sont similaires à des couches de tuiles d'images mais plus rapides, moins volumineuses et de meilleure qualité visuelle sur les écrans haute résolution. Elles différent également dans la manière d'être délivrées à l'application cliente. Au lieu d'envoyer des pixels, le serveur envoie des tuiles décrivant des entités vectorielles que l'application ArcGIS Runtime peut alors afficher en utilisant le maximum de pixels disponibles sur l'appareil. Le format de fichier binaire utilise les spécifications de tuile vectorielle de Mapbox. Les tuiles vectorielles ne contiennent pas les attributs des entités et ne supportent donc pas les opérations d'identification ou de recherche.



Utiliser, créer ou modifier des cartes

L'API de cartographie d'ArcGIS Runtime s'intègre désormais totalement avec l'API du portail ArcGIS (ArcGIS Online ou Portal for ArcGIS) permettant non seulement l'accès à des cartes web du portail mais également de les modifier ou d'en concevoir de nouvelles, tout en les enregistrant et les partageant sur le portail. Ceci permet l'implémentation de nombreux workflows collaboratifs autour de la plateforme ArcGIS.




Travailler "Online" et "Offline"

Pour vous simplifier les choses, un effort important a été effectué dans cette nouvelle version pour que les opérations de mise à jour, de recherche, de requête, de géocodage ou de calcul d'itinéraire se fasse de la même manière, que vous soyez connecté ou déconnecté à votre portail. Les cartes "Offline", les géocodeurs ou les référentiels de calcul d'itinéraire peuvent être packagés depuis ArcGIS Pro, déployés sur votre appareil mobile et exploité par ArcGIS Runtime à l'aide des paquetages de cartes mobiles (Mobile Map Packages, fichier .mmpk). Une autre approche consiste à télécharger vos couches d'entités ou vos couches de tuiles depuis des services web ArcGIS pour les utiliser ensuite en mode "Offline". La classe GeodatabaseSyncTask vous permettra de gérer l'extraction de données depuis un services d'entités vers une Géodatabase mobile locale (fichier .geodatabase), ce qui vous permettra de réaliser des mises à jour et de les synchroniser vers le services d'entités d'origine dès que l'application sera reconnectée.  La classe ExportTileCacheTask vous permettra d'extraire des tuiles depuis un service de carte tuilé ArcGIS vers un paquetage de tuiles local (fichier .tpk) et permettre leur consultation "Offline".

 

Elements graphiques

Les éléments graphiques ont toujours été utilisés dans les applications ArcGIS Runtime pour afficher des informations graphiques au dessus de la carte. Pour formaliser et simplifier leur usage pour le développeur, des classes GraphicsOverlay et Graphic sont désormais disponibles pour gérer l'affichage d'élément graphique dans une GeoView (MapView ou SceneView).


Symbologie militaire

Sur les plateformes bureautiques (Linux, Windows, MacOS), l'API d'ArcGIS Runtime permet l'utilisation de symbologies militaires de manière largement simplifiée. Vous pouvez maintenant exploiter les fichiers de dictionnaires de styles militaires comme base de votre "Dictionary Renderer" pour l'appliquer à des objets de type Graphic ou de type Feature. Cette capacité est également disponible (en beta) sur les plateformes mobiles.

 

Fichiers Raster

Vous pouvez dorénavant visualiser des sources de données raster sur les plateformes bureautiques. Les formats classiques sont supportés (DTED, GeoTIFF, RPF (Raster Product Format), NITF (National Imagery Transmission Format), HRE (High Resolution Elevation), Erdas Imagine, et bien d'autres). Vous pouvez modifier les options de rendu et calculer des images dérivées comme l'ombrage d'un MNT/MNE, appliquer des tables de couleurs ou par étirement à l'aide des statistiques de distribution des valeurs de pixels.

Gestion centralisée de l'authentification

Une nouvelle classe AuthenticationManager permet maintenant de gérer et d'unifier l'ensemble des aspects liés à l'authentification de l'utilisateur vis à vis du portail ArcGIS auquel l'utilisateur doit se connecter (le cas échéant).

Géométries et constructeurs de géométries

Les objets liés aux géométries restent globalement les mêmes: point, multipoint, polyline, et polygon. Ces objets sont en revanche non modifiables une fois créés. Les constructeurs sur les objets de géométrie permettent de les construire très facilement en une seule fois, en décrivant leurs coordonnées. Ces constructeurs peuvent aussi être utilisés pour construire les géométries progressivement en ajoutant, modifiant ou supprimant des coordonnées.




Une meilleure prise en charge des ressources asynchrones

Les ressources telles que les cartes, les couches, les tâches, … nécessite d'abord le chargement de métadonnées puis ensuite l'adaptation du processus de chargement des données le plus adapté. Ce processus d'adaptation rend le comportement du chargement plus consistent et homogène. Le développeur peut désormais mieux contrôler les états de chargement qu'il déclenche ou qui sont initié à partir d'objets dépendants.

Gestion des erreurs

Il est dorénavant plus simple de déterminer où une erreur se produit dans un pile d'instruction Runtime et le développeur peut ainsi mieux gérer les messages à afficher à l'utilisateur. En plus du code et de son descriptif, une nouvelle propriété est disponible pour déterminer si l'erreur provient de la partie cliente ArcGIS Runtime ou du côté du serveur (service web ArcGIS).

De nouvelles options pour le développeur

Des améliorations spécifiques à certaines plateformes ont également été ajoutées. Par exemple, une des plus significative concerne l'ajout du support de l'environnement de développement Xamarin. En version beta, les SDKs .Net et Xamarin étaient séparés en deux SDKs distincts, mais ils sont disponibles en version 100.0 finale dans un seul SDK ArcGIS Runtime for .Net. Ce SDK contient les APIs pour WPF, UWP, Xamarin.Android, Xamarin.iOS et Xamarin.Forms ce qui permet au développeur de partager une très large partie de son .Net pour construire des applications natives sur différentes plateformes: Windows, Android et iOS.


L'ensemble de la documentation et des exemples de code ont été également rassemblé sur le site développeurs ArcGIS dans la partie ArcGIS Runtime for .Net. Le SDK se téléchargement aussi de manière unique sous la forme d'une extension VSIX (Visual Studio Extension) depuis le site développeurs ArcGIS. Prochainement, il sera même accessible depuis la galerie Visual Studio et en tant que package sur NuGet.org.

Ce SDK .Net marque le support officiel de la plateforme Windows 10 pour ArcGIS Runtime. Les SDKs ArcGIS Runtime pour .Net, Java et Qt peuvent être utilisé pour créer des applications Windows bureautiques classiques. Le SDK ArcGIS Runtime for .Net permet en plus des applications universelles Windows 10. On pourra également signaler que le SDK ARcGIS Runtime for Java permet maintenant de développer son application aussi sur MacOS.

On peut également signaler le changement de nom du SDK ArcGIS Runtime for OS X qui se nomme désormais ArcGIS Runtime for MacOS pour suivre l'évolution de nom choisie par Apple pour la dénomination de ses système d'exploitation.

Un nouveau site web pour les développeurs

La sortie de cette version majeure d'ArcGIS Runtime est l'occasion de déployer un site développeurs totalement refondu pour une meilleure expérience des développeurs dans la recherche des informations, des exemples et des ressources dont ils auront besoins pour avancer plus efficacement. Le site intègre notamment un aperçu de tous les SDKs disponibles et de la proposition de valeur d'ArcGIS Runtime sur chaque plateforme.

Démarrer dès maintenant, c'est simple !

Il vous suffira de vous rendre sur le site développeur ArcGIS, de choisir votre SDK et de vous identifier avec votre compte développeur ArcGIS. Si vous n'en avez pas encore, sa création vous prendra moins d'une minute et c'est gratuit.


Vous pouvez toujours, comme pour les versions précédentes contacter votre interlocuteur Esri pour commander les médias du SDK souhaité.

Dans un mois environ, Esri annoncera un nouveau programme développeur qui remplacera et rassemblera à la fois le programme EDN et l'abonnement développeur ArcGIS. Il intégrera, bien entendu, les options commerciales de déploiement des applications développées avec ArcGIS Runtime. On en reparlera très prochainement lors de son lancement.

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article:

4 comments :

Anselme a dit…

Ok je vais bien me documenter dessus pour voir les fonctionnalités...Gaétan si vous pouvez nous faire une documentation très bien sur son utilisation avec xamarin

Gaëtan Lavenu a dit…

Bonjour,

Vous pouvez contacter mon collègue Olivier Rossini qui maîtrise mieux que moi ArcGIS Runtime sur la plateforme Xamarin.

Anselme a dit…

Comment puis-je avoir le contact d'olivier Rossini ?

Gaëtan Lavenu a dit…

orossini_at_esrifrance.fr