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.
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:
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.
Ajoutez la couche raster landcover.tif en cliquant sur le bouton Ajouter une Couche Raster.
Ajoutez la couche vecteur SHP lakes.shp, majrivers.shp et airports.shp depuis le jeu de données QGIS en cliquant sur le bouton Ajouter une couche Vecteur.
Changer les couleurs et les symboles des données (voir Figure figure_mapserver_export_1)
Enregistrez dans un nouveau fichier de projet nommé mapserverproject.qgs en utilisant Fichier -> Enregistrer le projet.
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:
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):
Ouvrez l’extension en cliquant sur le bouton Exporter vers (voir figure Figure_mapserver_export_2).
Entrez le nom qgisproject.map pour votre nouveau fichier .map.
Sélectionnez le projet QGIS mapserverproject.qgs que vous venez d’enregistrer.
Entrez un nom (par exemple MaCarte pour la carte.
Entrez la taille de l’image souhaitée (par exemple 600 de largeur par 400 de hauteur).
Nos couches sont en mètres, l’unité de mesure sera donc le mètre.
Choisissez png pour le type d’image.
Cliquez sur [OK] pour générer le nouveau fichier qgisproject.map. QGIS affiche le résultat de vos efforts.
Figure Mapserver Export 3:
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.
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
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:
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.