Esri annonce le support des services géospatiaux ArcGIS dans CesiumJS
Après le support des environnements Leaflet, MapLibre et OpenLayers, Esri
annonce le support de la bibliothèque open source CesiumJS pour la création
d'applications avec
les services géospatiaux ArcGIS. Cela signifie que vous pouvez utiliser le moteur de rendu 3D de CesiumJS
avec des services ArcGIS pour créer des applications qui accèdent aux fonds
de carte ArcGIS, affichent les données 2D/3D (via ArcGIS Platform, ArcGIS
Online ou ArcGIS Enterprise) et qui effectuent des tâches de géocodage, de
calcul d'itinéraire, de géo-enrichissement et des analyses spatiales.
La bibliothèque CesiumJS d'Esri a été mise à jour pour permettre un accès plus
facile à tous les services ArcGIS, et un
nouveau guide développeur CesiumJS
a été mis en ligne sur le site web des développeurs ArcGIS.
Ce nouveau guide
du site développeur ArcGIS comprend 20 didacticiels qui illustrent comment
intégrer es services ArcGIS dans une application CesiumJS. Il couvre les
prestations suivantes :
- Services de fond de carte d'imagerie et l'altimétrie
- Services d'entités (2D) hébergés
- Services de scènes (3D) hébergés (au standard OGC I3S)
- Services d'images tuilés hébergés
- Service de géocodage
- Service de calcul d'itinéraire (multiple modalités)
- Service de géo-enrichissement
- Service d'analyse spatiale
Je vous propose de poursuivre cet article si vous voulez en savoir plus sur
les différents types d'applications que vous pouvez créer.
Pour démarrer...
Pour commencer à développer avec CesiumJS et les services géospatiaux ArcGIS,
vous avez besoin d'un compte ArcGIS Developer ou d'un compte ArcGIS Online. On
notera qu'il est possible de commencer avec
un compte ArcGIS Developer gratuit
pour obtenir un accès complet aux services géospatiaux ArcGIS (mais avec des
limites d'usage).
Vous aurez également besoin d'un compte Cesium ion pour développer et déployer
votre application. Pour créer un compte, rendez-vous sur
ion.cesium.com.
La bibliothèque CesiumJS dispose désormais de nouvelles classes pour accéder
aux couches de base ArcGIS, notamment les styles World Imagery, World Oceans
et World Hillshade. Vous pouvez accéder à ces couches sous forme de tuiles
d'image dans votre application avec la classe
ArcGisMapServerImageryProvider. Vous aurez besoin d'un token d'accès ArcGIS pour accéder à ces couches.
Voici un exemple d'ajout d'une couche de base ArcGIS à votre application
CesiumJS :
const cesiumAccessToken = "YOUR_CESIUM_ACCESS_TOKEN";
Cesium.Ion.defaultAccessToken = cesiumAccessToken;
const apiKey = "YOUR_ARCGIS_API_KEY";
Cesium.ArcGisMapService.defaultAccessToken = apiKey;
const arcgisImagery = Cesium.ArcGisMapServerImageryProvider.fromBasemapType(Cesium.ArcGisBaseMapType.SATELLITE);
const viewer = new Cesium.Viewer("cesiumContainer", { baseLayer: Cesium.ImageryLayer.fromProviderAsync(arcGisImagery) });
Vous pouvez également charger des couches de base ArcGIS dans votre
application directement via le
BaseLayerPicker
par défaut. Pour charger des couches de cette manière, vous devez remplacer le
jeton d'accès par défaut inclus avec CesiumJS :
Cesium.ArcGisMapService.defaultAccessToken = "YOUR_ARCGIS_API_KEY";
Pour en savoir plus sur l'utilisation des couches de base ArcGIS avec
CesiumJS, vous pourrez consulter le didacticiel
Afficher une scène
dans le nouveau guide CesiumJS.
Afficher les données hébergées ArcGIS dans CesiumJS
CesiumJS peut également afficher des couches de données hébergées dans ArcGIS,
y compris des couches d'entités 2D et des données 3D I3S. Pour accéder aux
entités de votre application, vous pouvez interroger les services d'entités
hébergés dans ArcGIS pour afficher des points, des polylignes et des polygones
avec la classe
GeoJsonDataSource.
Voici un exemple d'ajout d'entités à partir d'un service d'entités hébergé :
arcgisRest.queryFeatures({ url: featureServiceURL, authentication, f:"geojson"})
.then((response) => { const data = Cesium.GeoJsonDataSource.load(response)
viewer.dataSources.add(data); })
Pour plus de détails sur l'ajout de couches d'entités, vous pourrez consulter
le didacticiel
Ajouter des couches d'entités en tant que GeoJSON.
Une couche de photomaillage 3D (Textured Mesh) affichée dans
CesiumJS. Le photomaillage représente la ville de Francfort, y compris les bâtiments, les rues et les arbres. |
Vous pouvez également afficher les données I3S hébergées dans vos applications
CesiumJS à l'aide de la classe
I3SDataProvider. CesiumJS prend actuellement en charge les couches d'objets 3D et les
couches de maillage intégrées qui adhèrent au standard OGC I3S.
Voici un exemple d'ajout de données I3S hébergées à votre application CesiumJS
:
const frankfurtMesh = "https://tiles.arcgis.com/tiles/cFEFS0EWrhfDeVw9/arcgis/rest/services/
Buildings_Frankfurt_2021/SceneServer";
const i3sProvider = await Cesium.I3SDataProvider.fromUrl(frankfurtMesh,
{ geoidTiledTerrainProvider: geoidService, token: apiKey })
viewer.scene.primitives.add(i3sProvider);
Pour plus de détails sur la façon d'ajouter des données I3S, consultez le
tutoriel Ajouter un maillage intégré.
Exemple de calcul d'itinéraire routier et des directions
visualisées dans CesiumJS. L'itinéraire et les directions ont été calculés à l'aide du service ArcGIS |
Vous pouvez également utiliser CesiumJS pour afficher les résultats d'autres
services de localisation ArcGIS prêts à l'emploi. Ces services comprennent le
service de géocodage, le service de calcul d'itinéraire, le service
Géo-enrichissement et le service d'analyse spatiale.
Les capacités 3D de CesiumJS facilitent la visualisation des résultats de
service de manière unique. Par exemple, l'image suivante montre les résultats
d'une opération d'analyse spatiale visualisée dans CesiumJS.
Cette analyse des points chauds a été réalisée avec le service d'analyse
spatiale d'ArcGIS Online, puis les résultats ont été visualisés et extrudés à
l'aide de CesiumJS. Les capacités de modélisation de CesiumJS permettent un
rendu puissant des données en 3D, qui permet immédiatement de voir où se
trouvent les points chauds et froids dans les données. Le nouveau didacticiel
Effectuer une analyse d'entités
comprend des étapes détaillées sur la façon d'effectuer cette analyse.
Cet article ne montre que quelques exemples de ce que vous pouvez créer avec
ArcGIS et CesiumJS. Pour en savoir plus, vous pourrez consulter le guide
CesiumJS sur le site Web ArcGIS Developers.