Utilisez les services géospatiaux ArcGIS avec Mapbox GL JS
Les services géospatiaux d'ArcGIS Platform sont utilisables avec l'API ArcGIS
JS pour réaliser de belles applications cartocentriques, vous pouvez dans
cet article
voir comment utiliser les services géospatiaux de fonds de cartes avec les API
keys en 5 minutes.
Et comme expliqué dans
cet article
présentant l'offre à destination des développeurs ArcGIS Platform, les
services géospatiaux d'ArcGIS Platform sont compatibles avec les APIs de
mapping principales comme Leaflet,
OpenLayers et
Mapbox GL JS. Dans cet
article, nous allons voir comment au sein d'une application réalisée avec
Mapbox GL JS utiliser des services géospatiaux ArcGIS Platform.
Mapbox GL JS est une bibliothèque JavaScript qui utilise WebGL pour rendre des
cartes interactives à partir de tuiles vectorielles. Je vais ici vous aider à
commencer à travailler avec Mapbox GL JS et les services géospatiaux ArcGIS
pour créer différents types d'applications cartographiques.
Cet article
vous a montré qu'ArcGIS Platform prend en charge l'authentification standard
de l'industrie via l'utilisation des API key. Pour rappel, une API key est un
identifiant unique utilisé pour authentifier un utilisateur, un développeur ou
un programme appelant auprès d'une API. Cependant, ils sont généralement
utilisés pour authentifier un projet avec l'API plutôt qu'avec un utilisateur
humain.
Et comme nous l'avons vu, pour accéder aux services géospatiaux, vous avez
besoin d'un compte de développeur ArcGIS gratuit et d'une API key accessible
depuis votre tableau de bord.
Découvrez comment afficher une carte avec une couche de fond de carte à l'aide
de Mapbox GL JS.
Vous pouvez afficher une carte dans Mapbox GL JS en utilisant une couche de
fond de carte de tuiles vectorielles à partir des services de couche de fond
de carte. Une couche de fond de carte de tuiles vectorielles est un style
Mapbox GL contenant une source, des couches, des glyphes de police et des
icônes pour rendre les couches.
Ici, vous affichez une carte des montagnes de Paris à l'aide de la couche
de fond de carte des rues du service de couche de fond de carte. Retrouvez
tout le code ici.
Prérequis
Dans CodePen, ajoutez du HTML et du CSS pour créer une page avec un
élément div appelé map.
<!DOCTYPE html> <html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no" />
<title>Mapbox GL JS Tutorials: Display a
map</title>
<style> html, body, #map { padding: 0; margin: 0; height: 100%; width: 100%; font-family: Arial, Helvetica, sans-serif; font-size: 14px; color: #323232;
} </style>
</head>
<body>
<div id="map"></div>
</body></html>
Dans la balise <head>, ajoutez des références à la bibliothèque JS et
CSS Mapbox GL JS.
<script src="https://api.tiles.mapbox.com/mapbox-gl-js/v1.12.0/mapbox-gl.js"></script>
<link href="https://api.tiles.mapbox.com/mapbox-gl-js/v1.12.0/mapbox-gl.css" rel="stylesheet" />
Créer une carte
Utilisez une
Map pour
ajouter une carte à votre div avec le fond de carte que vous spécifiez.
La classe
Map utilise
l'élément HTML map pour afficher le contenu de la carte et pour fournir
une interface utilisateur avec laquelle interagir. Il prend en charge le
clic, le zoom, le panoramique, la rotation et l'inclinaison de la
perspective de la carte. Il vous permet également d'interagir et de
découvrir des informations sur les données cartographiques, telles que la
recherche d'entités sur lesquelles l'utilisateur clique sur la souris.
Vous pouvez également l'utiliser pour modifier les données affichées, en
ajoutant de nouvelles sources ou en modifiant les propriétés des calques.
Pour plus d'informations, consultez la
documentation de Mapbox GL JS.
1/ Ajoutez une section <script> ... </script> à la fin de la
section <body> ... </body>.
2/ Créez une variable apiKey pour stocker votre clé API.
Remplacez YOUR-API-KEY par la clé API que vous avez précédemment copiée à
partir du tableau de bord du développeur. Vous devrez l'inclure dans l'URL
de chaque service ArcGIS auquel vous accédez. Vous n'avez pas besoin de
définir
mapboxgl.accessToken. Créez une variable basemapEnum pour stocker l'identificateur de
fond de carte, ArcGIS: Streets.
const apiKey = "YOUR-API-KEY"; const basemapEnum = "ArcGIS:Streets";
3/ Créez une
Map avec des
options pour contrôler son affichage et son comportement. Définissez la
propriété du
conteneur sur
l'ID de carte du div que vous avez créé. La propriété style fait
référence à l'emplacement du service de couche de fond de carte et contient
l'identificateur de fond de carte et votre clé API.
const map = new mapboxgl.Map({ container: "map", // the id of the div element style: `https://basemaps-api.arcgis.com/arcgis/rest/services/styles/${basemapEnum}?type=style&apiKey=${apiKey}`, zoom: 12, // starting zoom center: [2.3522,48.8566] // starting location [longitude, latitude] });
Exécutez l'application
Dans CodePen, exécutez votre code pour afficher la carte.
La carte doit afficher la couche de fond de carte topographique pour Paris.
Afficher une couche de tuile vectorielle
Une couche de fond de carte fournit le contexte visuel d'une carte. Vous pouvez utiliser les styles de couche de fond de carte par défaut fournis par le service de couche de fond de carte ou vous pouvez créer vos propres styles personnalisés avec ArcGIS Vector Tile Style Editor.
Vous pouvez ajouter une basemap avec les fonds de cartes ArcIGS Platform comme par exemple le fond de carte Streets.
const basemapEnum = "ArcGIS:Streets"
Vous pouvez également accéder à une couche de fond de carte en référençant son ID d'élément. Vous pouvez trouver l'ID d'élément d'une couche en y accédant dans ArcGIS Online ou dans ArcGIS Vector Tile Style Editor. Puis remplacez le basemapId d'ArcGIS: Streets par votre propre ID d'élément.
Si vous souhaitez utiliser votre propre couche de tuiles vectorielles ou style de couche de fond de carte dans votre application, et si vous disposez d'un compte développeur, vous pouvez utiliser une clé API pour y accéder. Utilisez le tableau de bord développeur pour configurer votre clé API afin de prendre en charge l'accès aux couches de fond de carte et au contenu et aux éléments. Si vous disposez d'une couche et que vous disposez d'un compte ArcGIS Online ou Enterprise, vous ne pouvez pas utiliser de clés API pour accéder aux couches et éléments privés, et vous devez utiliser OAuth 2.0 pour y accéder. Cependant, tous les comptes peuvent accéder aux couches publiques. En savoir plus dans Sécurité et authentification - OAuth2.0.
Pour aller plus loin, retrouvez tous les tutoriels pour utiliser les autres services géospatiaux d'ArcGIS dans Mapbox GL JS ici.
Vous pouvez vous abonner à ce blog pour lire d'autres articles sur le développement Web d'applications cartographiques et découvrir comment notre API est une superbe alternative à Google Maps !
Vous voulez vous aussi réaliser des applications Web cartographiques et dynamiques ? N'hésitez pas à souscrire à un plan gratuit ArcGIS for Developers pour développer vos propres applications cartographiques 2D ou 3D ! Cet article résume ce que vous obtiendrez. Et pour en savoir sur l'API c'est ici.
Aucun commentaire:
Enregistrer un commentaire