Extension d’exportation Mapserver

Vous pouvez utiliser QGIs pour composer votre carte en ajoutant et en arrangeant des couches, en modifiant leur représentation graphique, puis vous pouvez exporter le résultat sous la forme d’un fichier .map à destination de MapServer.

Note

Pour l’instant, l’extension ne fonctionne qu’avec l’ancienne symbolique QGIS. La nouvelle symbolique n’est pas encore supportée.

Création du fichier de projet

L’extension fonctionne sur un fichier de projet QGIS précédemment enregistré, et non sur le contenu actuel de la carte et de la légende. C’est souvent une source de confusion pour beaucoup. Comme décrit ci-dessous, vous avez besoin de réarranger les couches vecteurs et rasters que vous voulez utiliser dans MapServer et enregistrer l’état qui vous paraît satisfaisant dans un fichier de projet QGIS.

Figure Mapserver Export 1:

../../../_images/mapserver_export_qgis.png

Arrange raster and vector layers for QGIS project file nix

Dans cet exemple sont présentées les quatre étapes requises pour créer un fichier de projet qui pourra être utilisé pour créer un fichier de carte (mapfile) pour MapServer.Les fichiers vecteurs et rasters proviennent de l’échantillon de jeu de données de Quantum GIS Échantillon de données.

  1. Ajoutez la couche raster landcover.tif en cliquant sur le bouton mActionAddRasterLayer Ajouter une Couche Raster.

  2. Ajoutez la couche vecteur SHP lakes.shp, majrivers.shp et airports.shp depuis le jeu de données QGIS en cliquant sur le bouton mActionAddNonDbLayer Ajouter une couche Vecteur.

  3. Changer les couleurs et les symboles des données (voir Figure figure_mapserver_export_1)

  4. Enregistrez dans un nouveau fichier de projet nommé mapserverproject.qgs en utilisant mActionFileSave Fichier -> Enregistrer le projet.

Création du fichier .map

Pour utiliser l’extension Exportation Mapserver, vous devez charger l’extension en utilisant le Gestionnaire d’extension. (Voir Section Activer une extension principale).

Figure Mapserver Export 2:

../../../_images/mapserver_export_dialog.png

Export to MapServer Dialog nix

Fichier map

Saisissez le chemin complet du fichier .map que vous voulez exporter. Vous pouvez utiliser le bouton sur la droite pour parcourir votre système.

Fichier projet Qgis

Saisissez le chemin complet du fichier projet (.qgs) que vous voulez exporter. Vous pouvez utiliser le bouton sur la droite pour parcourir votre système.

Nom de la carte

Un nom pour la carte. Ce nom préfixera toutes les images créées par le serveur.

Largeur de la carte

Largeur en pixels de l’image générée.

Hauteur de la carte

Hauteur en pixels de l’image générée.

Unitées de la carte

Unités de mesure utilisées.

Type d’image

Format de l’image générée par MapServer

Web Template

Chemin complet vers le fichier MapServer template à utiliser

Web en-tête

Chemin complet vers le fichier d’en-tête de MapServer à utiliser

Web bas de page

Chemin complet vers le fichier de bas de page MapServer à utiliser

Seuls les fichiers .map et fichier de projet QGIS sont requis pour créer un fichier .map. Cependant les autres paramètres sont importants pour éviter d’obtenir un fichier inutilisable . Bien que QGIS soit en mesure de créer les fichiers .map, votre projet nécessite peut-être des adaptions pour obtenir le résultat escompté. Créons un fichier .map en utilisant le projet mapserverproject.qgs que nous avons créé (voir Figure Figure_mapserver_export_2):

  1. Ouvrez l’extension en cliquant sur le bouton mapserver_export Exporter vers (voir figure Figure_mapserver_export_2).

  2. Entrez le nom qgisproject.map pour votre nouveau fichier .map.

  3. Sélectionnez le projet QGIS mapserverproject.qgs que vous venez d’enregistrer.

  4. Entrez un nom (par exemple MaCarte pour la carte.

  5. Entrez la taille de l’image souhaitée (par exemple 600 de largeur par 400 de hauteur).

  6. Nos couches sont en mètres, l’unité de mesure sera donc le mètre.

  7. Choisissez png pour le type d’image.

  8. Cliquez sur [OK] pour générer le nouveau fichier qgisproject.map. QGIS affiche le résultat de vos efforts.

Figure Mapserver Export 3:

../../../_images/mapserver_export_success.png

Export to MapServer Succesfull Dialog nix

Vous pouvez visualiser le fichier .map dans un éditeur de texte. Si vous le faites, vous remarquerez que l’outil d’exportation ajoute les métadonnées nécessaires à l’utilisation du protocole WMS.

En cas de problème

Si Mapserver émet des messages d’erreurs tels que:

loadSymbolSet(): Unable to access file. (./symbols/symbols.txt)

ou:

msLoadFontset(): Unable to access file. Error opening fontset ./fonts/fonts.txt.

Cela signifie que le fichier .map demande des fichiers de polices de caractères ou des symboles, mais que Mapserver ne les trouve pas.

Vous pouvez soit commenter les lignes contenant ces définitions dans le fichier .map (cela est possible si vous n’utilisez pas d’étiquettes ou de styles du fichier symbols.txt), soit créer ces fichiers (voir ci-dessous).

Le fichier fonts.txt le plus basique contient la ligne suivante, parce que la police Arial est utilisée pendant la création des fichier .map

# either relative to the map file or a full path:
arial /usr/share/fonts/truetype/msttcorefonts/arial.ttf

Le fichier symbols.txt le plus basique contient la définition du cercle (car c’est la représentation par défaut des couches de points)

SYMBOLSET
    SYMBOL
    NAME "circle"
    TYPE ellipse
    FILLED true
    POINTS
    1 1
    END
    END
END

Test du fichier .map

Nous pouvons maintenant tester notre travail.

Si le fichier .map est accessible depuis Mapserver, vous pouvez utiliser une des adresses figurant dans la fenêtre de résultats de l’exportation.

Une autre possibilité est d’utiliser l’outil shp2img pour créer une image du fichier .map. L’utilitaire shp2img fait partie de MapServer et de FWTools. Pour créer une image de notre carte:

  • Ouvrez une console de commande

  • Si vous n’avez pas sauvegardé votre fichier dans votre répertoire personnel, déplacez vous vers le bon dossier.

  • Lancez shp2img -m qgisproject.map -o mapserver\_test.png et affichez l’image

Une image PNG est créée avec toutes les couches du projet QGIS. De plus, l’étendue du PNG sera la même que celle du projet. Comme vous le voyez sur la figure figure_mapserver_export_4, toutes les informations, à l’exception des symboles des aéroports, sont incluses.

Figure Mapserver Export 4:

../../../_images/mapserver_export_test.png

Test PNG created by shp2img with all MapServer Export layers nix

Utiliser le fichier .map

Si vous comptez utiliser ce fichier .map pour fournir un service WMS, vous n’aurez probablement rien d’autre à modifier. Par contre si vous comptez l’utiliser comme modèle ou dans une interface personnalisée vous aurez un peu plus d’adaptation à effectuer. Vous pouvez jeter un oeil sur cette vidéo de Christopher Schmidt à l’adresse suivante <http://openlayers.org/presentations/mappingyourdata/>. La version utilisée de QGIS est 0.8 mais la méthode reste valable pour les version plus récentes.