WMTS basics

This section aims at describing the basics of the Web Map Tile Service (WMTS) standard to ease the understanding of Basemap streaming. For a detailed description of the WMTS standard, please refer to the Open Geospatial Consortium (OGC) The WMTS standard provides an efficient way to display worldwide maps through a network called streaming. Instead of requesting the full image, the client requests, for each zoom level, a set of tiles to display its Basemap area of interest. At each zoom level, the Basemap is divided in a number of tiles starting from zoom level 0 up to zoom level 19 for the Basemap. As the zoom level increases, the number of tiles dividing the Basemap increases in a way that the resolution of a tile increases with the zoom level:

wmts number of tiles matrix according to zoom level

The WMTS standard defines that every tile, at each zoom level, is 256 pixels by 256 pixels. In the epsg:3857 projection, the first level of zoom is composed of a single tile representing the whole world. The next level represents the whole world in 4 tiles (2x2) and so on in powers of 4. The WMTS tiling scheme in epsg:3857 projection is consequently:

Zoom levelPixel sizeNb tiles on abscissaNb tiles on ordinate

The WMTS standard also defines the way to uniquely identify a tile. At a given zoom level, abscises and ordinates are numbered from 0 to (Nb tiles - 1). Starting from top left corner, abscises increment towards the east, while ordinates increment towards the south.

wmts identification of each tile of a matrix

The WMTS standard defines a GetTile request API which is a HTTP request for a unique tile. When requesting a tile from GetTile API, the client requests a tile providing its zoom level and coordinates: TileMatrix=zoom level, TileCol=abscises and TileRow=ordinates. When a client wants to display a map on a screen, it requests the tiles needed to fill the screen. For example, if the screen is 1024 pixels by 1024 pixels, it requests 16 tiles of 256 pixels by 256 pixels each.

The WMTS standard also comes with a ‘layer’ mechanism allowing to stream different contents from the same server. ‘Layer’ mechanism is implemented by the Basemap server, meaning that you could stream 2 different basemaps with 2 different contents from the Basemap server. The 2 layers information are provided by a GetCapibilities request answer. You specify the layer in the GetTile request to get a tile from one layer or the other.

Contact Us