Skip to content

Ajouter des services par URL

Objectif

Cette recette explique comment construire un lien profond qui ouvre Geoviewer 5.x avec un ou plusieurs services déjà présents dans la carte.

Le mécanisme utilisé est le widget UrlQuery. Il lit le fragment d’URL au chargement du viewer et traite les ancres #ADD.

Pré-requis

Le viewer doit contenir le widget UrlQuery. Sa configuration par défaut active déjà l’ancre ADD.

{
"widgetId": "url-query",
"widgetClass": "UrlQuery",
"active": true,
"config": {}
}

Si vous surchargez explicitement config.anchors, conservez une entrée ADD, sinon les paramètres #ADD seront ignorés.

{
"widgetId": "url-query",
"widgetClass": "UrlQuery",
"active": true,
"config": {
"anchors": [{ "type": "ADD" }]
}
}

Ajouter un service depuis une métadonnée

Utilisez METADATAID quand le service est référencé dans Metawal / le catalogue.

https://example.be/ma-carte#ADD|METADATAID=385d8e9c-2c01-41c7-a38c-911f746c8877

Le viewer récupère la fiche par UUID, déduit l’URL et le type de service, puis ajoute la couche à la carte.

Vous pouvez aussi forcer quelques propriétés d’affichage:

https://example.be/ma-carte#ADD|METADATAID=385d8e9c-2c01-41c7-a38c-911f746c8877|LABEL=Parcelles|VISIBLE=true|OPACITY=0.7

Ajouter un service depuis son URL

Utilisez URL quand vous connaissez directement l’endpoint du service.

https://example.be/ma-carte#ADD|URL=https%3A%2F%2Fgeoservices.wallonie.be%2Farcgis%2Frest%2Fservices%2FEXEMPLE%2FMapServer|TYPE=ARCGIS_DYNAMIC|LABEL=Service%20externe

TYPE est optionnel. Si vous ne le fournissez pas, Geoviewer utilise ARCGIS_DYNAMIC.

Valeurs possibles pour TYPE:

TypeUsage courant
ARCGIS_DYNAMICService ArcGIS MapServer dynamique
ARCGIS_TILEDService ArcGIS tuilé
ARCGIS_FEATURE_SERVICEArcGIS FeatureServer complet
ARCGIS_FEATURE_LAYERCouche FeatureServer ciblée
WMSService WMS
WMTSService WMTS
OSMFond OpenStreetMap
GOOGLEFond Google
TIME_TRAVELService temporel

Ajouter plusieurs services

Répétez l’ancre #ADD dans le fragment d’URL.

https://example.be/ma-carte#ADD|METADATAID=385d8e9c-2c01-41c7-a38c-911f746c8877#ADD|URL=https%3A%2F%2Fgeoservices.wallonie.be%2Farcgis%2Frest%2Fservices%2FEXEMPLE%2FMapServer|TYPE=ARCGIS_DYNAMIC|LABEL=Service%20externe

Chaque bloc #ADD|... décrit un service indépendant.

Paramètres supportés

ParamètreObligatoireDescription
METADATAIDoui, si pas d’URLUUID de la métadonnée à charger depuis le catalogue.
URLoui, si pas de METADATAIDURL directe du service à ajouter.
TYPEnonType du service. Par défaut: ARCGIS_DYNAMIC.
LABELnonLibellé affiché dans la table des matières.
DESCRIPTIONnonDescription associée au service.
VISIBLEnontrue ou false. Par défaut: true.
OPACITYnonNombre entre 0 et 1. Par défaut: 1.

Ne mélangez pas URL et METADATAID dans le même bloc #ADD. Choisissez l’un ou l’autre.

Encodage des valeurs

Les valeurs sont séparées par | et =, donc encodez les valeurs qui contiennent des caractères spéciaux.

const serviceUrl = encodeURIComponent('https://geoservices.wallonie.be/arcgis/rest/services/EXEMPLE/MapServer');
const label = encodeURIComponent('Service externe');
const url = `https://example.be/ma-carte#ADD|URL=${serviceUrl}|TYPE=ARCGIS_DYNAMIC|LABEL=${label}`;

À encoder en priorité: les URLs, les labels avec espaces, les descriptions, et toute valeur contenant |, =, #, ? ou &.

Dépannage

SymptômeVérification rapide
Le service n’est pas ajoutéVérifiez que le widget UrlQuery est présent et actif dans la configuration du viewer.
#ADD ne réagit pasSi config.anchors est surchargé, vérifiez qu’il contient { "type": "ADD" }.
Un service par URL ne se charge pasVérifiez TYPE, l’encodage de URL, le CORS et l’accessibilité réseau de l’endpoint.
Une métadonnée ne se charge pasVérifiez que METADATAID correspond à une fiche catalogue exposant une URL et un type service.

Aller plus loin