MapServer is the most popular open source development environment available today for building spatially-enabled gis web mapping applications and services. It is fast and reliable and can integrate into any GIS environment. It can operate in two different modes: as a CGI program or via MapScript which supports several programming languages including PHP, Python, Perl, and Java and C#. It is cross-platform and can run on all major operating systems and will work with almost any web server.
Features of MapServer:
- On-the-fly feature classification is supported.
- Support for feature labelling and querying of hundreds of raster, vector, and database formats TIFF/GeoTIFF, NetCDF, MrSID, ECW, and many others.
- Cross-Platform support, available to various operating systems (Windows, Linux, Mac OS X, Solaris, etc.)
- Support for popular scripting languages and development environments such as PHP, Python, Perl, Ruby, Java and.NET.
- On-the-fly projections for raster and vector through PROJ.4 library.
- High-quality rendering and TrueType Fonts.
- Support a wide variety of spatial and attribute based queries.
- Support to GDAL/OGR, PostGIS and PROJ.4 open source geospatial technologies.
- Lots of ready to use Open Source application environment.
- Easily configured through .map files extension.
- SVG Symbols can be used.
- Dynamic heatmaps.
- Label collision engine.
A brief history of MapServer
Originally developed at the University of Minnesota, with support from NASA and later it was hosted by TerraSIP Project. Currently, MapServer is maintained by volunteer developers around the world, who regularly release updates and bug fixes. In 1999, UMN declares MapServer as an open source project. All source code for MapServer is openly available via GitHub.
MapServer Supported Data Formats
MapServer can handle both vector and raster data formats. It can render over 20 different vector data formats, including shapefiles, PostGIS, Arc/Info Coverages and Census TIGER files. MapServer reads two raster formats natively i.e. GeoTIFF and EPPL7 but can read others as well such as Bitmap, GIFs, and JPEGs via the GDAL package.
Since MapServer functions can be accessed via an API from various programming Languages such as PHP, Perl, and Python. It can serve as the foundation of a powerful spatially aware application that has many of the analytical and reporting functions of a true GIS web mapping applications. In addition, while there are no integrated tools for manipulating spatial data, there are third-party toolsets that perform many (although not all) of these functions. When running a CGI in a web environment. MapServer can render maps, display attribute data, and perform basic spatial queries. When accessed via the API, the application becomes significantly more powerful. In this environment, MapServer can perform the same tasks it would as CGI, but it also has access to an external database via program control, as well as more complex logic and a larger collection of possible behaviours.
Implemented Standards in MapServer
- Filter Encoding (FE)
- Web Map Service (WMS)
- Web Feature Service (WFS)
- Web Coverage Service (WCS)
- Web Map Context (WMC)
- Keyhole Markup Language (KML)
- Geography Markup Language (GML)
- Georeferenced Tagged Image File Format (GeoTIFF)
- Geographic JSON (GeoJSON)
- OpenStreetMap (OSM)
- Styled Layer Descriptor (SLD)
- Sensor Observation Service (SOS)
Overview of MapServer version numbers
MapServer’s version numbering scheme is similar to Linux’s. For example, a version number of 7.0.7 can be decoded as:
- 7: Major version number.
MapServer releases a major version every two to three years of timeframe.
- 0: Minor version number. Increments in minor version number almost always relate to additions in functionality.
- 7: Revision number.
Revisions are done only for bug fixes. No new functionality is appended to revisions.
Even minor versions (0, 2, 4, 6) relate to release versions, and Odd minor versions (1, 3, 5, 7) relate to developmental versions.
MapServer can be extended and customized as per users requirements through MapScript or templating. MapServer can be built as per the user requirements to support many different vector and raster input data formats, and it can generate a multitude of output formats.
Windows, Mac, Linux