Une introduction à MapServer

Author:Jeff McKenna
Contact:jmckenna at gatewaygeomatics.com
Author:David Fawcett
Contact:david.fawcett at moea.state.mn.us
Author:Howard Butler
Contact:hobu.inc at gmail.com
Last Updated:2017-02-08

Vue d’ensemble de MapServer

Mapserver est un projet Open Source populaire dont le but est d’afficher des cartes dynamiques via Internet. Ces principales fonctionnalités incluent :

  • le support de l’affichage et de l’interrogation de centaines de couches issues de raster, vecteur et de bases de données

  • la capacité à fonctionner sur des systèmes d’exploitation variés (Windows, Linux, Mac OS X, etc.)

  • la gestion d’environnement de développement et de scripting (PHP, Python, Perl, Ruby, Java, .NET)

  • projections à la volée

  • rendu de haute qualité

  • formats de sortie très personnalisables

  • nombreux environnements d’application Open Source prêts à l’emploi

Dans sa forme la plus basique, Mapserver est un programme CGI qui reste inactif sur votre serveur Web. Quand une requête est envoyée à Mapserver, il utilise les informations passées par l’URL interrogée et le fichier Mapfile pour créer une image de la carte demandée. La requête peut aussi renvoyer des images pour les légendes, les barres d’échelle, les cartes de situation, et les valeurs passées passées en tant que variables CGI.

Voir aussi

Le Glossaire contient un aperçu de nombreux termes du jargon de ce document.

MapServer peut être étendu et customisé par l’utilisation du MapScript ou du templating. Il peut être compilé pour supporter de nombreux formats différents vecteur et raster en données d’entrées, et il peut générer une multitude de formats de sortie. La plupart des paquets de Mapserver précompilés contiennent pour la plupart toutes ces fonctionnalités.

Note

Le MapScript fournit une interface de scripting pour MapServer pour la construction d’application Web et d’applications seules. MapScript peut être utilisé indépendamment du binaire CGI MapServer, et est un module chargeable qui met à disposition les capacités de Mapserver dans votre langage de scripting favori. MapScript existe actuellement pour PHP, Perl, Python, Ruby, Tcl, Java et .NET.

Ce guide n’abordera pas explicitement MapScript, vérifier la référence MapScript pour plus d’informations.

Anatomie d’une application MapServer

MapServer Basic Architecture

L’architecture basique des applications Mapserver

Une application MapServer simple consiste en:

  • Un Map File - un fichier de configuration texte structuré pour votre application MapServer. Il définit l’étendue de votre carte, indique au programme MapServer où est votre donnée et où sont produites les images de sortie. Il définit aussi vos couches cartographiques, en incluant leur source de donnée, leurs projections, et leur symbologie. Il doit obligatoirement avoir une extension de type .map ou alors MapServer ne le reconnaîtra pas.

  • Des données géographiques - Mapserver peut utiliser de nombreux type de source de données géographiques. Le format par défault est le format Shape de ESRI. D’autres types de format de données peuvent être supportés, ceci est abordé plus en détails plus bas dans Ajouter des données à votre site.

  • des pages HTML - l’interface entre l’utilisateur et MapServer. Elles sont normalement placés dans la racine du serveur Web. Dans sa forme la plus simple, MapServer peut être appelé pour ajouter une image de carte statique dans une page HTML. Pour rendre la carte interactive, l’image est placée dans un formulaire HTML sur une page.

    Les programmes CGI sont ‘sans état’, chaque requête qu’ils reçoivent est nouvelle et ils ne se souviennent de rien à propos de la dernière fois où ils ont été accédés par votre application. Pour cette raison, chaque fois que votre application envoie un requête à Mapserver, il est nécessaire de passer des informations de contexte (quelles couches sont actives,où êtes vous sur la carte, le mode de l’application, etc.) par des champs cachés de formulaires ou par des variables passées dans l’URL.

    Une application CGI MapServer simple peut inclure deux pages HTML:

    • Une fichier d’initialisation - il utilise un formulaire avec des variables cachées pour envoyer une requête initiale au serveur web et à MapServer. Ce formulaire peut être placé sur une autre page ou être remplacé en passant l’information d’initialisation comme variables dans une URL.

    • Un fichier de template - il contrôle comment les cartes et les légendes produites par MapServer vont apparaître dans le navigateur. En référençant les variables CGI MapServer dans le template HTML, vous autorisez MapServer à les remplir avec des valeurs relatives à l’état courant de votre application (c’est à dire le nom de l’image de carte, celui de la carte de situation, l’étendue de la carte, etc.) au fur et à mesure qu’il créé la page HTML pour qu’elle soit lue par le navigateur. Le template détermine aussi comment l’utilisateur peut interagir avec l’application MapServer (naviguer, zoomer, se déplacer, interroger).

      Voir aussi

      Templating

  • le CGI MapServer - Le binaire ou fichier exécutable qui reçoit et renoie les images, les données, etc. Il se situe dans le répertoire cgi-bin ou scripts de votre serveur web. L’utilisateur de serveur web doit avoir les droits d’exécution sur le répertoire qui contient le binaire, et pour des raisons de sécurité, il ne devrait pas être à la racine du serveur web. Par défaut, ce programme s’appelle mapserv

  • Un serveur Web/HTTP - il sert les pages HTML quand il est appelé par le navigateur de l’utilisateur. Vous devez avoir un serveur web (HTTP) qui fonctionne, comme Apache ou Microsoft Internet Information Server (IIS), sur la machine sur lequel vous installez MapServer.

