Data Sources

Author:Thomas Bonfort
Contact:tbonfort at

MapCache uses the concept of a “source” as a service that is able to return image data given a set of parameters (namely an extent, an image size, and a projection). Typically, a source is the third-party WMS server that you want to put a tile cache in front of.

WMS Sources

A WMS server is the main upstream server type used by MapCache. When processing a given tile, if it is not found in its cache, MapCache will query a WMS server with a GetMap request, split the returned image data into individual tiles, and store those tiles in its cache for subsequent requests.

<source name="mywmsserver" type="wms">
  <http> .... </http>

See also

HTTP Requests to configure how the <http> block should be expressed


You should usually only supply vendor-specific parameters to the <params> block. Never include any hardcoded BBOX, WIDTH, HEIGHT, SRS or any parameters related to dimensions inside this block, as these are calculated by MapCache itself at runtime.

MapFile Sources


WMTS Sources

MapCache WMTS source uses GDAL WMTS driver under the hood. Note that GDAL version must be > 2.1 to be able to enable the driver correctly. GDAL WMTS driver documentation can be found on:

GDAL WMTS xml file is needed, example command to construct such a file directly from wmts source equipped with basic auth & user/pass is: gdal_translate “WMTS:https://<url to capabilities>,layer=<layer id>” gdal_wmts.xml -of WMTS –config GDAL_HTTP_AUTH BASIC –config GDAL_HTTP_USERPWD <user:pass>

After GDAL WMTS xml file is constructed, it’s validity can be checked with command “gdalinfo <name of xml file>”.

last step is to enable the new WMTS source with following configuration in mapcache.xml.

<source type="gdal" name="foo">
  <data>/path/to/gdal/file (gdal_wmts.xml)</data>