Added in version 3.1.

Driver short name


Driver built-in by default

This driver is built-in by default

This driver implements read and write support for the MapML specification. It only implements reading and writing vector features.


This driver implements an experimental specification, and inherits its experimental status. This specification may change at a later point, or not be adopted. Files written by this driver may no longer be readable in later versions of GDAL.

Driver capabilities

Supports Create()

This driver supports the GDALDriver::Create() operation

Supports Georeferencing

This driver supports georeferencing

Supports VirtualIO

This driver supports virtual I/O operations (/vsimem/, etc.)

Read support

Layers are identified with the class attribute of features.

Fields are retrieved from the HTML table in the properties element of features. This assumes that they are written following the exact same structure as the write side of the driver. Otherwise no fields will be retrieved. Field type is guessed from the values, and may consequently be sometimes inaccurate.

Write support

Several layers can be written in the same MapML file.

Only the following CRS are natively supports, EPSG:4326 (WGS 84), EPSG:3857 (WebMercator), EPSG:3978 (NAD83 / Canada Atlas Lambert) and EPSG:5936 (WGS 84 / EPSG Alaska Polar Stereographic). Layers in other CRS will be automatically reprojected to EPSG:4326.

Geometry types Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon and GeometryCollection are supported.

Attributes are written as a HTML table.

Dataset creation options

Dataset creation options can be specified in command-line tools using the syntax -dsco <NAME>=<VALUE> or by providing the appropriate arguments to GDALCreate() (C) or Driver.Create (Python). The following dataset creation options are supported:

  • HEAD=value: Filename or inline XML content for head element.


  • EXTENT_ACTION=value: Value of extent@action attribute.

  • EXTENT_XMIN=value: Override extent xmin value.

  • EXTENT_YMIN=value: Override extent ymin value.

  • EXTENT_XMAX=value: Override extent xmax value.

  • EXTENT_YMAX=value: Override extent ymax value.

  • EXTENT_XMIN_MIN=value: Min value for extent.xmin value.

  • EXTENT_XMIN_MAX=value: Max value for extent.xmin value.

  • EXTENT_YMIN_MIN=value: Min value for extent.ymin value.

  • EXTENT_YMIN_MAX=value: Max value for extent.ymin value.

  • EXTENT_XMAX_MIN=value: Min value for extent.xmax value.

  • EXTENT_XMAX_MAX=value: Max value for extent.xmax value.

  • EXTENT_YMAX_MINi=value: Min value for extent.ymax value.

  • EXTENT_YMAX_MAX=value: Max value for extent.ymax value.

  • EXTENT_ZOOM=<integer>: Value of extent.zoom.

  • EXTENT_ZOOM_MIN=<integer>: Min value for extent.zoom.

  • EXTENT_ZOOM_MAX=<integer>: Max value for extent.zoom.

  • EXTENT_EXTRA=<filename>: Filename of inline XML content for extra content to insert in extent element.