MapServer
# MapServer

MapServer est un environnement de développement libre permettant de construire des applications internet à référence spatiale. Ce n'est pas un SIG complet.

Il peut être utilisé pour réaliser des applications Web, mais également pour publier des services Web conformes aux recommandations de l'Open Geospatial Consortium (WMS, WFS, WCS).

## Historique

MapServer a été développé par l'université du Minnesota (University of Minnesota) (UMN) dans le cadre du projet ForNet en coopération avec la NASA et le département des ressources naturelles du Minnesota (Minnesota Department of Natural Resources) (MNDNR). À ce jour, le projet MapServer est hébergé par le projet TerraSIP, un projet sponsorisé par la NASA, et réalisé par UMN et un groupement d'acteurs dans le domaine de l'aménagement du territoire.

## Fonctionnalités

* Sorties cartographiques évoluées
   * Échelle dépendante de la représentation des objets et de l'exécution de l'application
   * Étiquetage des objets
   * Application complètement modifiable et utilisation d'un mécanisme de gabarits
   * Utilisation des polices TrueType
   * Présence d'éléments supplémentaires à la carte : échelle, légende, carte de référence
   * Cartographie thématique en utilisant des expressions logiques ou régulières
* Prise en charge d'environnements et de langages de développement : PHP, Python, Perl, Ruby, Java, et C#
* Prise en charge de nombreuses plates-formes : Linux, Windows, Mac OS X, Solaris…
* Prise en charge de nombreux formats de données vecteurs ou rasters
   * TIFF/GeoTIFF, EPPL7, et bien d'autres grâce à la bibliothèque GDAL
   * ESRI shapfiles, PostGIS, ESRI ArcSDE, Oracle Spatial, MySQL et bien d'autres grâce à la bibliothèque OGR
   * Suit les recommandations de l'Open Geospatial Consortium : WMS (client/serveur), WFS non-transactionnel (client/serveur), WMC, WCS, SLD (Styled Layer Descriptor), GML, SOS
* Gère la projection des cartes grâce à la bibliothèque libproj du projet PROJ4

## Fonctionnement

MapServer est un exécutable CGI (Common Gateway Interface) qui se place dans la partie inactive d'un serveur web. Quand une requête est envoyée à MapServer, il utilise les informations passées dans l'URL de la requête et le fichier de configuration fourni (MapFile) pour créer une image de la carte demandée. Cette image peut être affichée dans un navigateur. La requête peut aussi fournir une légende, une barre d'échelle, une carte de référence et des valeurs passées comme variables CGI.

Il est aussi disponible sous forme d'une API dans plusieurs langages de programmation. Le programmeur a alors accès à des fonctions lui permettant entre autres de manipuler la carte (zone de visualisation, couches affichées…), effectuer des requêtes spatiales, ajouter des objets géoréférencés, etc.

MapServer peut être étendu et personnalisé avec de nombreuses fonctionnalités. Il peut être construit avec de nombreux formats d'écriture et de lecture de données.

