Services WMS
La spécification WMS (Web Map Service) de l'OGC (Open Geospatial Consortium, Inc.) est une spécification internationale de diffusion et d'utilisation de cartes dynamiques sur le Web. Vous pouvez créer un service WMS à l'aide d'ArcGIS Server. Pour ce faire, vous devez activer la fonctionnalité WMS sur un service de carte ou d'imagerie.
Les services WMS s'avèrent utiles si vous souhaitez que vos cartes soient disponibles en ligne dans un format ouvert et reconnu sur divers clients et plates-formes. Les clients compatibles avec la spécification WMS peuvent afficher et utiliser votre service. Jusqu'à présent, quatre versions de la spécification WMS ont été publiées. Il s'agit des versions 1.0.0, 1.1.0, 1.1.1 et 1.3.0 (la plus récente).
Les applications clientes utilisent un service WMS en ajoutant des paramètres à l'URL du service. Les services WMS publiés avec ArcGIS Server permettent les opérations suivantes :
- requête de métadonnées à propos du service (GetCapabilities),
- requête d'une carte de type image (GetMap),
- requête d'informations relatives aux entités de la carte (GetFeatureInfo [facultatif]),
- requête de styles définis par l'utilisateur (GetStyles),
- requête de symboles de légende (GetLegendGraphic).
Un service WMS n'a pas obligatoirement à prendre en charge toutes ces opérations. Il doit toutefois prendre en charge au moins les opérations GetMap et GetCapabilities pour être un service WMS de base et prendre en charge l'opération facultative GetFeatureInfo pour être un service WMS interrogeable. Les opérations GetLegendGraphic et GetStyles s'appliquent uniquement dans un service WMS SLF (Styled Layer Descriptor).
Les cartes renvoyées par un service WMS sont des images uniquement (à l'exception de SVG). Elles ne contiennent pas de données réelles. Pour exposer vos données en tant qu'entités vectorielles par l'intermédiaire des spécifications OGC, publiez plutôt un service WFS. Pour exposer des données en tant que couches raster, publiez un service WCS. ArcGIS Server permet de publier des services WFS et WCS.
Pour en savoir plus sur les services WMS, reportez-vous au site Web de l'Open Geospatial Consortium. ESRI propose également une page Web relative à l'interopérabilité et aux normes, qui détaille sa prise en charge des services OGC dans ArcGIS.
Publication d'un service WMS dans ArcGIS Server
Il existe deux façons de publier un service WMS à l'aide d'ArcGIS Server :
- Publier un service de carte avec la fonctionnalité WMS activée. Pour publier un service de carte, vous devez tout d'abord créer une carte.
- Publier un service d'imagerie avec la fonctionnalité WMS activée. Pour publier un service d'imagerie, vous devez disposer d'un jeu de données raster, d'une mosaïque ou d'un fichier de couches qui référence un jeu de données raster ou une mosaïque.
Vous pouvez publier le service à l'aide du Gestionnaire ArcGIS Server ou d'ArcCatalog. Si vous avez besoin d'aide pour cette étape, reportez-vous à la rubrique A propos de la publication de ressources SIG sur le serveur.
Lorsque vous publiez votre service de carte ou d'imagerie, vous devez activer la fonctionnalité WMS en cochant la case dans la liste Fonctionnalités.
Remarques :
- Le nombre de couches de la carte affecte directement le temps requis pour la création du service WMS ou pour son redémarrage lorsqu'il a été arrêté. Supprimez ou consolidez quelques couches pour réduire le temps de démarrage.
- Si un cache de carte est disponible, il est mis à profit par les services WMS. Le cache de carte est utilisé uniquement lors de la requête de projection originale, d'ordre des couches et de visibilité des couches du service. Les tuiles mises en cache sont ré-échantillonnées en fonction de l'échelle demandée par le client, ce qui peut prendre un certain temps et réduire la qualité d'image. L'utilisation d'un cache s'avère particulièrement bénéfique si votre service WMS comporte de nombreuses couches ou une symbologie élaborée qui prendrait autrement beaucoup de temps à s'afficher dynamiquement. Si vous avez quelques couches uniquement et une symbologie simple, les performances seront sans doute meilleures sans cache.
- L'affichage d'un service WMS à partir d'un service de carte mis en cache sur demande crée des tuiles dans le cache si l'utilisateur parcourt des zones non mises en cache.
- Une fois le service WMS publié, vous pouvez lui attribuer d'autres propriétés dans l'onglet Fonctionnalités de la boîte de dialogue Propriétés du service.
Pour une présentation détaillée de la procédure de création d'un service WMS, reportez-vous à la rubrique Didacticiel : Publication d'un service WMS.
Configuration des propriétés du service WMS
Les propriétés d'un service WMS se répercutent dans ses fichiers de fonctionnalités, de sorte que quiconque utilise le service peut avoir une meilleure compréhension de l'éditeur du service. Lors de la publication d'un service WMS avec les fichiers de fonctionnalités générés par le système (paramètre par défaut), il est recommandé de définir les propriétés du service WMS, à l'exception du nom, du titre et des ressources en ligne. Le nom et le titre sont déjà renseignés à l'aide de WMS et du nom du service de carte ou d'imagerie, tandis que le champ Ressources en ligne contient déjà l'URL du service WMS. Dans la plupart des cas, vous n'avez pas à modifier ces trois propriétés.
Pour renseigner ou modifier les propriétés du service WMS, procédez comme suit :
- Arrêtez le service de carte ou d'imagerie parent.
- Ouvrez la boîte de dialogue Propriétés du service et cliquez sur l'onglet Fonctionnalités.
- Recherchez WMS dans la liste des fonctionnalités. Assurez-vous que la case est cochée et cliquez sur l'acronyme WMS (veillez à ne pas décocher la case). Des propriétés apparaissent.
- Sélectionnez l'option Saisir les propriétés du service ci-dessous. Cela signifie que votre service va utiliser un fichier de fonctionnalités généré par le système.
- Modifiez les propriétés du service selon vos besoins.
- Enregistrez et redémarrez le service de carte ou d'imagerie parent.
Un client WMS a besoin du champ Ressources en ligne pour communiquer correctement avec votre service WMS. Ce champ contient généralement une URL et il doit apparaître dans la section Accès Web de l'onglet Fonctionnalités.
Configuration du chemin d'accès SLD ou de l'URL
Les SLD vous permettent de publier plusieurs styles pour chaque couche WMS. Si vous liez un fichier SLD au service WMS actif, vous devez définir le chemin d'accès SLD ou l'URL sur l'URL, le chemin d'accès UNC ou l'emplacement physique d'un fichier XML SLD. Pour en savoir plus sur l'utilisation des SLD.
pour qu'ArcGIS Server puisse correctement lire le fichier XML SLD, le compte utilisateur du conteneur ArcGIS doit pouvoir accéder au chemin d'accès UNC et à l'emplacement physique.
Configuration du paramètre ListSupportedCRS
Le paramètre ListSupportedCRS peut s'utiliser pour ajouter des systèmes de référence spatiale supplémentaires (tels que EPSG:4267) aux services WMS. Par défaut, les services WMS répertorient uniquement deux systèmes de référence spatiale : EPSG:4326 (ou CSR:84 pour WMS 1.3.0) et la référence spatiale du service de carte sur lequel WMS est activé. A l'aide du paramètre ListSupportedCRS, vous pouvez annoncer un plus grand nombre d'options de reprojection aux clients WMS en spécifiant des références spatiales supplémentaires.
Le paramètre ListSupportedCRS n'est pas répertorié comme propriété de service lors de la configuration des services WMS dans ArcCatalog ou le gestionnaire ArcGIS Server. Pour ajouter le paramètre ListSupportedCRS à un service WMS, vous devez modifier le fichier de configuration (.cfg) du service de carte sur lequel vous avez activé WMS.
Modifier le fichier de configuration :
- Arrêtez le processus Gestionnaire des objets ArcGIS Server (SOM).
- Ouvrez le fichier de configuration (.cfg) du service de carte dans un éditeur de texte.
- Recherchez la section propre à WMS.
- Ajoutez le paramètre ListSupportedCRS dans l'élément <Properties> :
... <Extension> <TypeName>WMSServer</TypeName> <Enabled>true</Enabled> <Properties> <!-- other properties and metadata items --> <CustomGetCapabilities>false</CustomGetCapabilities> <ListSupportedCRS>EPSG:4267</ListSupportedCRS> </Properties> <Info> <WebEnabled>true</WebEnabled> <WebCapabilities></WebCapabilities> </Info> </Extension> ...
- Enregistrez vos modifications et fermez le fichier de configuration (.cfg) du service.
- Redémarrez le processus Gestionnaire des objets ArcGIS Server (SOM).
Pour répertorier plusieurs systèmes de référence spatiale dans le paramètre ListSupportedCRS, séparez les systèmes par une virgule (,). Par exemple :
<ListSupportedCRS>EPSG:4267,EPSG:4269,EPSG:102113</ListSupportedCRS>
Lorsque vous configurez le paramètre ListSupportedCRS, vous devez spécifier l'espace de noms EPSG (par ex. EPSG) et l'identifiant EPSG (par ex. 4267) en les séparant par le signe deux points (:). Sinon, la référence spatiale est ignorée par le serveur.
Caractères spéciaux dans les propriétés du service
Les propriétés du service ne peuvent pas comporter les caractères suivants : &, <, >, ", '. S'il vous faut utiliser l'un de ces caractères, vous devez le remplacer par la séquence d'échappement appropriée, comme indiqué dans le tableau ci-dessous :
& |
& |
< |
< |
> |
> |
" |
" |
' |
' |
Représentation des noms de couche
Lorsque vous modifiez les propriétés du service, vous pouvez cocher une case afin d'Utiliser les noms de couche du document ArcMap. Ce faisant, les noms de couche sont représentés avec les mêmes chaînes que celles utilisées dans la table des matières de la carte. Cette option décochée par défaut signifie que les couches sont représentées par des nombres entiers basés sur zéro, ce qui indique leur position dans la table des matières (du haut vers le bas).
Pour êtes utilisés, tous les noms de couche de la carte doivent être uniques. Ils ne doivent en outre pas contenir les caractères &, <, >, " ou '.
Sécurisation des services de l'WMS
La sécurité d'un service WMS ArcGIS Server est gérée par le contrôle de la sécurité du service de carte ou d'imagerie parent. Si un rôle particulier (planificateurs, par exemple) n'a pas accès à une carte, les planificateurs ne sont pas en mesure d'accéder à la carte, qu'ils utilisent une interface SOAP, REST (representational state transfer) ou OGC (WMS, par exemple). ArcGIS Server prend en charge divers schémas d'authentification, notamment l'authentification HTTP (de base et Digest), l'authentification Windows intégrée et l'authentification à base de jetons gérée par ArcGIS Server.
Authentification HTTP et authentification Windows intégrée
Les services pour lesquels l'accès est censé faire appel aux interfaces de l'WMS doivent être sécurisés à l'aide de HTTP de base, HTTP Digest ou l'authentification Windows intégrée. La plupart des clients de l'WMS (clients ESRI et autres qu'ESRI) comprendront et utiliseront ces schémas d'authentification standard répandus.
Authentification à base de jetons gérée par ArcGIS Server
Bien que ce ne soit pas recommandé, un service WMS peut être sécurisé à l'aide d'une authentification à base de jetons gérée par ArcGIS Server, en appliquant ce type d'authentification à son service de carte ou d'imagerie parent. Pour envoyer des requêtes brutes aux services WMS protégés par un jeton, vous pouvez obtenir un jeton valide auprès du service de jetons et ajouter la chaîne de jetons en tant que paramètre supplémentaire aux requêtes que vous envoyez. En d'autres termes, les requêtes envoyées à un service WMS sécurisé par jetons doivent avoir le format suivant : http://<url_service_WMS>?<paramètres WMS standard>&token=<tokenString_valide>. La plupart des clients WMS bureautiques tiers ne sont pas en mesure de se connecter aux services WMS sécurisés de cette façon. Cette technique peut toutefois être utilisée avec les clients WMS créés à l'aide des API ArcGIS pour JavaScript, Flex et Silverlight.
Utilisation des services de l'WMS
Pour établir une connexion à un service WMS, vous devez connaître son URL. L'URL des services WMS publiés avec ArcGIS Server suit ce format :
http://<Web server machine name>/<ArcGIS Server instance name>/services/<folder name (if applicable)>/<service name>/<service type (can be MapServer or ImageServer)>/WMSServer?
N'oubliez pas que la fonctionnalité WMS est disponible pour les services de carte et d'imagerie. Ce type de service présente par conséquent deux options.
Par exemple, si le service de carte Tokyo est stocké dans un dossier intitulé Japon qui s'exécute sur un ordinateur nommé myServer avec le nom d'instance par défaut "arcgis", l'URL du service WMS ressemblera à ceci :
http://myServer/arcgis/services/Japan/Tokyo/MapServer/WMSServer?
Si vous disposez d'un service d'imagerie IdahoImages qui s'exécute sur myServer avec le nom d'instance PublicLands, l'URL du service WMS ressemblera à ceci :
http://myServer/PublicLands/services/IdahoImages/ImageServer/WMSServer?
Clients WMS courants
Un navigateur Web constitue le client le plus simple d'un service WMS. Les demandes WMS peuvent être émises via HTTP ; les réponses ou exceptions sont renvoyées via le navigateur. Les services WMS prennent en charge diverses opérations : GetCapabilities, GetMap, GetFeatureInfo, GetStyles et GetLegendGraphic. Un client peut utiliser ces opérations par l'intermédiaire des paramètres URL afin d'obtenir des métadonnées, des cartes, des informations sur les entités, des symbologies et des symboles de légende auprès du service WMS. Ces opérations et paramètres sont décrits en détail dans les spécifications WMS de l'OGC.
Les clients WMS Esri sont : ArcGIS Desktop (ArcCatalog et ArcMap), ArcGIS Explorer, ArcGIS Server Web Application Developer Framework (ADF) pour .NET, ArcGIS Server Web ADF pour Java et Esri ArcGIS Server Geoportal Map Viewer.
Affichage des informations de légende pour un service WMS
Les services WMS peuvent être configurés de façon à renvoyer des informations sur la symbologie des couches dans le service. Les clients peuvent utiliser ces informations pour créer une légende. Par défaut, les services WMS que vous publiez avec ArcGIS Server renvoient des informations de légende. Vous pouvez modifier ce paramètre dans les fichiers de fonctionnalités du service WMS.
ArcMap et l'application cartographique Web que vous créez avec le Gestionnaire peuvent afficher les informations de légende pour les couches WMS.
- Dans ArcMap, cliquez avec le bouton droit de la souris sur la couche dans la table des matières, puis sélectionnez Ajouter la légende WMS à la carte. Les informations de légende apparaissent sur la carte.
- Dans l'application cartographique Web, vous pouvez afficher les gabarits de légende des couches individuelles en développant les couches dans la table des matières.