Installation et pré-requis

Pré-requis matériel

MapServer fonctionne sous Linux, Windows, Mac OS X, Solaris, et plus. Pour compiler ou installer quelques uns des programmes requis, vous aurez peut être besoin des droits administrateur sur votre machine. Les gens demandent souvent quelles sont les spécifications matérielles pour les applications MapServer, mais ces réponses sont spécifiques à chaque application en particulier. Pour des raisons de développement et d’apprentissage, une machine avec une configuration minimale fonctionnera très bien. Pour le déploiement, vous pourrez surement approfondir l’:ref:optimisation <optimization> , de vos données jusqu’à votre configuration serveur.

Pré-requis logiciel

You need a working and properly configured Web (HTTP) server, such as Apache or Microsoft Internet Information Server, on the machine on which you are installing MapServer.

If you are on a Windows machine, and you don’t have a web server installed, it is recommended that you use MS4W, which will install a pre-configured web server, MapServer, MapCache, PHP, TinyOWS, and many more utilities. Windows users can optionally check out the OSGeo4W installer as well.

This introduction will assume you are using an MS4W installation to follow along. Obtaining MapServer on Linux or Mac OS X should be straightforward. Visit Téléchargement for installing pre-compiled MapServer builds on Mac OS X and Linux.

Note

The OSGeo-Live virtual machine contains MapServer ready to use as well.

You will also need a Web browser, and a text editor (vi, emacs, notepad++, textpad, homesite) to modify your HTML and mapfiles.

Compétences

En plus d’apprendre comment les différents composants d’une application MapServer fonctionnent ensemble et d’apprendre la syntaxe des Map File, construire une application basique nécessite la compréhension de certains concepts ainsi qu’une maîtrise de plusieurs domaines de compétence.

Vous devez être capable de créer ou au minimum de modifier des pages HTML et de comprendre comment les formulaires HTML fonctionnent. Comme le premier but d’une application MapServer est de créer des cartes, vous devez aussi comprendre les bases sur les données géographiques et vraisemblablement les projections cartographiques. Au fur et à mesure que vos applications deviendront complexes, des compétences en SQL, DHTML/Javascript, Java, base de données, expressions régulières, compilation et scripting s’avéreront surement très utiles.

Installation Windows

Note

Des binaires pré-compilés pour MapServer sont disponibles à partir de plusieurs sources, référez vous à la section Windows de la page des téléchargements.

