WMTS Test Examples

July 16, 2026 · View on GitHub

The WMTS tests exercise the /wmts endpoint, which implements OGC Web Map Tile Service 1.0.0. The REST-KVP hybrid URL path has the form:

/wmts/1.0.0/{layer}/{style}[/{dimension}…]/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.{format}

Temporal and vertical layers carry their dimension values as extra path segments between the style and the TileMatrixSet (see Dimensions below). Layers without dimensions use the plain seven-segment form …/{style}/{TileMatrixSet}/….

Test inputs are in test/input/wmts_*.get and expected outputs in test/output/wmts_*.get.

Contents

Dimensions

A layer's dimensions are advertised in GetCapabilities: each <Layer> lists a <Dimension> (with <ows:Identifier>, <ows:UOM>/<UnitSymbol>, <Default>, <Value>) for every axis it offers, and its <ResourceURL> template names the matching placeholders, e.g.:

…/{Style}/{Time}/{Reference_time}/{Elevation}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.png

At request time each placeholder becomes a path segment, in the same order the capabilities advertise them:

DimensionIdentifierExample valueMaps to
TimeTime20080909T1200valid time
Reference timeReference_time20080909T0000model analysis / origin time
ElevationElevation850vertical level (e.g. pressure in hPa)

So a temperature layer on pressure levels is requested as:

/wmts/1.0.0/test:t2m_pressure/default/20080909T1200/20080909T0000/850/EPSG:3067/3/2/4.png

Notes:

  • Identifiers are capitalised (Time, Reference_time, Elevation) to match what the GeoWeb OpenLayers client substitutes into the template.
  • Any omitted trailing dimension falls back to its default (e.g. the most current time); a bare seven-segment URL renders the layer at all defaults.
  • A TIME= query parameter is still accepted for backward compatibility, but the path segment takes precedence.

wmts_getcapabilities

Input: test/input/wmts_getcapabilities.get

GET /wmts/1.0.0/WMTSCapabilities.xml HTTP/1.0

Returns the WMTS 1.0.0 capabilities document listing all available tile layers, tile matrix sets, styles, and supported output formats. Each layer advertises tile matrix sets for EPSG:3035, EPSG:3067, EPSG:3857, and EPSG:4326.

Output: test/output/wmts_getcapabilities.get — XML

wmts_gettile_isoband

Input: test/input/wmts_gettile_isoband.get

GET /wmts/1.0.0/test:t2m/temperature_one_degrees/EPSG:4326/5/4/36.png?TIME=20080805T030000 HTTP/1.0
Path segmentValueDescription
test:t2mLayerTemperature isoband layer in customer test
temperature_one_degreesStyle1°C isoband interval style
EPSG:4326TileMatrixSetWGS 84 tile grid
5TileMatrixZoom level 5
4TileRowRow 4 within the tile grid
36TileColColumn 36 within the tile grid
.pngFormatPNG output
TIME20080805T030000Valid time query parameter

Returns a 1024×1024 PNG tile of temperature isobands.

Output: test/output/wmts_gettile_isoband.get — PNG (1024×1024)

wmts_gettile_isoband

wmts_gettile_temperature_numbers

Input: test/input/wmts_gettile_temperature_numbers.get

GET /wmts/1.0.0/test:opendata_temperature_numbers/default/EPSG:4326/5/4/36.svg?TIME=20130805T1500 HTTP/1.0
Path segmentValueDescription
test:opendata_temperature_numbersLayerTemperature observation numbers
defaultStyleDefault style
.svgFormatSVG output (vector tiles)
TIME20130805T1500Valid time

Returns a 1024×1024 SVG tile containing temperature number annotations as vector graphics.

Output: test/output/wmts_gettile_temperature_numbers.get — SVG

wmts_gettile_temperature_numbers

wmts_gettile_geotiff

Input: test/input/wmts_gettile_geotiff.get

GET /wmts/1.0.0/grid:raster_1/default/EPSG:4326/5/4/36.tiff?TIME=20080805T080000 HTTP/1.0
Path segmentValueDescription
grid:raster_1LayerRaw gridded raster data layer
.tiffFormatGeoTIFF raster tile
TIME20080805T080000Valid time

Returns a GeoTIFF tile containing raw numerical grid data (not rendered colour). Used for programmatic access to model data in raster form.

Output: test/output/wmts_gettile_geotiff.get — GeoTIFF (metadata/header only in the test)

wmts_gettile_elevation_850 / _500

Input: test/input/wmts_gettile_elevation_850.get / _500

GET /wmts/1.0.0/test:t2m_pressure/default/20080909T1200/20080909T0000/850/EPSG:3067/3/2/4.png HTTP/1.0
GET /wmts/1.0.0/test:t2m_pressure/default/20080909T1200/20080909T0000/500/EPSG:3067/3/2/4.png HTTP/1.0
Path segmentValueDescription
test:t2m_pressureLayerTemperature isobands on constant pressure levels
defaultStyleDefault style
20080909T1200{Time}Valid time
20080909T0000{Reference_time}Model analysis time
850 / 500{Elevation}Pressure level in hPa
EPSG:3067TileMatrixSetTM35FIN tile grid
3/2/4TileMatrix/Row/ColZoom 3, row 2, col 4

The two requests differ only in the {Elevation} segment; they render distinct tiles (850 hPa vs 500 hPa temperature fields), which guards against the elevation dimension being silently dropped on the way to the renderer.

Output: test/output/wmts_gettile_elevation_850.get / _500 — PNG