Author: | Steve Lime |
---|---|
Contact: | steve.lime at dnr.state.mn.us |
Author: | Jeff McKenna |
Contact: | jmckenna at gatewaygeomatics.com |
Author: | Jean-François Doyon |
Contact: | jdoyon at ccrs.nrcan.gc.ca |
The Mapfile is the heart of MapServer. It defines the relationships between objects, points MapServer to where data are located and defines how things are to be drawn.
There are some important concepts that you must understand before you can reliably use mapfiles to configure MapServer. First is the concept of a LAYER. A layer is the combination of data plus styling. Data, in the form of attributes plus geometry, are given styling using CLASS and STYLE directives.
See also
An Introduction to MapServer for “An Introduction to the Mapfile”
The Mapfile is NOT case-sensitive.
Strings containing non-alphanumeric characters or a MapServer keyword MUST be quoted. It is recommended to put ALL strings in double-quotes.
For MapServer versions < 5, there was a default maximum of 200 layers per mapfile (there is no layer limit with MapServer >= 5). This can be changed by editing the map.h file to change the value of MS_MAXLAYERS to the desired number and recompiling. Here are other important default limits when using a MapServer version < 5:
MapServer versions >= 5 have no limits for classes, styles, symbols, or layers.
File paths may be given as absolute paths, or as paths relative to the location of the mapfile. In addition, data files may be specified relative to the SHAPEPATH.
The mapfile has a hierarchical structure, with the MAP object being the “root”. All other objects fall under this one.
Comments are designated with a #.
Attributes are named using the following syntax: [ATTRIBUTENAME] ... Note that the name of the attribute included between the square brackets IS CASE SENSITIVE. Generally ESRI generated shapefiles have their attributes (.dbf column names) all in upper-case for instance, and for PostGIS, ALWAYS use lower-case.
MapServer Regular Expressions are used through the operating system’s C Library. For information on how to use and write Regular Expressions on your system, you should read the documentation provided with your C Library. On Linux, this is GLibC, and you can read “man 7 regex” ... This man page is also available on most UNIX’s. Since these RegEx’s are POSIX compliant, they should be the same on Windows as well, so windows users can try searching the web for “man 7 regex” since man pages are available all over the web.