MapServer Documentation, Release 7.0.7
See also:
The Glossary contains an overview of many of the jargon terms in this document.
MapServer can be extended and customized through MapScript or templating. It can be built to support many different
vector and raster input data formats, and it can generate a multitude of output formats. Most pre-compiled MapServer
distributions contain most all of its features.
See also:
Compiling on Unix and Compiling on Win32
Note: MapScript provides a scripting interface for MapServer for the construction of Web and stand-alone appli-
cations. MapScript can be used independently of CGI MapServer, and it is a loadable module that adds MapServer
capability to your favorite scripting language. MapScript currently exists in PHP, Perl, Python, Ruby, Tcl, Java, and
.NET flavors.
This guide will not explicitly discuss MapScript, check out the MapScript Reference for more information.
1.1.2 Anatomy of a MapServer Application
A simple MapServer application consists of:
• Map File - a structured text configuration file for your MapServer application. It defines the area of your map,
tells the MapServer program where your data is and where to output images. It also defines your map layers,
including their data source, projections, and symbology. It must have a .map extension or MapServer will not
recognize it.
See also:
MapServer Mapfile Reference
• Geographic Data - MapServer can utilize many geographic data source types. The default format is the ESRI
Shape format. Many other data formats can be supported, this is discussed further below in Adding data to your
site.
See also:
Vector Input Reference and Raster Input Reference
• HTML Pages - the interface between the user and MapServer . They normally sit in Web root. In it’s simplest
form, MapServer can be called to place a static map image on a HTML page. To make the map interactive, the
image is placed in an HTML form on a page.
CGI programs are ‘stateless’, every request they get is new and they don’t remember anything about the last time
that they were hit by your application. For this reason, every time your application sends a request to MapServer,
it needs to pass context information (what layers are on, where you are on the map, application mode, etc.) in
hidden form variables or URL variables.
A simple MapServer CGI application may include two HTML pages:
– Initialization File - uses a form with hidden variables to send an initial query to the web server and
MapServer. This form could be placed on another page or be replaced by passing the initialization infor-
mation as variables in a URL.
– Template File - controls how the maps and legends output by MapServer will appear in the browser. By
referencing MapServer CGI variables in the template HTML, you allow MapServer to populate them with
values related to the current state of your application (e.g. map image name, reference image name, map
extent, etc.) as it creates the HTML page for the browser to read. The template also determines how the
user can interact with the MapServer application (browse, zoom, pan, query).
1.1. An Introduction to MapServer 4