MS4W (MapServer for Windows) is the long-time installer that contains the Apache Web server, MapServer, and all of its dependencies and tools; MS4W also contains several add-on packages, that contain over 60+ pre-configured MapServer configuration files (mapfiles) and data. The following steps illustrate how to install MS4W:

  1. Download MS4W (this example will use the -setup.exe file) from http://ms4w.com/

  2. Exécuter (en double-cliquant) le fichier .exe

  3. Click the “Agree” button, to accept the license.

    Note

    MS4W uses the very open MIT/X license.

    _images/ms4w-license.jpg
  4. Select packages to install. Be sure to also select the “MapServer Itasca Demo Application”, as we will be using this demo later.

    Note

    You can optionally install other packages, by clicking the checkbox beside the package name.

    _images/ms4w-packages.jpg
  5. Click the “Next” button

  6. Click the “Browse...” button, to choose an installation path. You can safely leave the default (C:/), and the installer will create C:/ms4w.

    Note

    Folders will spaces are supported, if you are using the -setup.exe installer.

    _images/ms4w-install-folder.jpg
  7. Click the “Next” button

  8. Enter a port number to use for the Apache service. In most cases you can leave the port as 80, unless something is using that port such as an IIS service.

    Note

    You can specify any number above 1024, such as 8081 or 8082.

    _images/ms4w-port.jpg
  1. Click the “Install” button

    _images/ms4w-install.jpg
  2. Once you see a message of “Installer Complete”, then click the “Close” button

    _images/ms4w-install-complete.jpg
  3. On your desktop, click on the “MS4W-Localhost” shortcut, and your browser should open http://127.0.0.1 that loads an MS4W introduction page.

    _images/ms4w-browser.jpg
  4. Verify that MapServer is working, by clicking on the /cgi-bin/mapserv.exe link in the “Features” section of the page.

Note

If MapServer is working properly, you will receive a message stating: “No query information to decode. QUERY_STRING is set, but empty.

_images/ms4w-cgi-success.jpg

Introduction à Mapfile

Le fichier .map est un fichier de configuration basique pour accéder aux données et aux styles pour MapServer. Le fichier est un fichier texte ASCII, et est constitué de différents objets. Chaque objet a une variété de paramètres disponibles pour lui. Tous les paramètres d’un fichier .map (ou mapfile) sont documentés dans la référence de mapfile. Un exemple de mapfile simple n’affichant qu’une seule couche est visible ci-dessous, suivi du rendu image associé :

MAP
    NAME "sample"
    STATUS ON
    SIZE 600 400
    SYMBOLSET "../etc/symbols.txt"
    EXTENT -180 -90 180 90
    UNITS DD
    SHAPEPATH "../data"
    IMAGECOLOR 255 255 255
    FONTSET "../etc/fonts.txt"

    #
    # Start of web interface definition
    #
    WEB
        IMAGEPATH "/ms4w/tmp/ms_tmp/"
        IMAGEURL "/ms_tmp/"
    END # WEB

    #
    # Start of layer definitions
    #
    LAYER
        NAME 'global-raster'
        TYPE RASTER
        STATUS DEFAULT
        DATA bluemarble.gif
    END # LAYER
END # MAP
Rendered Bluemarble Image

Rendu d’image Bluemarble

