WMS [1] - GeoTribu

Transcription

WMS [1] - GeoTribu
Published on GeoTribu (http://geotribu.net)
Accueil > WMS
06 nov 2008
WMS
[1]
Arnaud [2]
Introduction
Le protocole Web Map Service (WMS) [3] développé par l'Open Geospatial Consortium [4]
(OGC) s'impose aujourd'hui comme une référence dans le monde du WebMapping. Il permet
à partir d'une simple requête normalisée vers un serveur cartographique de retourner l'image
demandée.
Un peu d'histoire
C'est en Avril 2000 que la première version (1.0) voit le jour, de suite suivi quelques mois plus
tard par la 1.1. Puis en janvier 2002 c'est au tour de la 1.1.1, qui est la version la plus
largement supportée par les moteurs cartographiques. il faut souligner néanmoins que
depuis Décembre 20004 une nouvelle version (1.3) est disponible.
Comment fonctionne le protocole WMS ?
Comme nous l'avons abordé rapidement en introduction, le protocole WMS permet au moyen
d'une simple requête d'interroger n'importe quel serveur ayant intégré cette norme. Cette
requête est assez simple et pourrait se traduire par :
> Quel est le service que l'on souhaite utiliser? Quelle est sa version? Quelle est la requête ?
Ce qui se traduit informatiquement par :
http ://hostname:port/path?
service=WMS&
version=1.1.1&
request=GetCapabilities
Image not found
http://geotribu.net/sites/default/files/Tuto/img/cours/wms.png
wms.png
Il est important de comprendre que dans une requête WMS (comme d'ailleurs dans les autres
protocoles) il y a deux acteurs : Le serveur cartographique et le client cartographique.
Côté serveur et en fonction du choix du moteur cartographique utilisé (MapServer,
ArcGisServer, GeoServer...) la configuration de ce service sera plus ou moins aisée.
Nous verrons par la suite qu'il existe différents types de requêtes et qu'en fonction de celle-ci
un certain nombre d'arguments doivent être ajoutés.
Quelles sont les requêtes possibles ?
Les trois types de requêtes qu'il est possible d'utiliser sont :
GetCapabilities : Retourne une description du serveur, des services et des couches
disponibles
GetMap : Retourne une carte sous forme d'image
GetFeatureInfo : Retourne les informations de l'objet interrogé
Même si le type de requête ci-dessous n'est pas directement rattaché au protocole WMS
(mais au SLD), il me parait important que vous en connaissiez l'existence :
GetLegendGraphic : Retourne la légende associée
Nous allons maintenant étudier en détail chacun des trois types de requête disponibles.
GetCapabilities
Une requête de type GetCapabilities indique au serveur cartographique de renvoyer au client
un fichier XML contenant un ensemble d'information relatif à ce service. Prenons un
exemple concret et interrogeons le serveur de geosignal [5] :
http://www.geosignal.org/cgibin/wmsmap?version=1.1.1&service=WMS&request=GetCapabilities
Dans ce fichier XML on retrouve notamment :
ContactInformation : Description générale de l'organisme/personne qui fournit le service
WMS (Adresse, Nom, Pays...)
Capability : C'est la partie la plus importante. Celle-ci spécifie les capacités du serveur
cartographique. On y trouve le type de requête acceptée (GetMap, GetFeatureInfo), le
format de données en fonction du type de requête, les couches disponibles :
request : Liste les requêtes qu'il est possible de réaliser :
<Request>
<GetCapabilities>...</GetCapabilities>
<GetMap>...</GetMap>
<GetFeatureInfo>...</GetFeatureInfo>
<DescribeLayer>...</DescribeLayer>
<GetLegendGraphic>...</GetLegendGraphic>
</Request>
Layer : Chacune des couches disponibles sera décrite à l'intérieur d'un bloc de
type ce type. Les informations que l'on retrouve sont notamment : Nom, SRS
(EPSG), Extension géographique, Style... Six paramètres peuvent également être
ajoutés directement dans la balise layer:
queryable : La couche est ou non interrogeable (seulement si le serveur
supporte les requêtes de type GetFeatureInfo)
cascaded : Dans le cas d'ajout de couche provenant d'un serveur WMS tiers.
opaque : Spécifie que les zones vides d'une couche doivent être
transparentes. Il faut néanmoins préciser que cet attribut n'est qu'indicatif. En
effet, pour que ce paramètre soit effectif, il faudra préciser au serveur
cartographique de générer une image prenant en compte la transparence et
définir un format capable de gérer celle-ci.
noSubsets : Précise si le serveur cartographique est capable d'envoyer une
image contenant une zone plus petite que celle définie par l'extension initiale
fixedWidth et FixedHeight : Précise si le serveur cartographique est capable
de changer la taille, l'interpolation, la résolution de l'image par rapport à sa
résolution initiale
GetMap
Une requête de type GetMap spécifie au serveur cartographique de renvoyer au client
une image. Cette requête respecte une syntaxe précise contenant un certain nombre
de mots clés. Regardons en détail l'exemple ci-dessous :
http://www.geosignal.org/cgibin/wmsmap?version=1.1.1&service=WMS&request=GetFeatureInfo
&X=200&Y=200&QUERY_LAYERS=Communes&LAYERS=Communes
Retourne :
Layer 'Communes'
Feature 23413:
NOM = 'Azay-sur-Cher'
CODE_GS = '305971778'
CODE_INSEE = '37015'
CODE_CANTO = '3'
CODE_ARRON = '2'
CODE_DEPAR = '37'
CODE_REGIO = '24'
NOM_CANTON = 'Bléré'
NOM_ARROND = 'Tours'
NOM_DEPART = 'Indre-et-Loire'
NOM_REGION = 'Centre'
Regardons maintenant en détail comment est construite la requête :
Au début rien ne change nous retrouvons les informations habituelles (service, version,
requête). Mais certains paramètres additionnels ont été ajoutés :
X : Coordonnées en pixels de la donnée à interroger
Y : Coordonnées en pixels de la donnée à interroger
QUERY_LAYERS :Liste des couches à interroger
Conclusion
La pérennité de tous mouvements vient du fait qu'à un moment donné un langage
commun permettant de s'affranchir de toutes les particularités liées à un éditeur voit le
jour.
Au travers des exemples et explications présentés tout au long de cette page il est facile
de voir les possibilités de ce protocole. Il permet en effet d'uniformiser et d'unifier les
différents acteurs (propriétaires comme libres) en fournissant une norme adaptée et
simple à utiliser.
Team GeoTribu
Image not found
Image not found
Image not found
Image not found
Image not found
Image not found
Image not fou
http://88.191.142.86/geotribu_d7/./sites/default/public/public_res//img/fabtest.png
http://88.191.142.86/geotribu_d7/./sites/default/public/public_res//img/fabtest.png
http://88.191.142.86/geotribu_d7/./sites/default/public/public_res//img/fabtest.png
http://88.191.142.86/geotribu_d7/./sites/default/public/public_res//img/fabtest.pn
http://88.191.142.86/geotribu_d7/./sites/default/public/pub
http://88.191.142.86/geotribu_d7/./si
http://88.191.1
Source URL: http://geotribu.net/node/59
Links:
[1] http://geotribu.net/node/59
[2] http://geotribu.net/user/1
[3] http://www.opengeospatial.org/standards/wms
[4] http://www.opengeospatial.org/
[5] http://www.geosignal.fr/

Documents pareils