Introduction
Nous avions vu lors d'un précédent tutoriel comment accélérer et personnaliser vos services WMS avec MapProxy.
Cette librairie python, similaire à TileCache, permet de se connecter à des serveurs WMS externes ou internes afin de les personnaliser ou de mettre en cache les images afin d'en accélérer le téléchargement.
Les fichiers de configuration de MapProxy
MapProxy dispose de 4 fichiers de configuration :
- services.yaml : ce fichier spécifie les services, les couches qui seront disponibles ainsi que les informations générales relatives au service WMS (informations, métadonnées...).
- proxy.yaml : c'est le fichier de configuration principal. Il spécifie quel serveur doit être démarré, l'endroit où les données seront stockées...
- seed.yaml : c'est le fichier de configuration de l'outil proxy_seed tool (génération automatique des images)
- log.ini : fichier de configuration des connexions
- develop.ini et config.ini : ces deux fichiers sont utilisés par l'outil "paster" au démarrage du serveur. Ils permettent de démarrer MapProxy en mode développement ou en mode production
Côté cartographie l'essentielle de la configuration se fait via le fichier service.yaml. Nous nous attarderons donc sur celui-ci.
service.yaml
Comme son extension l'indique, ce fichier est au format yaml. Yaml utilise, tout comme python, l'indentation avec un ou plusieurs espaces afin de décrire les collections imbriquées. Mais attention si en Python il est préférable d'utiliser des tabulations pour l'indentation, pour yaml il est obligatoire d'utiliser des espaces. Mon éditeur de texte étant configuré avec des tabulations, cela m'a pris un peu de temps avant de comprendre pourquoi mon shell me renvoyait systématiquement un message d'erreur. Ne vous faites pas avoir ;)
En yaml les tableaux sont de la forme clé:valeur. MapProxy définit deux sortes de clés : service et layers. Regardons ce qu'elles contiennent.
service
Cette partie décrit les informations générales relatives à notre service.
service:
attribution:
text: "© MyCompany"
md:
title: MapProxy WMS Proxy
abstract: This is the fantastic MapProxy.
online_resource: http://mapproxy.org/
contact:
person: Your Name Here
position: Technical Director
organization:
address: Fakestreet 123
city: Somewhere
postcode: 12345
country: Germany
phone: +49(0)000-000000-0
fax: +49(0)000-000000-0
email: you@example.org
access_constraints: This service is intended for private and evaluation use only.
fees: 'None'attribution permet d'ajouter un copyright à vos images.
md pour metadata, définie les informations générales du service. Ce sont ces informations qui seront retournées lors du requête WMS d'une type GetCapabilities.
layers
Toutes les couches définies ici seront ensuite disponibles via MapProxy. La clé de chaque couche qui est aussi son nom sera ensuite utilisée lors des requêtes WMS.
Les clés à préciser étant relativement nombreuses, je ne m'attarderais pas sur celles-ci. Je vous conseille la lecture de la documentation pour plus de détails.
Création de notre propre couche
Pour le moment faisons simple. Nous n'allons pas utiliser notre propre serveur cartographique, mais un de ceux de GeoSignal. Voici les informations nécessaires à sa configuration :
# #########################
# # Layer from GeoSignal
# #########################
geosignal:
md:
title: GeoSignal
param:
# cache tiles in format:
# format: image/png
# cache projected and geographical SRS
srs: ['EPSG:4326']
# store another level between each regular level
res: 'sqrt2'
# request all data in this format:
# request_format: image/png
# use a tile size of:
tile_size: [256, 256]
sources:
- type: cache_wms
req:
url: http://www.geosignal.org/cgi-bin/wmsmap?
layers: Communes
# styles:
# transparent: False
attribution:
text: GeoSignal DataEn consultant ensuite cette url localhost:8080 vous devriez voir apparaitre cette image.

