MS RFC 123: Support for MapML output in MapServer




Daniel Morissette




Last update



(Targeting MapServer 8.0)

1. Overview

A common way to deploy web mapping sites in 2019 is to embed JavaScript code in a web page using OpenLayers or Leaflet as the navigation interface. Those JavaScript libraries can interact with OGC WMS and Tile Services (as well as other OGC service types) if provided with the correct configuration via JavaScript code. In other words, the map contents, the list of layers, SRS, zoom levels, extents, etc, are specified as JavaScript statements and then rendered by a JavaScript library in a “custom” way that the web browser itself does not “understand”.

The W3C Maps for HTML Community Group is working to define a (new) “map” HTML element that would be used to define map contents in a web page and would be directly supported and rendered by web browsers in a standardized way. All this is done by building on existing standards such as WMS, WFS and Tile Services. In addition to standardizing the encoding and access to map elements in web browsers, this encoding also aims to make the map contents more easily discoverable and indexable by search bots on the Web. (Do I dare say the S-word? cough … semantic web… cough)

A draft specification is available through the working group, and the goal of this RFC is to provide a reference implementation to test the draft spec in real life use cases and promote its more widespread usage. A similar reference implementation project is also underway with GeoServer, and we will aim to align this implementation with the GeoServer implementation when possible.

This project is supported by funding from Natural Resources Canada.

2. Proposed solution

This RFC proposes the implementation of MapML output in MapServer. Enabling text/mapml as a new format offering for WMS and WFS.

2.1 Building/enabling the MapML option

MapML output is enabled at compile time using the following CMake options:


The list of dependencies are:

… TBD (None expected at this point)

2.2 MapFile configuration parameters

The following configuration parameters are used to enable MapML output in a mapfile:


2.3 Examples

3. Implementation Details


4. Limitations


5. Backwards Compatibility Issues

None anticipated as this is a new feature.

6. Security implications

None anticipated at the moment. (TBD as design work progresses)

7. Performance implications

No impacts on core performance are anticipated.

8. Documentation needs

A new documentation page will be added outlining the various MapML output configuration scenarios and parameters (in the style of the OGC WMS Server page for instance)

9. Ticket ID and references

10. Voting history

Draft RFC. No vote yet.