# MapServer

MapServer è un ambiente multipiattaforma di sviluppo e fruizione Open Source finalizzato alla rappresentazione di dati geospaziali.

## Caratteristiche

Per dichiarazione degli stessi sviluppatori, non è però un Sistema informativo geografico (GIS) completo. Il progetto avviato su iniziativa dell'Università del Minnesota a cui poi si unirono (nell'ambito del progetto TerraSIP) anche la NASA ed altri organismi, è oggi manutenuto da una comunità di sviluppatori sparsi in tutto il mondo.
Può essere utilizzato per realizzare applicazioni Web (WebGIS), ma anche per pubblicare servizi Web conformi alle raccomandazioni dell'Open Geospatial Consortium (WMS, WFS, WCS).
MapServer integra diversi altri sistemi Open Source/Freeware (librerie) quali:
* GD - output grafico (PNG);
* FreeType - supporto TrueType;
* PROJ - conversione di coordinate fra sistemi di proiezione;
* LibCURL - supporto WMS (OpenGIS Web Map Server standard);
* LibTiff - supporto Tiff;
* LibGeoTiff - supporto GeoTiff;
* LibJPEG - supporto Jpeg;
* Shapelib - lettura/scrittura di dati vettoriali in formato Shape;
* OGR Simple Feature Library - gestione file vettoriali in diversi formati;
* GDAL (Geospatial Data Abstraction Library) - gestione file raster in diversi formati;
* SDE Client Libraries - interscambio con ArcSDE ESRI;
* PostgreSQL Client Library - interfaccia verso PostGIS;
* Oracle Spatial Client Libraries - interfaccia verso database Oracle
* MING - supporto Macromedia Flash
* PDFLib/PDFLib Lite - output in PDF (librerie non interamente Open Source).

## Struttura del software

MapServer è una CGI. Il suo funzionamento base è legato ad un file ASCII di indicizzazione dei dati geografici disponibili su server, (mappa), che generalmente ha l'estensione .map.
Nel file.map i dati sono organizzati in layers, a loro volta divisi in una o più classi, per ognuna delle quali si possono definire diversi stili di visualizzazione. Questa struttura permette la generazione di cartografie con ampia flessibilità di definizione degli stili che possono anche dipendere dalla scala della mappa.
Inoltre graficismo, sistema proiettivo e la visualizzazione o meno dei diversi layers può essere variato dall'utente mediante comandi inline, insiti nella stessa URL di comando.
L'output di MapServer, a seconda della richiesta, può essere grafico (la mappa, la legenda, la scala metrica o la visione d'insieme) o alfanumerico (il risultato di una query sui dati alfanumerici o spaziali). Il file.map prevede anche la possibilità di far confluire l'output del MapServer in un template HTML, in modo da generare una pagina web di lettura più agevole e gradevole.
MapServer, attraverso opportuni wrappers (MapScript), può essere integrato in applicazioni web scritte con i linguaggi di scripting:
* PHP;
* Perl;
* Python;
* Java.
La possibilità di essere integrato in applicazioni web ha spinto gli sviluppatori a creare Web application servers basati su MapServer per la parte di pubblicazione dati geospaziali:
* CartoWeb Archiviato il 6 agosto 2009 in Internet Archive.;
* Ka-Map;
* Chameleon, su chameleon.maptools.org. URL consultato il 13 marzo 2007 (archiviato dall'url originale il 29 marzo 2010).
* Pmapper, su pmapper.net. URL consultato il 27 giugno 2007 (archiviato dall'url originale il 30 marzo 2010).

## Formati supportati

* Dati vettoriali:
** ESRI Shapefile (default);
** Oracle Spatial Database;
** ESRI ArcSDE;
** vettoriali GRASS;
* Dati raster:
** TIFF/Geotiff;
** GIF;
** PNG;
** ERDAS Imagine;
** JPEG;
** tutti i formati gestiti da GDAL.
* Dati vettoriali attraverso le librerie OGR:
** ESRI ArcInfo Coverages;
** ESRI Personal Geodatabase (.mdb);
** Geography Markup Language (GML);
** Uk NTF;
** SDTS;
** US Census Tiger/Line;
** IHO S-57;
** Mapinfo TAB;
** Bentley Microstation Design Files (DGN);
** OGDI Vector;
** PostgreSQL PostGIS;
** Virtualmente qualsiasi tabella con coordinate Lat/Lon di oggetti puntiformi accessibile via ODBC.