Map Server
Functionality
MapServer is an Open Source platform for publishing spatial data to the web with standardised APIs defined by Open Geospatial Consortium, such as WMS, WFS, WCS, OGC API-Features. Originally developed in the mid-1990s at the University of Minnesota, MapServer is released under an MIT-style license and runs on all major platforms (Windows, Linux, Mac OS X). MapServer is not a full-featured GIS system, nor does it aspire to be.
In Soilwise mapserver will be used to share spatial data in a conveniant way to clients such as QGIS, ArcGIS, OpenLayers, Leaflet.
Read more about MapServer at EJPSoil wiki.
Technology
A docker image for mapserver is maintained by Camp2Camp. The important aspect here is that the image uses a minimal build of GDAL, which defines the source formats consumable by the MapServer (in line with section Transformation and Harmonistation Components). If formats such as Geoparquet or Geozarr are relevant, building a tailored image is relevant.
The configuration of the MapServer is managed via a config file. The config files reference metadata, data and styling rules. Various tools exist to create MapServer config files:
- geocat bridge is a QGIS plugin to create mapfiles from QGis projects
- Mappyfile is a python library to generate mapfiles by code
- mapserver studio a saas solution to edit mapfiles
- mapscript is a python library to interact with the MapServer binary
- pygeodatacrawler is a tool by ISRIC generating mapfiles from various resources
- vs code mapfile plugin
Mapfiles produced in the project are maintained in a git repository and mounted into the mapserver container in a deployment phase.