Note

  • Les commentaires dans un mapfile sont spécifiés avec un caractère ‘#’

  • MapServer parse les mapfiles du haut vers le bas, en conséquent les couches à la fin du mapfile sont celles qui seront dessinées en dernier (ce qui veut dire qu’elles seront affichées par dessus les autres couches)

  • L’utilisation des chemins relatifs est toujours recommandé

  • Les chemins doivent être placés entre guillemets (les guillemets simples et doubles sont acceptés)

  • L’exemple ci-dessus est construit en utilisant la structure de répertoire suivante :

    • Le mapfile peut être placé n’importe où, à partir du moment où il est accessible par le serveur web. Normalement, vous devriez essayer d’éviter de le placer dans un endroit qui le rende accessible sur le web. Admettons qu’il est placé dans /home/msuser/mapfiles/

    • L’emplacement du fichier de liste des police est donné relativement au mapfile, dans ce cas: /home/msuser/etc/fonts.txt

    • L’emplacement de la source de données (bluemarble.gif) est donné relativement au mapfile, dans ce cas: /home/msuser/data/

    • L’emplacement du fichier de liste de symboles est donné relativement au mapfile, dans ce cas: /home/msuser/etc/symbols.txt

    • Les fichiers générés par Mapserver seront placés dans le répertoire /ms4w/tmp/ms_tmp/. Le serveur web doit obligatoirement être capable d’écrire des fichiers dans ce répertoire. Le serveur web doit aussi rendre ce répertoire disponible comme /ms_tmp (si le serveur web est sur www.ms.org, l’adresse web du répertoire devra être: httpd://www.ms.org/ms_tmp/.

Objet ‘MAP

MAP
  NAME "sample"
  EXTENT -180 -90 180 90 # Geographic
  SIZE 800 400
  IMAGECOLOR 128 128 255
END # MAP
  • EXTENT est l’étendue de sortie dans l’unité de la carte

  • SIZE est la largeur et la hauteur de l’image de la carte en pixels

  • IMAGECOLOR est la couleur de fond par défaut de l’image

Astuce

MapServer accepts colors in RGB values, or as a hexadecimal string.

Note

MapServer actuellement fonctionne sur un modèle d’étendue basé sur un pixel-centré et qui est un peu différent de ce que fait GDAL ou la norme WMS.

Objet LAYER

  • A partir de MapServer 5.0, il n’y a plus de limites au nombre de couches dans un mapfile

  • le paramètre DATA est relatif au paramètre SHAPEPATH de l’objet MAP

  • Si aucune extension n’est fournie dans le nom du paramètre DATA, MapServer assume que le format est le format Shape de ESRI(.shp)

Couches Raster

LAYER
    NAME "bathymetry"
    TYPE RASTER
    STATUS DEFAULT
    DATA "bath_mapserver.tif"
END # LAYER

Voir aussi

Données Raster

Couches vecteur

Des couches vecteur de TYPE point, line, ou polygon peuvent être affichées. L’exemple suivant montre comment afficher seulement les lignes d’une couche de TYPE polygon, en utilisant le paramètre OUTLINECOLOR:

LAYER
  NAME "world_poly"
  DATA 'shapefile/countries_area.shp'
  STATUS ON
  TYPE POLYGON
  CLASS
    NAME 'The World'
    STYLE
      OUTLINECOLOR 0 0 0
    END # STYLE
  END # CLASS
END # LAYER

Astuce

MapServer accepts colors in RGB values, or as a hexadecimal string.

Voir aussi

Données vecteur

Rendered Bluemarble Image

Rendu d’image Bluemarble avec des limites vecteurs

Classe et le style des objets

  • Les informations de styles sont typiquement renseignées dans les objets CLASS et STYLE d’une LAYER

  • A partir de MapServer 5.0, il n’y a plus de limites au nombre de couches dans un mapfile

  • the following example shows how to display a road line with two colors by using overlaid STYLE objects
CLASS
  NAME "Primary Roads"
  STYLE
    SYMBOL "circle"
    COLOR 178 114 1
    SIZE 15
  END # STYLE
  STYLE
    SYMBOL "circle"
    COLOR 254 161 0
    SIZE 7
  END # STYLE
END # CLASS

Astuce

MapServer accepts colors in RGB values, or as a hexadecimal string.

Rendered Bluemarble Image

Rendu d’image Bluemarble avec des routes stylées

symboles

  • peut être défini directement dans un mapfile, ou dans un fichier séparé

  • la méthode avec fichier séparé doit obligatoirement utiliser le paramètre SYMBOLSET dans l’objet MAP:

MAP
  NAME "sample"
  EXTENT -180 -90 180 90 # Geographic
  SIZE 800 400
  IMAGECOLOR 128 128 255
  SYMBOLSET "../etc/symbols.txt"
END # MAP

ou symbols.txt pourrait contenir:

SYMBOL
  NAME "ski"
  TYPE PIXMAP
  IMAGE "ski.png"
END # SYMBOL

et le mapfile contiendrait

LAYER
  ...
  CLASS
    NAME "Ski Area"
    STYLE
      SYMBOL "ski"
    END # STYLE
  END # CLASS
END # LAYER
Rendered Bluemarble Image Skier

Rendu d’image Bluemarble avec un symbole de skieur

LABEL

  • défini à l’intérieur d’un objet CLASS

  • the LABELITEM parameters in the LAYER object can be used to specify an attribute in the data to be used for labeling. The label is displayed by the FONT, declared in the FONTSET file (set in the MAP object). The FONTSET file contains references to the available font names. ENCODING describes which encoding is used in the file (see Affichage des caractères internationaux dans MapServer).

Un exemple d’objet LABEL qui référence une des polices ci-dessus devrait ressembler à:

LABEL
  FONT "sans-bold"
  TYPE truetype
  ENCODING "UTF-8"
  SIZE 10
  POSITION LC
  PARTIALS FALSE
  COLOR  100 100 100
  OUTLINECOLOR 242 236 230
END # LABEL
Rendered Bluemarble Image Skier

Rendu d’image Bluemarble avec un symbole de sskieur et une étiquette

Voir aussi

LABEL, FONTSET

CLASSE expressions

MapServer supporte trois types d’Expressions de CLASS dans une LAYER (un CLASSITEM dans une LAYER détermine l’attribut qui doit être utilisé pour les deux premiers types d’expressions):

  1. Comparaison de chaînes

    EXPRESSION "africa"
    
  2. Expressions régulières

    EXPRESSION /^9|^10/
    
  3. Expressions logiques

    EXPRESSION ([POPULATION] > 50000 AND '[LANGUAGE]' eq 'FRENCH')
    

Note

Les expressions logiques doivent être évitées autant que possible car elles sont très coûteuses en terme de temps de rendu.

Voir aussi

Expressions

INCLUDE

Ajouté à partir de la version de MapServer 4.10, chaque partie d’un mapfile peut être stocké dans un fichier séparé et appelé par le mapfile principal en utilisant le paramètre INCLUDE. Le nom du fichier inclut peut avoir n’importe quelle extension, et son chemin est toujours relatif à celui du fichier mapfile principal. Voici quelques usages potentiels :

  • les couches LAYER peuvent être stockées dans des fichiers et inclut dans dans de nombreuses applications

  • Les  STYLEs peuvent être aussi stockés et inclus dans de multiples applications

L’exemple suivant est un exemple d’utilisation de mapfile includes pour inclure une définition de couche dans un fichier séparé:

Si ‘shadedrelief.lay’ contient:

LAYER
  NAME 'shadedrelief'
  STATUS ON
  TYPE RASTER
  DATA 'GLOBALeb3colshade.jpg'
END # LAYER

en conséquent le fichier mapfile principal devrait contenir:

MAP
  ...
  INCLUDE "shadedrelief.lay"
  ...
END # MAP

Le contenu suivant est un exemple de mapfile où toutes les couches LAYER sont dans fichiers .lay séparés, et tous les autres objets ( WEB,  REFERENCE,  SCALEBAR, etc.) sont stockés dans un fichier « .ref » :

MAP
  NAME "base"
  #
  # include reference objects
  #
  INCLUDE "../templates/template.ref"
  #
  # Start of layer definitions
  #
  INCLUDE "../layers/usa/usa_outline.lay"
  INCLUDE "../layers/canada/base/1m/provinces.lay"
  INCLUDE "../layers/canada/base/1m/roads_atlas_of_canada_1m.lay"
  INCLUDE "../layers/canada/base/1m/roads_atlas_of_canada_1m_shields.lay"
  INCLUDE "../layers/canada/base/1m/populated_places.lay"
END # MAP

Avertissement

Les Mapfiles doivent obligatoirement avoir une extension .map ou alors MapServer ne les reconnaîtra pas. Les fichiers inclus peuvent par contre avoir n’importe quelle extension.

Voir aussi

INCLUDE

Avoir un Mapserver fonctionnel

You can test if MapServer is working by running the MapServer executable (mapserv) with the -v parameter on the command line (./mapserv -v).

MS4W users that installed through the -setup.exe installer, can use the MS4W-Shell shortcut on the desktop, and then run mapserv -v at the commandline. MS4W users who did not use the -setup.exe installer can open a Command Prompt window, cd to their installation folder, and then execute setenv.bat, before testing a mapserv -v command.

Depending on your configuration, the output could be something like this:

MapServer version 7.0.1 (MS4W 3.1.4) OUTPUT=PNG OUTPUT=JPEG OUTPUT=KML
SUPPORTS=PROJ SUPPORTS=AGG SUPPORTS=FREETYPE SUPPORTS=CAIRO SUPPORTS=ICONV
SUPPORTS=FRIBIDI SUPPORTS=WMS_SERVER SUPPORTS=WMS_CLIENT SUPPORTS=WFS_SERVER
SUPPORTS=WFS_CLIENT SUPPORTS=WCS_SERVER SUPPORTS=SOS_SERVER SUPPORTS=FASTCGI
SUPPORTS=THREADS SUPPORTS=GEOS INPUT=JPEG INPUT=POSTGIS INPUT=OGR INPUT=GDAL
INPUT=SHAPEFILE

You can also send a HTTP request directly to the MapServer CGI program without passing any configuration variables (e.g. http://127.0.0.1/cgi-bin/mapserv.exe). If you receive the message, ‘No query information to decode. QUERY_STRING not set.’, your installation is working.

Avoir une démo qui tourne

Avertissement

MS4W users do not have to do this step, as the above instructions already installed the demo. You should see a “MapServer Itasca Demo Application” section on the bottom of the page (after clicking the MS4W-Localhost shortcut).

Download the MapServer Demo. UnZip it and follow the directions in ReadMe.txt. You will need to move the demo files to their appropriate locations on your web server, and modify the Map File and HTML pages to reflect the paths and URLs of your server. Next, point your browser to init.html and hit the ‘initialize button’. If you get errors, verify that you have correctly modified the demo files.

S’approprier le site pour votre usage

Maintenant que vous avez une démo Mapserver fonctionnelle, vous pouvez utiliser la démo pour afficher votre propre donnée. Ajouter de nouvelles couches LAYER à votre fichier .map qui pointe vers vos propres données géographiques (vous voudrez probablement supprimer les couches existantes ou mettre le statut de la LAYER à OFF).

A moins que vous n’ajoutiez des couches qui tombent dans la même étendue géographique que la démo, modifier l’étendue (EXTENT) de la carte ( MAP ) qui corresponde à celle de vos données. Pour déterminer l’étendue de vos données, vous pouvez utiliser ogrinfo. Si vous avez accès à un logiciel GIS, vous pouvez aussi l’utiliser pour cela aussi. L’étendue (EXTENT) de la carte ( MAP ) nécessite d’être dans l’unité de votre projection en sortie.

Si vous ajoutez des couches de données géographiques avec des systèmes de référence géographiques différentes, vous devrez modifier votre fichier .map pour ajouter un bloc de a PROJECTION à la carte MAP (définir la projection de sortie / le système de référence géographique) et à chacune des couches LAYER (définit le système de référence géographique du jeu de données de la couche).

Ajouter des données à votre site

MapServer supports several data input formats ‘natively’, and many more if it is compiled with the Open Source libraries GDAL and OGR.

Données vecteur

Vector data includes features made up of points, lines, and polygons. MapServer support the ESRI Shape format by default, but it can be compiled to support spatially enabled databases such as PostgreSQL-PostGIS, and file formats such as Geography Markup Language (GML), MapInfo, delimited text files, and more formats with OGR.

Voir la the référence des données vecteur par exemple sur comment ajouter des sources de données géographiques à votre projet MapServer.

Données Raster

Raster data is image or grid data. Through GDAL, MapServer supports most raster formats - see the GDAL format list. More specific information can be found in the Raster Data reference.

Note

Since version 6.2 MapServer relies on GDAL for all raster access.

Projections

Parce que La Terre est ronde et que votre moniteur (ou carte papier) est plat, des distorsions auront lieus quand vous rendez des données géographiques dan une image deux-dimensions. Les projections vous permettent de représenter des données géographiques sur une surface plane. En faisant ainsi, quelques unes des propriétés originales (c’est à dire la direction, la distance, l’échelle ou la conformité) de la donnée seront distordues. Des projections différentes excellent chacune pour garder fidèlement différentes propriétés. Une bonne introduction sur les projections cartographiques peuvent être trouvées à l’université du Colorado.

Avec MapServer, si vous gardez tous vos jeux de données spatiales dans la même projection (ou non projeté Latitude et Longitude), vous n’avez plus besoin d’inclure des nouvelles informations de projection dans votre fichier .map. En construisant votre propre application MapServer, cette simplification est recommandée.

On-the-fly projection can be accomplished when MapServer is compiled with PROJ.4 support. Instructions on how to enable PROJ.4 support on Windows can be found on the Wiki.

Améliorer votre site

Ajouter la possibilité d’interrogation

Il y a deux manières principales de faire des requêtes sur des données spatiales. Les deux méthodes retournent des données via l’utilisation de templates et de variables de substitution CGI. Une QUERYMAP peut être utilisé pour cartographier les résultats d’un requête.

Pour être interrogeable, chaque mapfile LAYER peut avoir un TEMPLATE défini, ou chaque CLASS à l’intérieur d’une LAYER doit avoir un TEMPLATE défini. Plus d’informations sur les variables CGI utilisées pour définir les requêtes peut être trouvées sur la Référence CGI de MapServer.

Requêtes attributaires

L’utilisateur sélectionne des objets basés sur les données associées avec cet objet. ‘Montre moi tous les lacs où la profondeur est supérieure à 100 pieds’, avec ‘depth’ qui est un champ dans le jeu de données Shape ou la base de données spatiale. Les requêtes attributaires sont accomplies en passant l’information pour la définition de la requête à MapServer dans l’URL (ou un formulaire or form post). Mode=itemquery retourne un résultat simple, et mode=itemnquery retourne un ensemble de résultats.

La requête doit aussi inclure une QLAYER, qui identifie la couche à interroger, et un QSTRING qui contient la chaîne d’interrogation. De manière optionnelle, QITEM, peut être utilisé en conjonction avec QSTRING pour définir le champ qui doit être interrogé. Les requêtes attributaires s’appliquent seulement à l’intérieur l’étendue EXTENT defini dans le fichier .map.

Requêtes spatiales

L’utilisateur sélectionne les objets en fonction du clic sur la carte ou en fonction d’une boîte de sélection défini par l’utilisateur. De nouveau, la requête est passée par une URL ou un formulaire de post. En définissant mode=QUERY, un clic utilisateur retournera l’objet le plus proche. En mode=NQUERY, tous les objets trouvés par un clic sur la carte ou une sélection rectangulaire sont retournés. Les options de requêtes addittionnels peuvent être trouvées dans la documentation CGI.

Interfaces

See: OpenLayers http://openlayers.org, GeoMOOSE http://geomoose.org

Note

MS4W users can install both OpenLayers and GeoMOOSE as ready-to-use packages.

Optimisation de données

L’organisation des données est au moins aussi importante que la configuration logicielle pour optimiser une application MapServer pour la performance. MapServer est plutôt efficace pour ce qu’il fait, mais en réduisant la quantité de traitements dont il a besoin pour répondre à une seule requête utilisateur, vous pourrez grandement augmenter les performances. Voici quelques règles:

  • Indexer vos données -En créant des index spatiaux pour vos jeux de données Shape en utilisant shptree. Les index spatiaux devraient aussi être créé pour les bases de données spatiales comme PostGIS ou Oracle Spatial.

  • Tuiler vos données - Idéalement, votre donnée sera ‘découpé’ en morceaux de la taille dans laquelle elle sera affichée. Il y a une surcharge inutile quand on cherche dans un jeu de données Shape ou une image qui sera seulement affichée sur une petite partie. En découpant les données en tuiles et en créant un index de tuile, MapServer a besoin seulement d’ouvrir et de chercher les fichiers de données utiles. Les jeux de données Shape peuvent être découpés en petits morceaux et ensuite un index de tuile de Shape peut être créé en utilisant l’utilitaire tile4ms. Un index de tuile d’un jeu de données Shape pour des fichiers raster peut aussi être créé.

  • Pré-classifier votre donnée - MapServer vous permet pour l’usage d’ EXPRESSIONs plutôt complexes de classer vos données. Cependandant, l’utilisation des expressions logiques et régulières consomme plus de ressources que les comparaisons de chaînes. Pour augmenter l’efficacité, vous pouvez diviser vos données en classe par avance, créer un champ pour l’utiliser comme CLASSITEM et le peupler avec des valeurs simples qui identifie la classe comme 1,2,3, ou 4 pour un jeu de données divisé en 4 classes. Vous pouvez ensuite faire un comparaison de chaîne simple pour la classe EXPRESSION.

  • Pré-traité vos images - Faire les traitements consommateurs de ressources à l’avance. Voir la référence des données Raster pour plus d’infos.

  • Généraliser pour les aperçus - créer une couche de données généralisée, plus simple pour des rendus à petite échelle, et ensuite utiliser des couches paramétrées par échelle en utilisant LAYER MINSCALE et LAYER MAXSCALE pour montrer les couches de données détaillées au fur et à mesure du zoom de l’utilisateur. Le même concept s’applique aux images.

Voir aussi

Optimisation

Comment obtenir de l’aide?

Documentation

  • La documentation officielle de MapServer est disponible sur cette site.

  • La documentation contributive des utilisateurs est consultable et éditable sur sur le Wiki MapServer.

Liste de diffusion utilisateurs

S’enregistrer et poser les questions sur la liste de diffusion des utilisateurs MapServer. Les questions sur la liste trouvent habituellement une réponse assez rapide et parfois par les développeurs du projet. Quelques petites choses à se rappeler:

  1. Search the archives for your answer first, people get tired of answering the same questions over and over.
  2. Indiquer la version utilisée et les informations de configuration pour votre installation de MapServer ainsi que des extraits de code pertinents de votre fichier .map et de vos fichiers de template.

  3. Toujours répondre à l’ensemble de la liste plutôt que de répondre seulement à la personne qui vous a apporté une réponse

IRC

Utilisateurs et développeurs de MapServer peuventêtre trouvés sur l’IRC (Internet Relay Chat). La salle est #mapserver sur le serveur irc.freenode.net.

Signaler des bugs

Les bugs logiciels doivent être reportés sur le MapServer issue tracker. Les bugs de documentation doivent être reportés sur le MapServer documentation issue tracker.

Tutoriel

Ici est disponible un tutoriel rapide pour les nouveaux utilisateurs.

Suite de tests

Téléchargez la suite de tests MapServer pour une démonstration de quelques fonctionnalités de Mapserver

Livres

Web Mapping Illustrated, un livre de Tyler Mitchell qui décrit et fournit des exemples de cas réels pour l’utilisation des concepts liés à la cartographie en ligne, les logiciels SIG Open Source, MapServer, les Webservices, et PostGIS.

Mapping Hacks, écrit par Schuyler Erle, Rich Gibson, et Jo Walsh, il démontre l’usage possible des outils de cartographie informatique et des concepts associés. MapServer n’apparaît seulement que dans quelques cas parmi les 100 hacks, mais beaucoup sont utiles pour les concepts et les sources d’inspiration.

Beginning MapServer : Opensource GIS Development, de Bill Kropla. En se référant à la notice de l’éditeur, il couvre l’installation et la configuration, les sujets et les fonctionnalités basiques de MapServer, l’utilisation des données dynamiques, des sujets plus avancés, le MapScript, et la création d’une application réelle.