Ce plugin facilite la création d’applications cartographiques interactives en
intégrant MapLibre GL JS aux services ArcGIS.
Si vous utilisez ArcGIS Location Platform, il ouvre également de nouvelles possibilités pour la façon dont vos applications consomment les fonds de carte.
Si vous utilisez ArcGIS Location Platform, il ouvre également de nouvelles possibilités pour la façon dont vos applications consomment les fonds de carte.
Le plugin est vient avec de nombreuses
ressources : un
guide du développeur, des
tutoriels
et la documentation de référence API.
Obtenir le plugin
Vous pouvez ajouter le plugin directement à vos projets MapLibre GL JS en
installant le
package NPM
ou en référençant la bibliothèque depuis le CDN.
NPM
npm install @esri/maplibre-arcgis
CDN
<script src="https://unpkg.com/@esri/maplibre-arcgis@1.0.0/dist/umd/maplibre-arcgis.min.js"></script>
Afficher des styles de fonds de carte
Le plugin prend en charge l’utilisation de tokens pour afficher les styles
provenant du service
ArcGIS Basemap Styles. C’est ce qu’on appelle le
modèle d’utilisation “basemap tiles”
(tuiles de fonds de carte). Avec
ArcGIS Location Platform, la consommation est comptabilisée selon le nombre de tuiles consommées.
Pour afficher un fond de carte avec ce modèle, utilisez la classe
BasemapStyle
avec un token. Cette classe permet d’accéder à l’ensemble des styles de fond
de carte ArcGIS et Open. Vous pouvez aussi changer facilement de style ou
mettre à jour ces préférences après le chargement de la carte.
const map = new maplibregl.Map({
container: "map", // the id of the div element
center: [-122.402, 37.789], // San Francisco, CA
zoom: 11, // starting zoom
});
const basemapStyle = maplibreArcGIS.BasemapStyle.applyStyle(map, {
style: 'arcgis/streets',
token: accessToken
});
Retrouvez le tutoriel ici.
Gérer les sessions de fonds de carte
Si vous utilisez ArcGIS Location Platform, le plugin prend aussi en charge le modèle d’utilisation “basemap sessions” (sessions de fond de carte).Ce modèle permet à votre application d’accéder à un nombre illimité de tuiles pendant une session pouvant durer jusqu'à 12 heures, facturée comme une seule utilisation.
Pour créer des applications avec ce modèle, utilisez les classes
BasemapSession
et
BasemapStyle.
Elles facilitent la création et la gestion des sessions, le rafraîchissement automatique du token, et la mise à jour des tuiles selon les besoins.
Elles facilitent la création et la gestion des sessions, le rafraîchissement automatique du token, et la mise à jour des tuiles selon les besoins.

const map = new maplibregl.Map({
container: "map",
zoom: 11,
center: [-3.189, 55.953] // Edinburgh
});
const basemapSession = await maplibreArcGIS.BasemapSession.start({
token: accessToken,
styleFamily: 'arcgis',
duration: 43200, // 12 hours in seconds
autoRefresh: false
});
basemapSession.on("BasemapSessionExpired", () => {
basemapSession.refresh()
});
const basemapStyle = maplibreArcGIS.BasemapStyle.applyStyle(map, {
style: 'arcgis/community',
session: basemapSession
});
Retrouvez le tutoriel ici.
Accéder et afficher des couches hébergées
Le plugin permet également d’accéder à des couches hébergées dans votre portail ArcGIS à partir de l'URL du service ou de l'ID de l'item. Une fois les couches ajoutées à votre carte, vous pouvez enrichir votre application avec des interactions comme des fenêtres contextuelles affichant les attributs des entités.Feature layers
Pour afficher des couches d’entités hébergées, utilisez la classe
FeatureLayer. Elle permet d’afficher toutes les entités ou d’en récupérer un
sous-ensemble via des requêtes SQL ou spatiales. Elle gère les styles
prédéfinis et expose les données en tant que sources GeoJSON. Vous pouvez
aussi personnaliser le rendu des entités directement dans votre application.
map.once("load", async () => {
// Get GeoJSON features from a feature service where `POPULATION > 250000`
const featureLayer = await maplibreArcGIS.FeatureLayer.fromUrl(
"https://services3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/USA_Major_Cities/FeatureServer/0",
{
query: {
where: 'POPULATION>250000'
},
token: accessToken
}
);
map.addSource(featureLayer.sourceId, {
...featureLayer.source,
cluster: true,
clusterRadius: 20, // cluster two trailheads if less than 20 pixels apart
clusterMaxZoom: 14, // display all trailheads individually from zoom 14 up
});
map.addLayer({
...featureLayer.layer,
id: "city-clusters",
type: "circle",
paint: {
"circle-color": "hsla(0,0%,0%,0.75)",
"circle-stroke-width": 1.5,
"circle-stroke-color": "white",
"circle-radius": ["case", ["get", "cluster"], 10, 5] // 10 pixels for clusters, 5 pixels otherwise
}
});
});
Retrouvez le tutoriel ici.
Vector tile layers
Pour afficher des couches de tuiles vectorielles hébergées, utilisez la classe
VectorTileLayer. Elle charge et applique automatiquement les styles enregistrés avec
l’élément.
Vous pouvez styliser vos tuiles vectorielles avec des outils interactifs comme par exemple l'ArcGIS Vector Tile Style Editor, puis les enregistrer dans le portail et les réutiliser dans votre application sans écrire de code côté client.
Vous pouvez styliser vos tuiles vectorielles avec des outils interactifs comme par exemple l'ArcGIS Vector Tile Style Editor, puis les enregistrer dans le portail et les réutiliser dans votre application sans écrire de code côté client.
const basemapStyle = maplibreArcGIS.BasemapStyle.applyStyle(map, {
style: 'arcgis/light-gray',
token: accessToken
});
map.on('load', async () => {
const vectorLayer = await maplibreArcGIS.VectorTileLayer.fromPortalItem(
'31eb749371c441e0b3ac5db4f60ecba9',
{ token: accessToken }
);
vectorLayer.addSourcesAndLayersTo(map);
});
Retrouvez le tutoriel ici.
Pour aller plus loin
Découvrez les différents types d’applications que vous pouvez créer avec le
plugin dans les tutoriels et guides pratiques du
guide du développeur MapLibre GL JS et ArcGIS.
Si vous avez des questions, souhaitez proposer des améliorations ou contribuer
au code, rendez-vous sur le
repo GitHub
du plugin.
Et pour commencer à créer vos propres applications avec le plugin et ArcGIS
Location Services, vous pouvez créer facilement un compte sur
ArcGIS Location Platform.
Aucun commentaire:
Enregistrer un commentaire