|
Configuration du serveur WMSIntroductionDans ce chapitre, nous allons apprendre comment mettre en place un serveur WMS (Web Map Service) qui nous permettra d’héberger des images et d’offrir un service de cartes via Internet utilisant le protocole HTTP. Les images elles-mêmes sont créées par un serveur qui lit les données vectorielles SIG, qui peuvent être dans une base de données, dans des fichiers shapefile (.shp) ou d’autres formats de données géographiques. Les serveurs WMS sont efficaces pour transmettre les cartes au format raster sur Internet. Les services WMS peuvent être utilisés comme couches raster (image) dans QGIS, ArcGIS et JOSM ou encore dans des API telles que Openlayers et Leaflet pour l’affichage de cartes sur internet. D’un point de vue pratique, nous allons apprendre à installer et configurer MapServer (http://www.mapserver.org/), une plate-forme open-source pour la publication de données géographiques au format raster, et l’utiliser comme notre propre serveur WMS. Nous nous appuierons sur le tutoriel précédent dans lequel nous avons créé une base de données PostGIS et y avons chargé des données OpenStreetMap. Dans l’annexe de ce chapitre, nous allons aussi passer en revue les étapes nécessaires pour mettre en place MapServer avec les données OpenStreetMap sur Ubuntu. Ce chapitre comprend les sections suivantes :
Pour information, l’adresse http://localhost est celle du serveur Web installé localement sur votre ordinateur. Avec cette adresse, vous accédez à partir d’Apache à une page Web sur votre serveur Web local.
MapServer utilise un fichier Mapfile pour servir les fichiers images. Le fichier Mapfile contient de nombreuses informations liées à votre carte, notamment les données à afficher, les styles disponibles, ou les informations sur la projection. L’écriture d’un fichier Mapfile peut être un peu compliquée, mais bien heureusement il existe une extension de QGIS qui permet de créer automatiquement un tel fichier.
http://localhost/cgi-bin/mapserv.exe?MAP=C:\test.map&LAYERS=ALL&MODE=MAP
NOTE : Vous pouvez également obtenir une erreur de type “loadStyle():General error message. Invalid WIDTH…” Dans ce cas, vous devrez peut-être changer la largeur de la ligne dans le mapfile de 0.91 à 1 ou plus.
Il est possible de faire de nombreux ajustements au style de votre carte en modifiant le fichier Mapfile. La meilleure façon de changer l’épaisseur et la couleur des lignes pourrait être de les changer dans QGIS puis recréer le fichier Mapfile, mais il est également facile de faire des ajustements dans le fichier directement. Si vous ouvrez votre fichier Mapfile dans le Bloc-notes, vous remarquerez qu’il y a beaucoup d’informations en haut. Vous reconnaîtrez sans doute quelques-unes d’entre elles, dont la ligne “SIZE 700 700”. Rappelons que vous avez dit plutôt à l’extension de QGIS de rendre l’image à la dimension 700 sur 700 pixels. Nous ne discuterons pas plus en détail du fichier mapfile. Il contient quatre sections qui débutent par le mot “LAYER” et finissent par “END”. Chacune de ces sections décrit tout ce que Mapserver a besoin de savoir à propos de chacune des couches qui composent notre carte. La couche des routes ressemble à ceci : Remarquons le bloc de fin qui commence par “STYLE”. Ici vous pouvez changer l’épaisseur des lignes dans cette couche, et la couleur des lignes. On notera que les trois chiffres de l’attribut couleur représentent successivement les valeurs de rouge, vert et bleu. Chaque nombre peut aller jusqu’à 255. Par exemple, 0 0 255 serait complètement bleu, tandis que 255 0 255 serait pourpre (mélange de rouge et de bleu). En outre, remarquez que notre couche de points n’est pas affichée comme nous le souhaitions car nous avons supprimé les symboles dans notre fichier Mapfile. Afin d’afficher l’icône de notre couche de points, nous devons définir les fichiers image que nous voulons utiliser. Pour ce faire, créons un bloc dans notre fichier Mapfile au-dessus des sections LAYER. Le bloc ressemblera à ceci: circle.png Ceci définit une icône avec le nom de “circle” liée à l’image circle.png. L’icône doit être stockée dans le même dossier que l’image. Ensuite, nous pouvons utiliser cette définition dans notre couche de points et les points seront rendus avec l’icône. Enlevons les commentaires sur la ligne “SYMBOLE” puis actualisons la page dans le navigateur. Rendu de la carte avec l’icône des points
Nous allons maintenant tester si notre serveur WMS est bien configuré. Comme nous l’avons déjà vu, le WMS fonctionne sur le protocole HTTP. Nous pouvons ainsi utiliser un lien dans notre navigateur Web pour tester les capacités de notre serveur. Cette requête GetCapabilities permet de connaître un service WMS particulier.
http://localhost/cgi-bin/mapserv.exe?map=C:/test.map
Nous pouvons aussi ajouter facilement nos cartes WMS en tant que couches dans JOSM.
RésuméUn WMS est un protocole couramment utilisé pour offrir un service de cartes image à travers internet. Un utilisateur effectue une requête pour obtenir une carte image avec certains paramètres, tels que la largeur et la hauteur, et MapServer fournit cette image. Dans ce chapitre, nous avons appris comment mettre en place MapServer et le configurer en tant que serveur WMS en utilisant pour cela des données importées de PostGIS pour créer des cartes images. Vous pouvez obtenir plus d’informations sur l’architecture WMS à mcette adresse: http://docs.geoserver.org/latest/en/user/services/wms/reference.html. Dans les chapitres suivants, nous allons examiner d’autres façons de transmettre des cartes à travers internet. Si vous êtes intéressé par des instructions pour la mise en place de MapServer sur Ubuntu, voir l’annexe qui suit. Annexe - Installation de MapServer sur UbuntuDans cette annexe, nous allons passer en revue les étapes d’installation pour la mise en place de MapServer sur Ubuntu. Ces étapes font suite à l’annexe dans le premier chapitre, et nous supposons que vous avez déjà installé PostGIS et importé les données OpenStreetMap en utilisant osm2pgsql. 1. Installer Mapserver et Apache / Install MapServer and ApachePour installer MapServer sur Ubuntu 11.04 (Natty Narwhal), exécutez les commandes suivantes: **sudo apt-get -y install apache2 sudo apt-get -y install python-software-properties sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable sudo apt-get update sudo apt-get -y install cgi-mapserver mapserver-bin Pour installer MapServer sur Ubuntu> = 11.10: sudo apt-get -y install apache2 sudo apt-get -y install cgi-mapserver mapserver-bin** Si vous visitez http://localhost/cgi-bin/mapserv, le serveur devrait vous répondre “No query information to decode. QUERY_STRING is set, but empty”. Notez que si vous accédez à partir d’un autre ordinateur (si vous configurez sur un serveur distant), remplacez localhost par l’adresse IP du serveur. 2. Créer un fichier MapfileL’installation de MapServer est terminée, maintenant tout ce dont nous avons besoin est un fichier Mapfile qui contient les informations correctes sur nos couches. Comme nous configurons MapServer à partir d’un serveur Ubuntu, nous ne pouvons pas ici utiliser QGIS pour créer le fichier Mapfile comme nous l’avons fait sur Windows. Voici ci-dessous un fichier Mapfile qui fonctionnera avec la configuration que nous avons créée. Notez que nous avons seulement inclus des informations pour une couche, mais vous pouvez facilement ajouter des couches supplémentaires en utilisant la même structuration. /var/www/test.map MAP NAME “My-Test-Map” # Map image size SIZE 700 700 UNITS meters EXTENT 3756680.934870 3642952.056250 3899342.315130 3723789.193750 PROJECTION ‘proj=longlat’ ‘datum=WGS84’ ‘no_defs’ END # Background color for the map canvas – change as desired IMAGECOLOR 255 255 255 IMAGEQUALITY 95 IMAGETYPE png OUTPUTFORMAT NAME png DRIVER ‘GD/PNG’ MIMETYPE ‘image/png’ IMAGEMODE RGBA EXTENSION ‘png’ END WEB IMAGEPATH ‘/tmp/’ IMAGEURL ‘/tmp/’ # WMS server settings METADATA ‘ows_title’ ‘My-Test-Map’ ‘ows_onlineresource’ ‘http://198.61.205.151/cgi-bin/mapserv?MAP=/var/www/test.map’ ‘ows_srs’ ‘EPSG:4326’ END TEMPLATE ‘fooOnlyForWMSGetFeatureInfo’ END LAYER NAME ‘planet_osm_line’ TYPE LINE DUMP true TEMPLATE fooOnlyForWMSGetFeatureInfo UNITS METERS EXTENT 3756680.934870 3642952.056250 3899342.315130 3723789.193750 CONNECTIONTYPE postgis CONNECTION “dbname=’osm’ user=’postgres’ sslmode=disable” DATA ‘way FROM “planet_osm_line” USING UNIQUE osm_id USING srid=900913’ METADATA ‘ows_title’ ‘planet_osm_line’ END STATUS OFF TRANSPARENCY 100 PROJECTION ‘proj=longlat’ ‘datum=WGS84’ ‘no_defs’ END CLASS NAME ‘planet_osm_line’ STYLE WIDTH 0.91 COLOR 46 195 130 END END END END Notez que vous devrez vous assurer de modifier les lignes “EXTENT” en fonction de l’emplacement de vos données. Les extensions ont des unités en mètres, parce que nos données sont projetées en Mercator. Vous allez maintenant être en mesure d’accéder à votre WMS dans QGIS et JOSM. Voir les parties 6 et 7 de ce chapitre pour plus d’informations. Votre adresse WMS sera : http://<YOUR_SERVER_IP>/cgi-bin/mapserv?MAP=/var/www/test.map
Cette page était-elle utile ?
Faîtes-nous savoir comment améliorer ces guides !
|