La version 300.0 des ArcGIS Maps SDKs for Native Apps constitue une étape
majeure, introduisant des fonctionnalités importantes, dont certaines
totalement inédites pour les SDK mobiles, ouvrant la voie à une nouvelle
catégorie d’applications SIG. Avec le passage de la version 200.8 à
300.0, l’accent est mis sur l’extension des capacités, avec trois nouveautés
majeures : les scènes locales, les couches de scène de bâtiment et un tout
nouvel ensemble d’outils d’analyse spatiale.
Scènes locales
Les SDKs pour applications natives prennent en charge la 3D depuis la version
100.0, il y a environ dix ans, mais toujours dans un contexte global. Cela
implique l’utilisation du système de coordonnées géographiques WGS84 pour
l’affichage des données, et pour des performances optimales, ces données
doivent généralement être publiées en WGS84 afin d’éviter une reprojection à
la volée. Cette reprojection consomme des ressources CPU, ce qui peut
entraîner une consommation accrue de batterie sur les appareils mobiles.
Publier une copie distincte des données en WGS84 permet de contourner ce
problème, mais introduit souvent une surcharge inutile.
Cette nouvelle version introduit le local scene view. Il s’agit d’un
tout nouveau composant d’interface que l’on peut intégrer à une application,
permettant de travailler avec une scène locale, qu’elle provienne d’une scène
web, d’un scene package mobile embarqué sur un appareil ou qu’elle soit créée
via le code de l'application. Une scène locale peut utiliser n’importe quel
système de coordonnées projeté, en adéquation avec vos données publiées..
La vue de scène locale a été conçue de bout en bout pour exploiter au mieux
les pipelines GPU modernes, ce qui apporte plusieurs avantages clés :
- Les performances ont été optimisée en séparant la gestion des données de leur rendu, permettant aux CPU et aux GPU de se concentrer sur leurs tâches respectives, réduisant ainsi la charge globale et la consommation de batterie.
- Cela permet également une gestion plus efficace de la mémoire, avec une meilleure capacité à gérer scènes complexes et aux situations de pression mémoire. Par exemple, il devient possible de distinguer une pression mémoire liée à la complexité des données d’une pression liée à leur volume, et d’y répondre différemment.
- Le nouveau pipeline exploite les optimisations intrinsèques aux données 3D, comme les symboles incluant plusieurs niveaux de détail (multi-LOD), afin d’afficher le meilleur niveau de fidélité en fonction de l’appareil, de la scène et du point de vue.
- Enfin, il permet de prendre en charge des rendus physiquement réalistes glTF (PBR), incluant matériaux, émissions lumineuses, occlusion ambiante et autres effets, pour valoriser visuellement les données.
Nouvelles APIs pour les scènes
Plusieurs nouvelles API accompagnent la local scene view, supportant des
capacités définies dans la
spécification des scènes web :
- Les scènes disposent désormais d’une propriété décrivant le mode d’affichage, local ou global. Cette information peut être lue depuis une scène web ou mobile, ou définie lors de la construction de la scène via le code. En l’absence de définition explicite, le mode global est utilisé par défaut, garantissant la compatibilité avec le code existant en version 200.x.
- Le contrôle du rendu de l’environnement est désormais défini directement au niveau de la scène.
- Les scènes locales permettent de définir une zone de découpage afin de restreindre l’expérience à une zone d’intérêt spécifique.
De nouveaux événements signalent également les incohérences entre types de
scènes et de vues, ou les situations de pression mémoire dans la vue locale.
En tant que nouveau composant, certaines fonctionnalités ne sont pas encore
disponibles dans les scènes locales. Cette première version est centrée sur
les contenus 3D et ne prend pas encore en charge les couches d'entités ni
les couches graphiques. Ces limitations et leur feuille de route sont
détaillées dans la documentation des SDKs .NET,
Flutter,
Kotlin,
Qt
et
Swift.
Cette expérience de scène locale repose sur les mêmes pipelines que ceux
utilisés par les SDK ArcGIS pour Unity et Unreal Engine depuis
2022.
Couches de scènes de bâtiment
Les couches de scène de bâtiment sont un type de couche 3D, essentiels pour
les workflows AEC. Ellesl permettent de représenter des modèles BIM
complexes avec un niveau de détail fin et des performances élevées. Ces
couches sont désormais supportées pour la première fois dans les SDKs natifs
via la nouvelle expérience de scène locale. Au-delà de leur qualité
visuelle, les couches de scène de bâtiment permettent d’explorer en
profondeur les composants individuels des modèles de bâtiments, tant
visuellement que via des APIs donnant accès aux données sous-jacentes.
Les modes X-Ray et Wireframe permettent d’examiner facilement l’intérieur des
modèles. Il est également possible de contrôler précisément les couches
affichées, jusqu’au niveau des entités. Les objets peuvent être sélectionnés
et identifiés pour consulter leurs attributs et afficher des infobulles. Les
rendus de chaque sous-couche peuvent être modifiés dynamiquement afin de
mettre en valeur certains éléments. Si les modèles intègrent des capacités
glTF PBR, celles-ci sont restituées avec précision, en tenant compte notamment
des ombres et de l’heure de la journée.
Les API offrent un contrôle complet sur l’expérience, qu’il
s’agisse de masquer des murs, d’afficher uniquement les réseaux
électriques ou de se concentrer sur un étage
spécifique. Outils d’analyse spatiale
Le troisième pilier de la version 300.0 est un nouvel ensemble d’outils
d’analyse spatiale. Conçus pour fonctionner directement sur les données à
pleine résolution, ces outils offrent des performances très élevées et
produisent des résultats exploitables pour la prise de décision, le stockage
local ou l’affichage. Leur rapidité permet même des usages interactifs.
Ces outils sont compatibles avec l’ensemble des plateformes cibles des Native Maps SDKs, des ordinateurs aux smartphones. Disposer de capacités analytiques aussi précises et performantes sur des appareils mobiles ouvre des perspectives inédites pour le développement d’applications.
La première version inclut notamment l’analyse de visibilité (viewshed et ligne de visée), une API d’algèbre cartographique puissante et flexible, ainsi qu’un overlay d’analyse pour les workflows interactifs.
Ces outils sont compatibles avec l’ensemble des plateformes cibles des Native Maps SDKs, des ordinateurs aux smartphones. Disposer de capacités analytiques aussi précises et performantes sur des appareils mobiles ouvre des perspectives inédites pour le développement d’applications.
La première version inclut notamment l’analyse de visibilité (viewshed et ligne de visée), une API d’algèbre cartographique puissante et flexible, ainsi qu’un overlay d’analyse pour les workflows interactifs.
Analyse embarquée dans les SDKs natifs
Historiquement, les SDKs natifs proposaient déjà des capacités d’analyse locale hors ligne, réparties en quatre grandes catégories :- Analyse sur jeux de données : géocodage, analyse de réseau, analyse sur des utility network ;
- analyse géométrique : comparaison, manipulation, reprojection géographiques de lignes, points et polygones en se basant sur le geometry engine ;
- analyse visuelle 3D exploratoire ;
- Local server.
Les analyses visuelles 3D permettaient des calculs rapides via le GPU, garantissant de très bonnes performances mais restant limitées aux données visibles à l’écran, avec une précision dépendante du rendu et sans production de résultats exploitables.
La version 300.0 introduit une cinquième catégorie, combinant précision et performance. Les nouveaux outils travaillent sur les données sources à pleine résolution et s’appuient sur un pipeline GPU dédié, distinct de celui du rendu. Les résultats produits sont précis et peuvent être affichés, analysés, interrogés ou enregistrés.
Exploration des nouvelles APIs d’analyse
Le principe d’utilisation est simple : charger des données, définir une séquence d’opérations d’analyse, puis exécuter l’analyse ou l’afficher via un overlay.Les opérations peuvent être des analyses de visibilité (champ de vision et ligne de visée), des opérateurs d’algèbre cartographique, ou une combinaison des deux.
L'extrait de code ci-dessous se base sur l'API algébrique dans le SDK Swift
pour classifier les données d'élévation en 4 catégories et les
afficher sur la carte dans des couleurs différentes.
A mesure que l’on construit une analyse en combinant différentes opérations,
les APIs préparent un pipeline de calcul GPU optimisé à partir de ces
opérations. Point essentiel, ce pipeline n’est pas exécuté tant que le
résultat n’est pas explicitement demandé. D’un point de vue technique, Esri
combine ici une lazy evalution avec une fusion des opérations
appliquées à la chaîne d’analyse. Cette approche permet aux APIs d’optimiser
les traitements en regroupant les opérations avant leur exécution, ce qui
réduit à la fois le temps de calcul et l’utilisation de la mémoire en évitant
de produire ou de stocker des résultats intermédiaires.
L’un des aspects les plus intéressants de cette approche est la possibilité de
modifier simplement les paramètres utilisés à n’importe quel niveau de la
chaîne d’opérations, avec un impact immédiat sur le pipeline optimisé. Par
exemple, si l’observateur d’une analyse de ligne de visée se déplace, il
suffit de mettre à jour sa position telle qu’elle a été définie dans
l’analyse, et le prochain calcul reflétera automatiquement cette nouvelle
localisation. Si un overlay d’analyse est utilisé pour afficher les résultats
sur une carte, son rendu se mettra à jour instantanément dès que la nouvelle
position est fournie. Dans l'exemple ci-dessous, plusieurs analyses de ligne
de visée sont configurées à partir d’un seul observateur. En modifiant la
position de cet observateur, l’ensemble des analyses est mis à jour, et ce de
manière extrêmement rapide.
Licence des APIs d'analyse
Afin d’aligner ces nouvelles capacités d’analyse des Native Maps SDKs avec
celles de Local Server et d’ArcGIS Pro, les API de visibilité et de ligne de
visée sont proposées avec un niveau de licence Standard, tandis que les
opérations d’algèbre cartographique nécessitent l’extension Analysis.
L’ensemble des API reste accessible gratuitement en mode développeur.
Évolutions prévues pour l'analyse
Ces nouvelles capacités marquent le début d’une évolution plus large. D’autres outils sont déjà en préparation, à commencer par le calcul de pente, d’exposition et la conversion raster vers polygone. Les priorités de développement sont définies en fonction des retours des utilisateurs, notamment pour accompagner les développeurs dans la migration de leurs applications depuis Local Server et ArcGIS Engine. De nouvelles fonctionnalités d’analyse seront introduites à chaque version.Évolutions des licences
La version 300.0 introduit également un changement important concernant
l’utilisation des chaînes de licence pour un usage en production.
Pour rappel, deux modes de licence existent pour les applications basées sur les Native Maps SDKs : le mode utilisateur nommé, dans lequel l’utilisateur final se connecte à un compte ArcGIS Online ou ArcGIS Enterprise, et le mode par licence string (chaîne de licence), dans lequel le développeur intègre une chaîne de caractères fixe dans l’application.
Dans le cas des utilisateurs nommés, aucun changement n’est à signaler. En revanche, l’utilisation des chaînes de licence évolue. À partir de la version 300.0, celles-ci sont désormais liées à une version majeure. Une chaîne de licence 100.x reste valable pour les versions 100.x et 200.x, mais une nouvelle chaîne 300.x est nécessaire pour utiliser les SDK en version 300.x.
Pour les licences Lite gratuites, il suffit d’obtenir une nouvelle chaîne 300.x depuis My Esri, accessible via la carte « ArcGIS Maps SDKs for Native Apps License Strings » sur la page d’accueil du tableau de bord.
Si un message indique que le compte
ArcGIS organisationnel n’est pas autorisé à accéder aux sites esri.com, il est
nécessaire de contacter l’administrateur de l’organisation afin d’activer cet
accès ou de définir un mode de distribution des chaînes de licence Lite.Pour rappel, deux modes de licence existent pour les applications basées sur les Native Maps SDKs : le mode utilisateur nommé, dans lequel l’utilisateur final se connecte à un compte ArcGIS Online ou ArcGIS Enterprise, et le mode par licence string (chaîne de licence), dans lequel le développeur intègre une chaîne de caractères fixe dans l’application.
Dans le cas des utilisateurs nommés, aucun changement n’est à signaler. En revanche, l’utilisation des chaînes de licence évolue. À partir de la version 300.0, celles-ci sont désormais liées à une version majeure. Une chaîne de licence 100.x reste valable pour les versions 100.x et 200.x, mais une nouvelle chaîne 300.x est nécessaire pour utiliser les SDK en version 300.x.
Pour les licences Lite gratuites, il suffit d’obtenir une nouvelle chaîne 300.x depuis My Esri, accessible via la carte « ArcGIS Maps SDKs for Native Apps License Strings » sur la page d’accueil du tableau de bord.
Pour les licences Basic, Standard, Advanced ou les extensions, de nouvelles chaînes 300.x doivent être obtenues avant de déployer des applications avec les SDK 300.x. Celles-ci sont fournies sans coût supplémentaire pour les clients disposant d’un contrat de maintenance actif. Dans le cas contraire, il convient de se rapprocher du gestionnaire de compte ou du service client Esri.
Les autres nouveautés de la 300.x
Si les scènes locales, les couches de scène de bâtiment et les nouveaux outils d’analyse spatiale constituent les principales nouveautés de la version 300.0, de nombreuses autres nouveautés ont également été apportées :- Un domaine notable concerne la prise en charge des courbes vraies. En version 300.0, celles-ci sont désormais disponibles hors ligne par défaut, affichables en 3D, et bénéficient d’un premier niveau de support dans l'éditeur de géométries.
- Le support des rasters a également été renforcé, avec de nouvelles capacités de colorisation, une meilleure gestion de l’interpolation selon les usages, et un accès étendu aux métadonnées permettant d’afficher les données à l’échelle la plus pertinente.
- La prise en charge des templates partagés a été ajoutée, avec la lecture et l’utilisation de feature templates, preset templates et group templates depuis des feature services et des géodatabases. Ces templates sont couramment utilisés dans les utility networks, mais trouvent leur place dans de nombreux workflows de création de données. Les preset templates permettent de positionner plusieurs entités selon un motif prédéfini autour d’un point, tandis que les group templates appliquent des règles de construction complexes à partir d’une géométrie de base. Les feature templates permettent quant à eux de créer automatiquement des enregistrements liés lors de la création d’une entité.
- La gestion des associations dans les utility networks via les formulaires d’entités s'enrichit avec des fonctionnalités intégrées de création, modification et suppression.
- Les API de navigation prennent désormais en charge les itinéraires piétons. Le composant RouteTracker adapte son comportement en conséquence, notamment pour la détection d’arrivée, le calcul des temps de parcours en fonction de la vitesse de marche, le déclenchement des événements liés aux manœuvres à venir, ou encore la prise en compte des demi-tours en tout point de l’itinéraire.
- Un meilleur support des tuiles 3D photoréalistes Google ;
- La gestion de pièces jointes volumineuses jusqu’à 1 Go dans les formulaires d’entités ;
- L’interrogation d’entités dynamiques par identifiant de trace ;
- La modification de la référence spatiale d’une carte ;
- Des améliorations d’accessibilité ;
- Une nouvelle API permettant de calculer l’altitude pour plusieurs points simultanément, par exemple pour générer des profils altimétriques ;
- La prise en charge des cartes nautiques électroniques chiffrées S63 dans le SDK Qt sur toutes les plateformes supportées ;
- La prise en charge des Photo Overlays dans les couches KML ;
- Un premier support des couches d’imagerie orientée ;
- le support des proxys forward pour le SDK Kotlin bénéficie du support des proxys forward ;
- L'intégration des nouvelles API de gestion en arrière plan d'iOS 26 dans le SDK Swift.
Le SDK Flutter poursuit sa montée en puissance vers la parité fonctionnelle, avec l’ajout des entités dynamiques, des utility networks, des API de labellisation, de réduction d’entités et des callouts. Enfin, le SDK .NET abandonne le support de .NET Framework, UWP et Windows x86.
De nombreuses autres évolutions sont disponibles et détaillées dans les notes de version des différents SDK : .NET, Flutter, Kotlin, Qt et Swift.
Conclusion
La version 300.0 représente une évolution majeure pour les SDKs natifs
d'ArcGIS, avec des fonctionnalités structurantes qui vont orienter le
développement des applications natives dans les années à venir. Esri met ces
capacités à disposition pour un usage en production et prévoit de publier
prochainement des articles dédiés à certaines de ces nouveautés.
Pour adopter cette version, il suffit de mettre à jour les gestionnaires de dépendances ou de télécharger les dernières versions depuis le site développeur d’Esri. Lors d’une migration depuis la version 200.x, il est recommandé de passer d’abord par la version 200.8 afin de corriger les éventuelles dépréciations, ce qui permettra ensuite de passer à la version 300.0 sans modification supplémentaire du code.
Cette version marque le point de départ d’une série d’évolutions, notamment autour des outils d’analyse et de la vue de scène locale, avec l’ajout progressif de nouvelles capacités dans les versions à venir.
Pour adopter cette version, il suffit de mettre à jour les gestionnaires de dépendances ou de télécharger les dernières versions depuis le site développeur d’Esri. Lors d’une migration depuis la version 200.x, il est recommandé de passer d’abord par la version 200.8 afin de corriger les éventuelles dépréciations, ce qui permettra ensuite de passer à la version 300.0 sans modification supplémentaire du code.
Cette version marque le point de départ d’une série d’évolutions, notamment autour des outils d’analyse et de la vue de scène locale, avec l’ajout progressif de nouvelles capacités dans les versions à venir.











Aucun commentaire:
Enregistrer un commentaire