i. Abstract
The OGC Tile Matrix Set standard defines the rules and requirements for a tile matrix set as a way to index space based on a set of regular grids defining a domain (tile matrix) for a limited list of scales in a Coordinate Reference System (CRS) as defined in [OGC 08-015r2] Abstract Specification Topic 2: Spatial Referencing by Coordinates. Each tile matrix is divided into regular tiles. In a tile matrix set, a tile can be univocally identified by a tile column a tile row and a tile matrix identifier. This document presents a data structure defining the properties of the tile matrix set in both UML diagrams and in tabular form. This document also presents a data structure to define a subset of a tile matrix set called tile matrix set limits. XML and JSON encodings are suggested both for tile matrix sets and tile matrix set limits. Finally, the document offers practical examples of tile matrix sets both for common global projections and for specific regions.
Keywords
The following are keywords to be used by search engines and document catalogues.
ogcdoc, OGC document, tiles, maps, tile matrix set
Preface
In 2007 OGC approved and released the Web Map Tile Service standard [OGC 07-057r7] (WMTS). This OGC standard provides a definition of a “tile matrix set.” Over time, other OGC standards dealing with tiles in other ways needed to use the same definition. Unfortunately, these OGC standards could not use the tile matrix set definition directly because the definition was formally linked to the tile service. This document frees the concept of a tile matrix set from the WMTS standard so that other standards can reference the concept directly. This standard also adds an informative list of commonly used tile matrix sets. The submitters believe that other tile matrix concepts will emerge in the future. This document is anticipated to impact future revisions of other OGC standards such as GeoPackage.
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights. The Open Geospatial Consortium shall not be held responsible for identifying any or all such patent rights.
Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the standard set forth in this document, and to provide supporting documentation.
Security Considerations
The correct definition of a tile matrix set is crucial to be able to correctly geo-reference a tile. The application of the wrong tile matrix set could result in an incorrect geo-referencing of the tiles and the features represented in those tiles. In an emergency situation, such poor referencing could result sending first responders to the wrong location.
In a normal service interaction, the client requests the TileMatrixSet once and requests one or more tiles afterwards. The client needs to ensure that the TileMatrixSet definition has not been tampered with and corresponds to the correct TileMatrixSet. In practice this means that the client and server must to use a mechanism to ensure that the service is really who it claims to be and that the message that travels from the server to the client has not been altered.
If a server points to a definition of a TileMatrixSet that is hosted elsewhere, in addition to the precautions stated in before, the client must ensure that the service providing the definition of the TileMatrixSet is a trusted service. In addition, the synchronization of the tiles and the tile matrix set definition need to be ensured, guaranteeing that the tile matrix set definition has not been updated afterwards without the tile service knowing it.
Submitting organizations
The following organizations submitted this document to the Open Geospatial Consortium (OGC):
- UAB-CREAF
- Image Matters LLC
- Natural Resources Canada NRCan
Submitters
All questions regarding this submission should be directed to the editor or the submitters:
Name |
Affiliation |
---|---|
Joan Masó |
UAB-CREAF |
Jeff Yutzler |
Image Matters LLC |
Peter Rushforth |
Canada Centre for Mapping and Earth Observation, Natural Resources Canada |
1. Scope
This document specifies the concepts of a tile matrix set and tile matrix set limits and their implementation in 2D space. This standard also provides both a XML and a JSON encoding. The Tile Matrix Set concept, initially developed in OGC Web Map Tile Service (WMTS) 1.0, is now provided as an independent standard that can be referenced by other standards such as WMTS 2.0 and GeoPackage, or the Natural Resources Canada (NRCan)-promoted specification Map Markup Language (MapML). In addition, this standard ensures that the tile matrix set concept can be used by grid based tiles as well as for vector tiles. This document also contains an informative Annex D with a library of proposed tile matrix set definitions for Mercator, Transverse Mercator, Polar Stereographic, Lambert Azimuthal Equal Area, and Lambert Conformal Conic. Global identifiers for the Tile Matrix Sets in the Annex D will be agreed with the OGC Naming Authority.
2. Conformance
This standard defines tile matrix set, tile matrix set limits and tile matrix set link.
Requirements for the following standardization target types are considered.
- TileMatrixSet2D: This abstract class defines a data model for tile matrix sets in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/tilematrixset2d]. This abstract class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/tilematrixset2d]. The target is a service or an encoding needing to define TileMatrixSet (e.g., a future version of WMTS service metadata).
- TileMatrixSetLimits2D: This abstract class defines a data model for tile matrix sets limits in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/tilematrixsetlimits2d]. This abstract class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/tilematrixsetlimits2d]. The target is a service, a client, or an encoding needing to define TileMatrixSetLimits (e.g., a future version of WMTS service metadata).
- TileMatrixSetLink2D: This abstract class defines a data model for tile matrix links in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/tilematrixsetlink2d]. This abstract class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/tilematrixsetlink2d]. The target is a service, a client, or an encoding needing to declare conformity to a TileMatrixSet or/and a TileMatrixSetLimits (e.g., a future version of WMTS service metadata).
- XMLTileMatrixSet2D: This class defines a encoding in XML for tile matrix sets in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/xml-tilematrixset2d]. This class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/xml-tilematrixset2d]. The target is a service, a client, or an encoding needing to define a TileMatrixSet in XML (e.g., a future version of WMTS service metadata).
- XMLTileMatrixSetLimits2D: This class defines a encoding in XML for tile matrix sets limits in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/xml-tilematrixsetlimits2d]. This class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/xml-tilematrixsetlimits2d]. The target is a service, a client, or an encoding needing to define a TileMatrixSetLimits in XML (e.g., a future version of WMTS service metadata).
- XMLTileMatrixSetLink2D: This class defines a encoding in XML for tile matrix links in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/xml-tilematrixsetlink2d]. This class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/xml-tilematrixsetlink2d]. The target is a service, a client or an encoding needing to declare conformity to a TileMatrixSet or/and a TileMatrixSetLimits using an XML encoding (e.g., a future version of WMTS service metadata).
- JSONTileMatrixSet2D: This class defines a encoding in JSON for tile matrix sets in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/json-tilematrixset2d]. This class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/json-tilematrixset2d]. The target is a service, a client, or an encoding needing to define a TileMatrixSet in JSON (e.g., a future version of a WMTS OpenAPI).
- JSONTileMatrixSetLimits2D: This class defines a encoding in JSON for tile matrix sets limits in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/json-tilematrixsetlimits2d]. This class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/json-tilematrixsetlimits2d]. The target is a service, a client ,or an encoding needing to define a TileMatrixSet in JSON (e.g., a future version of a WMTS OpenAPI).
- JSONTileMatrixSetLink2D: This class defines a encoding in JSON for tile matrix links in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/json-tilematrixsetlink2d]. This class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/json-tilematrixsetlink2d]. The target is a service, a client, or an encoding needing to declare conformity to a TileMatrixSet or/and a TileMatrixSetLimits using a JSON encoding (e.g., a future version of a WMTS OpenAPI).
- JSONLDTileMatrixSet2D: This class defines a encoding in JSON-LD for tile matrix sets in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/jsonld-tilematrixset2d]. This class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/jsonld-tilematrixset2d] The target is a service, a client, or an encoding needing to define a TileMatrixSet in JSON that needs to connect to the semantic web (e.g., a future version of a WMTS OpenAPI).
- JSONLDTileMatrixSetLimits2D: This class defines a encoding in JSON-LD for tile matrix sets limits in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/jsonld-tilematrixsetlimits2d]. This class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/jsonld-tilematrixsetlimits2d] The target is a service, a client, or an encoding needing to define a TileMatrixSet in JSON that needs to connect to the semantic web (e.g., a future version of a WMTS OpenAPI).
- JSONLDTileMatrixSetLink2D: This class defines a encoding in JSON-LD for tile matrix links in 2D [http://www.opengis.net/spec/tilematrixset/1.0/req/jsonld-tilematrixsetlink2d]. This class has a single conformance class: [http://www.opengis.net/spec/tilematrixset/1.0/conf/jsonld-tilematrixsetlink2d] The target is a service, a client, or an encoding needing to declare conformity to a TileMatrixSet or/and a TileMatrixSetLimits using a JSON encoding that needs to connect to the semantic web (e.g., a future version of a WMTS OpenAPI).
Conformance with this standard shall be verified using all the relevant tests specified in Annex A (normative) of this document. The framework, concepts, and methodology for testing, and the criteria to be achieved to claim conformance are specified in the OGC Compliance Testing Policies and Procedures and the OGC Compliance Testing web site[1].
All requirements-classes and conformance-classes described in this document are owned by the standard(s) identified.
3. References
The following normative documents contain provisions that, through references in this text, constitute provisions of this document. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest edition of the normative document referred to applies.
[1] OGC: OGC 06-121r9 Web Service Common Implementation Specification, version 2.0, 2010. https//portal.ogc.org/files/38867
[2] OGC: OGC 08-005r2 Abstract Specification Topic 2: Spatial referencing by coordinates, 2010. https://portal.ogc.org/files/39049
[3] OGC: OGC 09-146r6 Coverage Implementation Schema (“CIS”) Version 1.1, 2017. https://docs.ogc.org/is/09-146r6/09-146r6.html
[4] IETF: IETF RFC 7159, The JavaScript Object Notation (JSON) Data Interchange Format, 2014. https://www.ietf.org/rfc/rfc7159.txt
[5] W3C: W3C JSON-LD 1.0, A JSON-based Serialization for Linked Data, 2014. http://www.w3.org/TR/json-ld/
4. Terms and Definitions
This document uses the terms defined in Sub-clause 5.3 of [OGC 06-121r9], which is based on the ISO/IEC Directives, Part 2, Rules for the structure and drafting of International Standards. In particular, the word “shall” (not “must”) is the verb form used to indicate a requirement to be strictly followed to conform to this standard.
For the purposes of this document, the following additional terms and definitions apply:
4.1
coordinate reference system
coordinate system that is related to the real world by a datum [ISO 19111]
4.2
coordinate system
set of mathematical rules for specifying how coordinates are to be assigned to points [ISO 19111]
4.3
domain
well-defined set [ISO/TS 19103:2005]
NOTE: A mathematical function may be defined on this set, i.e. in a function f:A–>B, A is the domain of the function f.
4.4
grid
network composed of two or more sets of curves in which the members of each set intersect the members of the other sets in an algorithmic way [ISO 19123:2005]
NOTE: The curves partition a space into grid cells.
NOTE2: A grid can be used to define a tessellation of the space.
4.5
range set
set of all values a function f can take as its arguments vary over its domain [OGC 07-036]
4.6
raster tile
a tile that contains information in a gridded form. Commonly the values of the grid represent colors of each cell in the grid for immediate pictorial representation on rendering devices, but can also be coverage subsets.
4.7
regular grid
grid whose grid lines have a constant distance along each grid axis [OGC 09-146r6]
NOTE2: A regular grid can be used to define a regular tessellation of the space.
4.8
tessellation
partitioning of a space into a set of conterminous subspaces having the same dimension as the space being partitioned [ISO 19123]
NOTE: A tessellation composed of congruent regular polygons or polyhedra is a regular tessellation. One composed of regular, but non-congruent polygons or polyhedra is a semi-regular tessellation. Otherwise the tessellation is irregular.
4.9
tile
a small rectangular representation of geographic data, often part of a set of such elements, covering a tiling scheme and sharing similar information content and graphical styling. A tile can be uniquely defined in a tile matrix by one integer index in each dimension. Tiles are mainly used for fast transfer (particularly in the web) and easy display at the resolution of a rendering device. Tiles can be grid based pictorial representations, coverage subsets, or feature based representations (e.g., vector tiles).
4.10
tile matrix
a grid tiling scheme that defines how space is partitioned into a set of conterminous tiles at a fixed scale.
NOTE A tile matrix constitutes a tessellation of the space that resembles a matrix in a 2D space characterized by a matrix width (columns) and a matrix height (rows).
4.11
tile matrix set
a tiling scheme composed by collection of tile matrices defined at different scales covering approximately the same area and has a common coordinate reference system.
4.12
tiling scheme
a scheme that defines how space is partitioned into individual tiled units. A tiling scheme defines the spatial reference system, the geometric properties of a tile, which space a uniquely identified tile occupies, and reversely, which unique identifier corresponds to a space satisfying the geometric properties to be a tile.
NOTE: A tiling scheme is not restricted to a coordinate reference system or a tile matrix set and allows for other spatial reference systems such as DGGS and other organizations including irregular ones.
4.13
tile set
a series of actual tiles contain data and following a common tiling scheme.
4.14
vector tile
a tile that contains vector information that has been simplified at the tile scale resolution and clipped by the tile boundaries.
4.15
well-known scale set
a well-known combination of a coordinate reference system and a set of scales that a tile matrix set declares support for
5. Conventions
This section provides details and examples for any conventions used in the document. Examples of conventions are symbols, abbreviations, use of XML schema, or special notes regarding how to read the document.
5.1 Identifiers
The normative provisions in this specification are denoted by the URI
http://www.opengis.net/spec/TileMatrixSet/1.0
All requirements and conformance tests that appear in this document are denoted by partial URIs which are relative to this base.
6. Tile Matrix Set concept
As stated in [OGC 08-015r2] Abstract Specification Topic 2: Spatial Referencing by Coordinates, a coordinate system is a set of mathematical rules for specifying how coordinates are to be assigned to points in space. A CRS is a coordinate system that is related to the real world by a reference datum. An example of mathematical rules is the application of a sphere or an ellipsoid centered in the datum and the use of a projection to transform the sphere or the ellipsoid into a planar representation of the world. Usually, the resulting planar coordinates are expressed as real numbers that express distances to the origin of the projection. This section introduces a tiling scheme called Tile Matrix Set that is defined on top of a CRS.
6.1 Tile Matrix
A Tile Matrix is a tiling scheme defined as a grid coverage. For the [OGC 09-146r6] CIS GeneralGridCoverage, the domain set of a grid describes the direct positions in multi-dimensional coordinate space, depending on the type of grid. In a grid-regular, simple equidistant grids are established. When a regular grid coverage is used to represent the world, the space becomes discrete in each dimension of the grid domain range; e.g., it is divided into regular intervals that can be assigned to integer numbers that enumerate and identify tiles. This grid of tiles domain range can be defined by:
a) The extreme corner (called top left corner in a two-dimensional space) of the bounding box of regular grid coverage (e.g., the CRS coordinates of the top left corner of the top left extreme where the integer coordinates are 0);
b) A tile size in CRS units for in each dimension of the CRS; and
c) The size of the tile matrix in tile units (i.e., number of tiles) that closes the bounding box of the tiled space. Frequently the sizes of the two first dimensions are called matrix width and matrix height.
6.1.1 Tile matrix in a two-dimensional space.
Tiles are originally designed to be rendered in rendering devices that have the space quantized in pixels characterized by a size.
The tile size in CRS units of the first two dimensions and the size of the rendering device pixels are related. The relation is a function of the following two parameters:
a) A scale (expressed as a scale denominator) and
b) A groupingof rendering pixels in a tile forming the tile. 256x256 or 512x512 are common grouping values. Frequently the sizes of the two first dimensions are called tile width and tile height.
NOTE: Normally tile width and tile height are equal but this constraint is not imposed by this standard.
The scale denominator is defined here with respect to a “standardized rendering pixel size” of 0.28 mm × 0.28 mm (millimeters). The definition is the same as used in Web Map Service WMS 1.3.0 [OGC 06-042] and in Symbology Encoding (SE) Implementation Specification 1.1.0 [OGC 05-077r4] and later adopted by WMTS 1.0 [OGC 07-057r7]. Frequently, the true pixel size is unknown and 0.28 mm has the actual size of a common display from 2005. This value is still being used as reference even if current display devices are built with pixel sizes much smaller.
NOTE: Since the 1980s, the Microsoft Windows operating system has set their default standard display pixels per inch (PPI) to 96. This value results in an approximated 0.264 mm per pixel. The similarity of this value with the actual 0.28 mm adopted in this standard can create some confusion.
Normally the matrix width is constant and in this circumstance, having a single scale factor using a single standardized rendering pixel size for the two dimensions, results in pixels that have the same size in the first two dimensions. This is commonly known as square pixels.
NOTE: The geometry above is different from WMS, which does allow non-square pixels (although many implementations fail to support non-square pixels properly).
In raster tiles, a second regular grid that is coincident with the original regular grid coverage domain range but denser (with smaller cell size but an exact submultiple of that size) is defined. Each grid cell of this new higher resolution grid is called a grid cell. The gridded space is defined by the same top left corner as the original tile matrix. The grid cells are defined by equally dividing the original tiles into grid cellsusing thenumber of rendering pixels in a tile. In common tiled 2D visualization clients, a part of the grid cells is made coincident with the device pixels and this part of the grid is rendered in the device: the second grid is known as the extrapolated device grid. In other words, a tile is divided in a number of pixels in each dimension of the CRS in a way that creates pixels of the exact same size of the grid of a rendering device.
NOTE: In raster tiles, it is common that the range set represents colors of the cells and is stored in PNG or JPEG files of exactly one tile. Nevertheless, nothing prevents to store other kinds of values in other formats, such as TIFF files.
Vector tiles also make use of the extrapolated device grid where vector tiles can be rendered for visualization purposes.
NOTE: Vector tiles expressed in pure vector formats, such as GeoJSON, do not need an extrapolated device grid. Other vector tiles formats (e.g., MBTiles) define an internal coincident grid denser than the extrapolated device gridandexpress the vector coordinates using indices in this denser grid.
For the case of a two-dimensional space, given the top left point of the tile matrix in CRS coordinates (tileMatrixMinX, tileMatrixMaxY), the width and height of the tile matrix in tile units (matrixWidth, matrixHeight), the rendering pixels in a tilevalues (tileWidth, tileHeight), the coefficient to convert the coordinate reference system (CRS) units into meters (metersPerUnit), and the scale (1:scaleDenominator), the bottom right corner of the bounding box of a tile matrix (tileMatrixMaxX, tileMatrixMinY) can be calculated as follows:
pixelSpan = scaleDenominator×0.28 10-3 / metersPerUnit(crs);
tileSpanX = tileWidth×pixelSpan;
tileSpanY = tileHeight×pixelSpan;
tileMatrixMaxX = tileMatrixMinX + tileSpanX×matrixWidth;
tileMatrixMinY = tileMatrixMaxY - tileSpanY×matrixHeight;
The tile space therefore looks like this:
Each tile in a tile matrix is identified by its tileCol and tileRow indices that have their 0,0 origin in the tile next to the top left corner of the tile matrix and that increases towards the right and towards the bottom respectively, as shown in Figure 1. Annex F in this document includes pseudocode that illustrates the process for obtaining the tile indices that cover a bounding box rectangle and also the computation to get the CRS coordinates that bound a tile.
NOTE: A tile matrix can be implemented as a set of image files (e.g., PNG or JPEG) in a file folder, each file representing a single tile
NOTE2: Section 6 of the TIFF specification v6 defines 2D tiles in the same way that has been done in this standard. All tiles in a tile matrix can be stored in a single TIFF file. The TIFF file includes only one set conterminous tiles sharing a common single scale.
6.2 Tile Matrix Set
Depending on the range of scales needed to be represented in the screen of a client, a single tile matrix is impractical and might force the software to spend too much time simplifying/generalizing the dataset prior to rendering.
Commonly, several tile matrices are progressively defined covering the expected ranges of scales needed for the application. A Tile Matrix Set is a tiling scheme composed of a collection of tile matrices, optimized for a particular scale and identified by a tile matrix identifier. Each Tile Matrix Set has an optional approximated bounding box, but each tile matrix has an exact bounding box that is deduced indirectly from other parameters. Tile matrix bounding boxes at each scale will usually vary slightly due to their cell alignment.
A Tile Matrix has a unique alphanumeric identifier in the Tile Matrix Set. Some tile-based implementations prefer to use a zoom level number which has the advantage of suggesting some order in the list of tile matrices. This standard does not use the zoom level concept but, to ease adoption of this standard in implementations that prefer numeric zoom levels, many Tile Matrix Sets defined in Annex D use numbers as Tile Matrix identifiers. If this is not the case, the index order in the list of tile matrices defined in a Tile Matrix Set could still be used as a zoom levelorderinginternally.
In some other standards, the tile matrix set concept is called an image pyramid, like in clause 11.6 of the OGC KML 2.2 [OGC 07-147r2] standard. JPEG2000 (ISO/IEC 15444-1) and JPIP (ISO/IEC 15444-9) also use a similar division of the space called resolution levels. Nevertheless, in those cases the pyramid is self-defined starting from the more detailed tile matrix (that uses square tiles), and constructing tiles of the next scales by successively aggregating 4 tiles of the previous scale, and so on (see Figure 2), and interpolating each 4 contiguous values of the previous scale into one in the next scale. That approach involves a more rigid structure which has scales related by powers of two and tiles that perfectly overlap tiles on the inferior scale denominators. Tile Matrix Sets presented in this document are more flexible, but KML superoverlays or JPEG2000-based implementations can use this standard with some extra rules to describe their tile matrix sets. This document describes some tile matrix sets with scale sets related by powers of two in the Annex D.
Each of the WMTS procedure-oriented architectural style operations and resource-oriented architectural style resources are described in more detail in subsequent clauses in this standard.
NOTE: Clients and servers have to be careful when comparing floating numbers with tolerance (double precision, 16-digit numbers, have to be used).
6.3 Well-known scale sets
When overlaying and presenting tiles encoded in different tile matrix sets that do not have common sets of scale denominators and the same CRS in an integrated client, rescaling or re-projecting tiles to the common scale of the view might require re-sampling calculations that result in visual quality degradation. To prevent this situation, a common coordinate reference system and a common set of scales shared by as many layers and services as possible is desirable. Thus, the concept of well-known scale set (WKSS) is introduced.
Note that a WKSS only defines a small subset of what is needed to completely define a Tile Matrix Set. A WKSS is an optional feature that does not replace the need to define the Tile Matrix Set and its Tile Matrices. The original purpose of WKSS might not be necessary if services share and reference common Tile Matrix Sets definitions such as the ones in Annex D.
A WKSS is a commonly used combination of a CRS and a set of scales. A tile matrix set can declare support for a WKSS set by referencing that WKSS. A client application can confirm that tiles in one tile matrix set are compatible with tiles in another tile matrix set merely by verifying that they declare a common WKSS. The informative Annex C provides several WKSSs and others could be incorporated in the future.
A tile matrix set conforms to a particular WKSS when it uses the same CRS and defines all scale denominators ranging from the largest scale denominator in the WKSS to some low scale denominator (in other words, it is not necessary to define all the lower scale denominators to conform to a WKSS).
6.4 Tile based coordinates in a tile matrix set
A tile in a tile-based coordinate can be referred by its tile position in the tile matrix dimensions and the tile matrix identifier in tile matrix set. In a two-dimensional space, a tile is identified by these 3 discrete index names: tile row, tile column and tile matrix identifier.
In raster tiles, a grid cell in the extrapolated device grid domain set can be identified by a set of floating point coordinates in the CRS and by one of two ways that does not present rounding issues, as follows.
· By the tile indices the grid cell is contained by (referred by its tile position in the tile matrix dimensions and the Tile Matrix identifier in the Tile Matrix Set) and the cell indices inside the tile (i,j,…). In a two-dimensional space, a tile is identified by 5 discrete indices that are named: tile row, tile column, tile matrix identifier, i and j. This is how GetFeatureInfo works in WMTS. This set of coordinates is called “tile coordinates.”
· By the position of the cell in grid defined by the extrapolated device grid domain set (that starts at the top left corner of the tiled space) of the tile matrix and the identifier of the Tile Matrix in Tile Matrix Set. In a two-dimensional space, a grid cell is identified by 3 discrete indices that are named: i¢, j¢ and tile matrix identifier. Note that i¢ and j¢ can be very big integer numbers and, for very detailed scale, tile matrices might require integer 64-bit notation if stored as binary numbers. This set of indices is called “tilematrix coordinates.”
6.5 Tile matrix set limits
If the tile matrix set for a dataset covering a bounding box defines the extreme corner adjusted to the actual content of this dataset, and later the bounding box needs to be extended, then the extreme corner of each TileMatrix will change, which will change the tile indices of any previous tile invalidating any previously cached tile. To overcome this problem, a dataset can optionally use a more generic TileMatrixSet that covers a bigger (or even global) area. In fact, that TileMatrixSet that defines an area that might be covered by the dataset in a future could easily be shared for many datasets and become a common TileMatrixSet.
To inform the client about the valid range of tile indices, the TileMatrixSetLimits concept is introduced. TileMatrixSetLimits informs the minimum and a maximum limits of these indices for each TileMatrix that contains actual data. The area outside these limits is considered empty space.
6.6 Variable matrixWidth tile matrix
Until now, it has been assumed that matrixWidth is constant in for all tile rows. This is common usage for projections that do not distort the Earth too much. But when using Equirectangular Plate Carrée projection (see Annex D.2) the distortion increases for tiles closer to the poles. In the extreme, the upper row of the upper tile (the one representing the North Pole) contains a list of repeated values that represents almost the same position in the space. The same can be said for the lower row of the lower tile (the one representing the South Pole). When the tiles are represented in a flat projection, this is an effect that cannot be avoided, but when the data are presented in a virtual globe, the distortion results in redundant information in the poles that need to be eliminated by the client during the rendering. It would be better if the distortion is compensated by the server side instead.
The solution consists of reducing the number of tiles (matrixWidth) in the high latitude rows and generating those tiles with a compressed scale in the i dimension (see Figure 5). To allow that, the tile model must be extended to specify coalescence coefficients (c) that reduce the number of tiles in the width direction by aggregating c horizontal tiles but keeping the tileWidth (and tileHeight). The coalescence coefficient will not be applied next to the Equator but will be used in medium and high latitudes (the higher the latitude the bigger the coefficient).
Even if tiles can coalesce, this does not change the indexing or the tile matrix set that will be the same as if no coalescence has been applied. For example, if the c coefficient is 4, the tileRow of the first tile will be 0, the tileRow of the second tile will be 4, the tileRow of the third tile will be 8 and so on. In other words, and for the same example, tileRow 0, 1, 2 and 3 points to the same tile.
NOTE: This decision is necessary to still be able to be able to define a rectangle in the space based on tile indices as we do in tile matrix limits section.
7. TileMatrixSet2D model
7.1 TileMatrixSet2D requirements class
Requirements class tilematrixset2D establishes how to describe a TileMatrixSet for a two-dimensional tile space. It is expected that tile matrix sets are defined once and that servers or encodings using or distributing tiles will declare the usage of a tile matrix set by linking to that tile matrix set. The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/tilematrixset2d.
Req 1 req/tilematrixset2d/model:
A tile matrix set 2D shall be defined following the UML model as shown in Figure 1 and the model description in Table 1 and Table 2.
Dependency: http://www.opengis.net/spec/owscommon/2.0/req
Table 1 defines the structure of the TileMatrixSet.
Names | Definition | Data type and values | Multiplicity and use |
---|---|---|---|
identifier Identifier |
Tile matrix set identifier g |
ows:CodeType, as adaptation of MD_Identifier class ISO 19115 |
One (mandatory) |
title a Title |
Title of this tile matrix set, normally used for display to a human |
LanguageString data structure, see Figure 15 in OWS Common [OGC 06-121r9] |
Zero or more (optional) Include when available and useful Include one for each language represented f |
abstract a Abstract |
Brief narrative description of this tile matrix set, normally available for display to a human |
LanguageString data structure, see Figure 15 in OWS Common [OGC 06-121r9] |
Zero or more (optional) Include when available and useful Include one for each language represented |
keywordsa Keywords |
Unordered list of one or more commonly used or formalized word(s) or phrase(s) used to describe this dataset |
MD_Keywords class in ISO 19115 |
Zero or more (optional) One for each keyword authority used |
boundingBox BoundingBox |
Minimum bounding rectangle surrounding the tile matrix set, in the supported CRS b |
BoundingBox data structure, see subclause 10.2 of OWS Common [OGC 06-121r9] |
Zero or one (optional) Deprecated |
supportedCRS SupportedCRS |
Reference to one coordinate reference system (CRS) |
URI type |
One (mandatory) |
wellKnownScaleSet WellKnownScaleSet |
Reference to a well-known scale sete |
URI type |
Zero or one (optional) c |
tileMatrix TileMatrix |
Describes a scale level and its tile matrix |
TileMatrix data structure, see Table Table 2 |
One or more (mandatory) d |
a The multilingual scoping rules in subclause 10.7.3 of OWS Common [OGC 06-121r9] SHALL apply. b Informative. boundingBox SHOULD NOT be used to calculate the position of the tiles in the CRS space; please use topLeftCorner of the corresponding TileMatrix instead. If data is not available for all tiled space, TileMatrixSetLimits will declare what the tiles have data (see section 7.2). c When a tile matrix set conforms to a well-known scale set it can reference it by its URI. If used, the well-known scale set SHALL be consistent with the supportedCRS and with the scaleDenominators of the tileMatrix parameters. d Commonly more than one. Each tileMatrix of a tileMatrixSet SHALL have a unique (different) scaleDenominator. e Some possible values are defined the in Annex C. f If no Title is specified, a client may display the Identifier value instead. g TileMatrixSet identifies SHALL be unique (different) for each TileMatrixSet of a server. |
Names | Definition | Data type and values | Multiplicity and use |
---|---|---|---|
identifier Identifier |
Tile matrix identifier c |
ows:CodeType, as adaptation of MD_Identifier class ISO 19115 |
One (mandatory) |
title a Title |
Title of this style, normally used for display to a human |
LanguageString data structure, see Figure 15 in OWS Common [OGC 06-121r9] |
Zero or more (optional) Include when available and useful Include one for each language represented d |
abstract a Abstract |
Brief narrative description of this style, normally available for display to a human |
LanguageString data structure, see Figure 15 in OWS Common [OGC 06-121r9] |
Zero or more (optional) Include when available and useful Include one for each language represented |
keywordsc Keywords |
Unordered list of one or more commonly used or formalized word(s) or phrase(s) used to describe this dataset |
MD_Keywords class in ISO 19115 |
Zero or more (optional) One for each keyword authority used |
scaleDenominator ScaleDenominator |
Scale denominator level of this tile matrix g |
Double type |
One (mandatory) |
topLeftCorner TopLeftCorner |
Position in CRS coordinates of the top-left corner of this tile matrix |
Ordered sequence of double values b |
One (mandatory) |
tileWidth TileWidth |
Width of each tile of this tile matrix in pixels |
Positive integer type |
One (mandatory) |
tileHeight TileHeight |
Height of each tile of this tile matrix in pixels |
Positive integer type |
One (mandatory) |
matrixWidth MatrixWidth |
Width of the matrix (number of tiles in width) |
Positive integer type |
One (mandatory) |
matrixHeight MatrixHeight |
Height of the matrix (number of tiles in height) |
Positive integer type |
One (mandatory) |
a The multilingual scoping rules in subclause 10.7.3 of OWS Common [OGC 06-121r9] SHALL apply. b CRS will be inherited from the supportedCRS parameter of the parent TileMatrixSet. The order of these axes shall be as specified by the supportedCRS. These are the precise coordinates of the top left corner of top left pixel of the 0,0 tile. See Figure 1. c This TileMatrix identifiers SHALL be unique (different) within the context of the parent TileMatrixSet. Many applications use a correlative numeric value as an identifier. Other alternatives are a rounded scale denominator or a rounded pixel size. It is recommended to avoid repeating the TileMatrixSet identifier as part of the TileMatrix identifier. d If no Title is specified, client may display the Identifier value instead. e In XML schemas ows:PositionType data type is used. See OWS 2.0 schemas (owsCommon.xsd). g The pixel size of the tile can be obtained from the scaleDenominator by multiplying the later by 0.28 10-3 / metersPerUnit. If the CRS uses meters as units of measure for the horizontal dimensions, then metersPerUnit=1; if it has degrees, then metersPerUnit=2pa/360 (a is the Earth maximum radius of the ellipsoid). |
NOTE 1: It may be desirable to define a tile matrix set with some general-scale tile matrices in one CRS (e.g., CRS:84) and with detailed-scale tile matrices in a different CRS (e.g., LCC projection). However, this standard does not allow mixing CRSs. Each tile matrix set declares a single CRS.
NOTE 2: The width (matrixWidth) and height (matrixHeith) in tiles of each tile matrix is explicitly given, so the range of relevant tile indexes does not have to be calculated by the client application.
NOTE 3: The bounding box of a tile matrix is not supplied explicitly because it can be calculated from topLeftCorner, tileWidth, tileHeight and scaleDenominator.
7.2 TileMatrixSetLimits2D requirements class
Requirements class tilematrixsetlimits2D establishes how to describe a TileMatrixSetLimits for a two-dimensional tile space. It is expected that tile matrix sets are defined in a general way (globally, if possible). Data structured in tiles could only be available in a region of in a subset of scales. This data structure allows for the declaration of a limited coverage of a tile matrix set. The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/tilematrixsetlimits2d.
Req 2 req/tilematrixsetlimits2d/model:
A tile matrix set limits 2D shall be defined following the UML model as shown in Figure 7 and model description in Table 3 and Table 4.
Dependency: http://www.opengis.net/spec/owscommon/2.0/req
Names | Definition | Data type and values | Multiplicity and use |
---|---|---|---|
tileMatrixLimits TileMatrixLimits |
Indices limits for this tileMatrix |
TileMatrixLimits data structure, see Table Table 4 |
one or more (mandatory) a |
a Multiplicity SHALL be the equal of inferior to multiplicity of tileMatrix of this tileMatrixSet. Each tileMatrix identifier shall be mentioned only once in this TileMatrixSetLimits. If a tileMatrix identifier is not mentioned, it should be interpreted as a tileMatrix that is not available. |
Names |
Definition |
Data type and values |
Multiplicity and use |
---|---|---|---|
tileMatrix TileMatrix |
Reference to a tileMatrix identifier |
ows:CodeType, as adaptation of MD_Identifier class ISO 19115 a |
One (mandatory) |
minTileRow MinTileRow |
Minimum tile row index valid for this layer. |
Non negative integer type b |
One (mandatory) |
maxTileRow MaxTileRow |
Maximim tile row index valid for this layer. |
Non negative integer type c |
One (mandatory) |
minTileCol MinTileCol |
Minimum tile column index valid for this layer. |
Non negative integer type d |
One (mandatory) |
maxTileCol MaxTileCol |
Maximim tile column index valid for this layer. |
Non negative integer type e |
One (mandatory) |
a SHALL be an identifier to a tileMatrix section of this tileMatrixSet. b From 0 to maxTileRow. c From minTileRow to matrixWidth-1 of the tileMatrix section of this tileMatrixSet. d From 0 to maxTileCol. e From minTileCol to tileHeight-1 of the tileMatrix section of this tileMatrixSet. |
7.3 TileMatrixSetLink2D requirements class
Requirements class tilematrixsetlink2D establishes how to describe a TileMatrixSetLink for a two-dimensional tile space. This data structure allows for a dataset declaring the use of a tile matrix set defined elsewhere and, if needed, a limited coverage for this tile matrix set. Each tiled dataset in a dataset collection should declare the use of a tile matrix set using this data structure. The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/tilematrixsetlink2d.
Req 3 req/tilematrixsetlink2d/identifier:
A tiled resource or dataset shall declare support to a tile matrix set 2D by link to a tile matrix set definition by citing a tile matrix set identifier defined in the same document instance or an active (resolvable) link to a TileMatrixSet definition in an external document.
NOTE: To determine if two resources or datasets use the same TileMatrixSet, compare their TileMatrixSet identifier. Alternatively, compare TileMatrixSet definitions for an equivalency (a simple calculation can be performed to verify whether or not two given tile matrices are aligned).
Req 4 req/tilematrixsetlink2d/model:
When a tiled resource or dataset has tiles available only for a region or regions of the complete tiled space, the resourceor datasetshall declare partial support to a tile matrix set 2D using one or moretile matrix set limits data structures. This will result in the following UML model shown in Figure 7 and model description in Table 5.
Dependency: req/tilematrixsetlimits
Linking to the TileMatrixSet URIs defined in the Annex D in an OGC schema repository or in an OGC registry are valid options for TileMatrixSet URIs. If the same TileMatrixSet is externally available in more than one format, it is recommended that the format selected is more close to the original document format.
Names | Definition | Data type and values | Multiplicity and use |
---|---|---|---|
tileMatrixSet TileMatrixSet |
Reference to a tileMatrixSet |
URI type Values SHALL be a tileMatrixSet identifier in service metadata document |
One (mandatory) |
tileMatrixSetLimits TileMatrixSetLimits |
Index limits for this tileMatrixSet |
TileMatrixSetLimits data structure, see Table 4 |
Zero or more (optional) Should be include when the boundary of the data is a fragment of the boundary of the tileMatrixSet a,b |
a The absence of this parameter means that tile row and tile column indices are only limited by 0 and the corresponding matrixWidth and matrixHeight for each tileMatrix of the tileMatrixSet definition. b Multiplicity more than one allows definition of more than one rectangular areas where there are tiles with data available. |
7.4 VariableMatrixWidth requirements class
This extension provides the necessary support for variable matrix width tile matrix sets.
Req 5 req/variablematrixwidth/model:
When a tiled resource or dataset has variable width tiles, the resourceor datasetshall define the variable matrix width in a tile matrix set 2D using a variablematrixwidth data structure. This will result in the following UML model shown in Figure 9 and model description in Table 6.
In order to make the description of the model more compact, only the tile rows that have coalesced (i.e., coalescence factor larger than 1) will be encoded.
Names | Definition | Data type and values | Multiplicity and use |
---|---|---|---|
coalesce Coalesce |
Coalescence factor |
Positive integer type a |
One (mandatory) |
minTileRow MinTileRow |
Minimum tile row index valid for this layer |
Non negative integer type b |
One (mandatory) |
maxTileRow MaxTileRow |
Maximum tile row index valid for this layer |
Non negative integer type c |
One (mandatory) |
a Shall be more than 1. Rows with Coalescence factor of 1 shall not be described here. b From 0 to maxTileRow. c From minTileRow to matrixWidth-1 of the tileMatrix section of this tileMatrixSet. |
Req 6 req/variablematrixwidth/coalescence1:
Only the tile rows will with coalesces factor different of one shall be encoded. It a tile row is not mentioned in the variablematrixwidth description a coalesce factor of 1 shall be considered for that row.
8. XML encoding
8.1 XMLTileMatrixSet2D requirements class
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/xml-tilematrixset2d.
Req 7 req/xml-tilematrixset2d/model:
A TileMatrixSet2D encoded in XML shall implement the class TileMatrixSet2D
Dependency: req/tilematrixset2d.
Req 8 req/xml-tilematrixset2d/schema:
A TileMatrixSet2D encoded in XML shall validate using the XML schema for a tile matrix set 2D.
Req 9 req/json-tilematrixset2d/media-type:
A TileMatrixSet2D encoded in an independent JSON document shall use the media type application/json.
NOTE: A TileMatrixSet2D description can be embedded in other file formats, such as a Service Metadata document of a WMTS service. In this case, the media type of the containing document prevails.
Annex E provides XML examples for common TileMatrixSet2D.
8.2 XMLTileMatrixSetLimits2D requirements class
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/xml-tilematrixsetlimits2d.
Req 10 req/xml-tilematrixsetlimits2d/model:
A TileMatrixSetLimits2d encoded in XML shall implement the class TileMatrixSetLimits2D
Dependency: req/tilematrixsetlimits2d.
Req 11 req/ xml-tilematrixsetlimits2d/schema:
A TileMatrixSetLimits2D encoded in XML shall validate using the XML schemas for a tile matrix set limits 2D.
NOTE: A TileMatrixSetLimits2D description is normally used as embedded in other XML documents. That is the reason an associated media type is not provided.
Annex F provides XML examples for common TileMatrixSetLimits2D.
8.3 XML TileMatrixSetLink2D
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/xml-tilematrixsetlink2d.
Req 12 req/xml-tilematrixsetlimits2d/model:
A TileMatrixSetLink2D encoded in XML shall implement the class TileMatrixSetLink2D
Dependency: req/tilematrixsetlink2d
Dependency: req/xml-tilematrixsetlimits2d.
Req 13 req/xml-tilematrixsetlink2d/schema:
A TileMatrixSetLink2D encoded in XML shall validate using the XML schema for a tile matrix set link 2D.
NOTE: A TileMatrixSetLink2D description is normally used as embedded in other XML documents. That is the reason an associated media type is not provided.
Annex F provides XML examples for common TileMatrixSetLink2D.
8.4 XML VariableMatrixWitdh
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/xml-variablematrixwidth.
Req 14 req/xml-variablematrixwidth/model:
A VariableMatrixWidth encoded in XML shall implement the class VariableMatrixWidth
Dependency: req/variablematrixwidth
Dependency: req/xml-tilematrixset2d.
Req 15 req/xml-tilematrixsetlink2d/schema:
A VariableMatrixWidth encoded in XML shall validate using the XML schema for a variable matris width.
Annex H provides JSON examples for common VariableMatrixWidth
9. JSON encoding
9.1 JSONTileMatrixSet2D
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/json-tilematrixset2d.
Req 16 req/json-tilematrixset2d/model:
A TileMatrixSet2D encoded in JSON shall implement the class TileMatrixSet2D
Dependency: req/tilematrixset2d.
Req 17 req/json-tilematrixset2d/ietf:
A TileMatrixSet2D encoded in JSON shall conform to IETF RFC7159
Req 18 req/json-tilematrixset2d/schema:
A TileMatrixSet2D encoded in JSON shall validate using the JSON schema for a tile matrix set 2D.
Req 19 req/json-tilematrixset2d/media-type:
A TileMatrixSet2D encoded in an independent JSON document shall use the media type application/json.
NOTE: A TileMatrixSet2D description can be embedded in other file formats, such as a Service Metadata document of a WMTS service. In this case, the media type of the containing document prevails.
Annex E provides JSON examples for common TileMatrixSet2D.
9.2 JSON encoding of a TileMatrixSetLimits
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/json-tilematrixsetlimits2d.
Req 20 req/json-tilematrixsetlimits2d/model:
A TileMatrixSetLimits2D encoded in JSON shall implement the class TileMatrixSetLimits2D
Dependency: req/tilematrixsetlimits2d.
Req 21 req/json-tilematrixsetlimits2d/ietf:
A TileMatrixSetLimits2D encoded in JSON shall conform to IETF RFC7159
Req 22 req/json-tilematrixsetlimits2d/schema:
A TileMatrixSetLimits2D encoded in JSON shall validate using the JSON schema for a tile matrix set limits 2D.
NOTE: A TileMatrixSetLimits2D description can be embedded in other file formats, such as a Service Metadata document of a WMTS service. In this case, the media type of the containing document prevails.
Annex F provides JSON examples for common TileMatrixSet2DLimits.
9.3 JSON encoding of a TileMatrixSetLink
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/json-tilematrixsetlink2d.
Req 23 req/json-tilematrixsetlink2d/model:
A TileMatrixSetLimits2D encoded in JSON shall implement the class TileMatrixSetLink2D
Dependency: req/tilematrixsetlink2d
Dependency: req/json-tilematrixsetlimits2d.
Req 24 req/json-tilematrixsetlink2d/ietf:
A TileMatrixSetLink2D encoded in JSON shall conform to IETF RFC7159
Req 25 req/json-tilematrixsetlink2d/schema:
A TileMatrixSetLink2D encoded in JSON shall validate using the JSON schema for a tile matrix set link 2D.
NOTE: A TileMatrixSetLink2D description can be embedded in other file formats, such as a Service Metadata document of a WMTS service. In this case, the media type of the containing document prevails.
Annex F provides JSON examples for common TileMatrixSet2DLink.
9.4 JSON VariableMatrixWitdh
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/json-variablematrixwidth.
Req 26 req/json-variablematrixwidth/model:
A VariableMatrixWidth encoded in JSON shall implement the class VariableMatrixWidth
Dependency: req/variablematrixwidth
Dependency: req/json-tilematrixset2d.
Req 27 req/json-variablematrixwidth/ietf:
A VariableMatrixWidth encoded in JSON shall conform to IETF RFC7159
Req 28 req/json-variablematrixwidth/schema:
A VariableMatrixWidth encoded in JSON shall validate using the JSON schema for a variable matrix width.
Annex H provides JSON examples for common VariableMatrixWidth.
10. JSON-LD encoding
This section establishes how to connect the JSON encoding to linked data by providing a mapping between the JSON encoding and the RDF triples model using JSON-LD. In practice, this means that a JSON file with some additional content defined in the JSON-LD syntax (http://www.w3.org/TR/json-ld) can be converted into RDF notation automatically using the JSON-LD API (http://www.w3.org/TR/json-ld-api). One implementation of this API is provided in the JSON-LD Playground (http://json-ld.org/playground/).
10.1 JSON-LDTileMatrixSet2D
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/jsonld-tilematrixset2d.
Req 29 req/jsonld-tilematrixset2d/model:
A TileMatrixSet2D encoded in JSON-LD shall implement the class TileMatrixSet2D
Dependency: req/tilematrixset2d.
Req 30 req/jsonld-tilematrixset2d/w3c:
A TileMatrixSet2D encoded in JSON-LD shall conform to W3C JSON-LD syntax version 1.
Req 31 req/jsonld-tilematrixset2d/context:
A TileMatrixSet2D encoded in JSON-LD shall include references to the JSON-LD @context for a tile matrix set 2D.
Req 32 req/jsonld-tilematrixset2d/media-type:
A TileMatrixSet2D encoded in an independent JSON-LD document shall use the media type application/jsonld.
NOTE: A TileMatrixSet2D description can be embedded in other file formats, such as a Service Metadata document of a WMTS service. In this case, the media type of the containing document prevails.
Annex G provides JSON-LD examples for common TileMatrixSet2D
10.2 JSON-LD encoding of a TileMatrixSetLimits
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/jsonld-tilematrixsetlimits2d.
Req 33 req/jsonld-tilematrixsetlimits2d/model:
A TileMatrixSetLimits2D encoded in JSON-LD shall implement the class TileMatrixSetLimits2D
Dependency: req/tilematrixsetlimits2d.
Req 34 req/jsonld-tilematrixsetlimits2d/w3c:
A TileMatrixSetLimits2D encoded in JSON-LD shall conform to W3C JSON-LD syntax version 1.
Req 35 req/jsonld-tilematrixsetlimits2d/context:
A TileMatrixSetLimits2D encoded in JSON-LD shall include references to the @conted for a tile matrix set limits 2D.
NOTE: A TileMatrixSetLimits2D description can be embedded in other file formats, such as a Service Metadata document of a WMTS service. In this case, the media type of the containing document prevails.
10.3 JSON-LD encoding of a TileMatrixSetLink
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/jsonld-tilematrixsetlink2d.
Req 36 req/jsonld-tilematrixsetlink2d/model:
A TileMatrixSetLimits2D encoded in JSON-LD shall implement the class TileMatrixSetLink2D
Dependency: req/tilematrixsetlink2d
Dependency: req/json-tilematrixsetlimits2d.
Req 37 req/jsonld-tilematrixsetlink2d/w3c:
A TileMatrixSetLink2D encoded in JSON-LD shall conform to W3C JSON-LD syntax version 1.
Req 38 req/jsonld-tilematrixsetlink2d/context:
A TileMatrixSetLink2D encoded in JSON-LD shall include references to the @context for a tile matrix set link 2D.
NOTE: A TileMatrixSetLink2D description can be embedded in other file formats, such as a Service Metadata document of a WMTS service. In this case, the media type of the containing document prevails.
10.4 JSON-LD encoding of a VariableMatrixWidth
The identifying URI for this class is http://www.opengis.net/spec/tilematrixset/1.0/req/jsonld-variablematrixwidth.
Req 39 req/jsonld-variablematrixwidth/model:
A VariableMatrixWidth encoded in JSON-LD shall implement the class VariableMatrixWidth
Dependency: req/tilematrixsetlink2d
Dependency: req/json-tilematrixsetlimits2d.
Req 40 req/jsonld-variablematrixwidth/w3c:
A VariableMatrixWidth encoded in JSON-LD shall conform to W3C JSON-LD syntax version 1.
Req 41 req/jsonld-variablematrixwidth/context:
A VariableMatrixWidth encoded in JSON-LD shall include references to the @context for a variable matrix width.
Annex A: Conformance Class Abstract Test Suite (Normative)
A TileMatrixSet implementation of this standard must satisfy the following system characteristics to be conformant with this specification.
A.1 Conformance class: TileMatrixSet2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/tilematrixset2d
Tests identifiers below are relative to http://www.opengis.net/spec/tilematrixset/1.0
A.1.1 Model | |
Test id: |
conf/tilematrixset2d/model |
Test Purpose: |
Req 1 req/tilematrixset2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSet2D instances point to the TileMatrixSet2D data type definition and follow the data model specified in Table 1 and Table 2 and its dependencies. |
A.2 Conformance class: TileMatrixSetLimits2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/tilematrixsetlimits2d
A.2.1 Model | |
Test id: |
tilematrixsetlimits2d/model |
Test Purpose: |
Req 2 req/tilematrixsetlimits2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSetLimits2D instances point to the TileMatrixSetLimits2D data type definition and follow the data model specified in Table 3 and Table 4 and its dependencies. |
A.3 Conformance class: TileMatrixSetLink2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/tilematrixsetlink2d
A.3.1 Model | |
Test id: |
tilematrixsetlink2d/identifier |
Test Purpose: |
Req 3 req/tilematrixsetlink2d/identifier: |
Test method: |
Validate the requirements of the model Test passes if all TileMatrixSetLink2D elements in the instance cite a tile matrix set by mentioning at least one TileMatrixSet identifier or by using a URI that can be resolved into a TileMatrixSet2D. |
A.3.2 Identifier | |
Test id: |
tilematrixsetlink2d/model |
Test Purpose: |
Req 4 req/tilematrixsetlink2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSetLink2D instances point to the TileMatrixSetLink2D data type definition and follow the data model specified in Table 5 and its dependencies. |
A.4 Conformance class: VariableMatrixWidth
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/variablematrixwidth
A.4.1 Model | |
Test id: |
variablematrixwidth/model |
Test Purpose: |
Req 5 req/variablematrixwidth/model: |
Test method: |
Validate the requirements of the model Test passes if VariableMatrixWidth instances point to the VariableMatrixWidth data type definition and follow the data model specified in Table 6 and its dependencies. |
A.4.2 Identifier | |
Test id: |
variablematrixwidth/coalescence1 |
Test Purpose: |
Req 6 req/variablematrixwidth/coalescence1: |
Test method: |
Validate the requirements of the model Test passes if all VariableMatrixWidth elements in the instance has a coalescence factor bigger than 1. |
A.5 Conformance class: XML Encoding for TileMatrixSet2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/xml-tilematrixset2d
A.5.1 Model | |
Test id: |
xml-tilematrixset2d/model |
Test Purpose: |
Req 7 req/xml-tilematrixset2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSet2D instances use a TileMatrixSet2D XML data type definition that follows the data model specified in Table 1 and Table 2 and its dependencies. |
A.5.2 Schema | |
Test id: |
xml-tilematrixset2d/schema |
Test Purpose: |
Req 8 req/xml-tilematrixset2d/schema: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSet2D XML instances pass validation against the tile matrix set 2D XML Schemas. |
A.5.3 Media type | |
Test id: |
xml-tilematrixset2d/media-type |
Test Purpose: |
Req 9 req/json-tilematrixset2d/media-type: |
Test method: |
Validate the requirements of the media type Test passes if the independent instances of TileMatrixSet2D are exposed as application/xml MIME type. |
A.6 Conformance class: XML Encoding for TileMatrixSetLimits2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/xml-tilematrixsetlimits2d
A.6.1 Model | |
Test id: |
xml-tilematrixsetlimits2d/model |
Test Purpose: |
Req 10 req/xml-tilematrixsetlimits2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSetLimits2D instances point to the TileMatrixSetLimits2D data type definition and follow the data model specified in Table 3 and Table 4 and its dependencies. |
A.6.2 Schema | |
Test id: |
xml-tilematrixsetlimits2d/schema |
Test Purpose: |
Req 11 req/ xml-tilematrixsetlimits2d/schema: |
Test method: |
Validate the requirements of the schema Test passes if TileMatrixSetLimits2D XML instances pass validation against the tile matrix set limits 2D XML Schemas. |
A.7 Conformance class: XML Encoding for TileMatrixSetLink2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/xml-tilematrixsetlink2d
A.7.1 Model | |
Test id: |
xml-tilematrixsetlink2d/model |
Test Purpose: |
Req 12 req/xml-tilematrixsetlimits2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSetLink2D instances use a TileMatrixSetLink2D XML data type definition that follows the data model specified in Table 5 and its dependencies. |
A.7.2 Schema | |
Test id: |
xml-tilematrixsetlink2d/schema |
Test Purpose: |
Req 13 req/xml-tilematrixsetlink2d/schema: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSetLink2D XML instances pass validation against the tile matrix set link 2D XML Schemas. |
A.8 Conformance class: XML Encoding for VariableMatrixWidth
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/xml-variablematrixwidth
A.8.1 Model | |
Test id: |
xml-variablematrixwidth/model |
Test Purpose: |
Req 12 req/xml-tilematrixsetlimits2d/model: |
Test method: |
Validate the requirements of the model Test passes if VariableMatrixWidth instances use a VariableMatrixWidth XML data type definition that follows the data model specified in Table 6 and its dependencies. |
A.8.2 Schema | |
Test id: |
xml-variablematrixwidth/schema |
Test Purpose: |
Req 13 req/xml-tilematrixsetlink2d/schema: |
Test method: |
Validate the requirements of the model Test passes if VariableMatrixWidth XML instances pass validation against the variable matrix width XML Schemas. |
A.9 Conformance class: JSON Encoding for TileMatrixSet2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/json-tilematrixset2d
A.9.1 Model | |
Test id: |
json-tilematrixset2d/model |
Test Purpose: |
Req 16 req/xml-tilematrixset2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSet2D instances follow the data model specified in Table 1 and Table 2 and its dependencies. |
A.9.2 IETF | |
Test id: |
json-tilematrixset2d/ietf |
Test Purpose: |
Req 17 req/json-tilematrixset2d/ietf: |
Test method: |
Validate the requirements of the IETF Test passes if TileMatrixSet2D JSON instances pass format validation against the IETF rules. |
A.9.3 Schema | |
Test id: |
json-tilematrixset2d/schema |
Test Purpose: |
Req 18 req/json-tilematrixset2d/schema: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSet2D JSON instances pass validation against the tile matrix set 2D JSON Schemas. |
A.9.4 Media type | |
Test id: |
json-tilematrixset2d/media-type |
Test Purpose: |
Req 19 req/json-tilematrixset2d/media-type: |
Test method: |
Validate the requirements of the media type Test passes if the independent instances of TileMatrixSet2D are exposed as application/json media type. |
A.10 Conformance class: JSON Encoding for TileMatrixSetLimits2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/json-tilematrixsetlimits2d
A.10.1 Model | |
Test id: |
json-tilematrixsetlimits2d/model |
Test Purpose: |
Req 20 req/json-tilematrixsetlimits2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSetLimits2D instances follow the data model specified in Table 3 and Table 4 and its dependencies. |
A.10.2 IETF | |
Test id: |
json-tilematrixsetlimits2d/ietf |
Test Purpose: |
Req 21 req/json-tilematrixsetlimits2d/ietf: |
Test method: |
Validate the requirements of the IETF Test passes if TileMatrixSetLimits2D JSON instances pass format validation against the IETF rules. |
A.10.3 Schema | |
Test id: |
json-tilematrixsetlimits2d/schema |
Test Purpose: |
Req 22 req/json-tilematrixsetlimits2d/schema: |
Test method: |
Validate the requirements of the schema Test passes if TileMatrixSetLimits2D JSON instances pass validation against the tile matrix set limits 2D JSON Schemas. |
A.11 Conformance class: JSON Encoding for TileMatrixSetLink2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/json-tilematrixsetlink2d
A.11.1 Model | |
Test id: |
json-tilematrixsetlink2d/model |
Test Purpose: |
Req 23 req/json-tilematrixsetlink2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSetLink2D instances follow the data model specified in Table 5 and its dependencies. |
A.11.2 IETF | |
Test id: |
json-tilematrixsetlink2d/ietf |
Test Purpose: |
Req 24 req/json-tilematrixsetlink2d/ietf: |
Test method: |
Validate the requirements of the IETF rules Test passes if TileMatrixSetLink2D JSON instances pass format validation against the IETF rules. |
A.11.3 Schema | |
Test id: |
json-tilematrixsetlink2d/schema |
Test Purpose: |
Req 25 req/json-tilematrixsetlink2d/schema: |
Test method: |
Validate the requirements of the schema Test passes if TileMatrixSetLink2D JSON instances pass validation against the tile matrix set link 2D JSON Schemas. |
A.12 Conformance class: JSON Encoding for VariableMatrixWidth
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/json-variablematrixwidth
A.12.1 Model | |
Test id: |
json-variablematrixwidth/model |
Test Purpose: |
Req 26 req/json-variablematrixwidth/model: |
Test method: |
Validate the requirements of the model Test passes if VariableMatrixWidth instances follow the data model specified in Table 6 and its dependencies. |
A.12.2 IETF | |
Test id: |
json-variablematrixwidth/ietf |
Test Purpose: |
Req 27 req/json-variablematrixwidth/ietf: |
Test method: |
Validate the requirements of the IETF rules Test passes if VariableMatrixWidth JSON instances pass format validation against the IETF rules. |
A.12.3 Schema | |
Test id: |
json-variablematrixwidth/schema |
Test Purpose: |
Req 28 req/json-variablematrixwidth/schema: |
Test method: |
Validate the requirements of the schema Test passes if VariableMatrixWidth JSON instances pass validation against the variable matrix width JSON Schemas. |
A.13 Conformance class: JSON-LD Encoding for TileMatrixSet2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/jsonld-tilematrixset2d
A.13.1 Model | |
Test id: |
jsonld-tilematrixset2d/model |
Test Purpose: |
Req 29 req/jsonld-tilematrixset2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSet2D JSON-LD encoded instances follow the data model specified in Table 1 and Table 2 and its dependencies. |
A.13.2 W3C | |
Test id: |
jsonld-tilematrixset2d/w3c |
Test Purpose: |
Req 30 req/jsonld-tilematrixset2d/w3c: |
Test method: |
Validate the requirements of the W3C Test passes if TileMatrixSet2D JSON-LD instances pass format validation against the W3C rules. |
A.13.3 Context | |
Test id: |
jsonld-tilematrixset2d/context |
Test Purpose: |
Req 31 req/jsonld-tilematrixset2d/context: |
Test method: |
Validate the requirements of the @context Test passes if the relevant references to @context documents for tile matrix set 2D are included. |
A.13.4 Media type | |
Test id: |
jsonld-tilematrixset2d/media-type |
Test Purpose: |
Req 32 req/jsonld-tilematrixset2d/media-type: |
Test method: |
Validate the requirements of the media type Test passes if the independent instances of TileMatrixSet2D are exposed as application/jsonld media type. |
A.14 Conformance class: JSON-LD Encoding for TileMatrixSetLimits2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/jsonld-tilematrixsetlimits2d
A.14.1 Model | |
Test id: |
jsonld-tilematrixsetlimits2d/model |
Test Purpose: |
Req 33 req/jsonld-tilematrixsetlimits2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSetLimits2D JSON-LD instances follow the data model specified in Table 3 and Table 4 and its dependencies. |
A.14.2 W3C | |
Test id: |
jsonld-tilematrixsetlimits2d/w3c |
Test Purpose: |
Req 34 req/jsonld-tilematrixsetlimits2d/w3c: |
Test method: |
Validate the requirements of the W3C Test passes if TileMatrixSetLimits2D JSON-LD instances pass format validation against the W3C rules. |
A.14.3 Context | |
Test id: |
jsonld-tilematrixsetlimits2d/context |
Test Purpose: |
Req 35 req/jsonld-tilematrixsetlimits2d/context: |
Test method: |
Validate the requirements of the @context Test passes if the relevant references to @context documents for tile matrix set limits 2D are included |
A.15 Conformance class: JSON-LD Encoding for TileMatrixSetLink2D
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/jsonld-tilematrixsetlink2d
A.15.1 Model | |
Test id: |
jsonld-tilematrixsetlink2d/model |
Test Purpose: |
Req 36 req/jsonld-tilematrixsetlink2d/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSetLink2D JSON-LD instances follow the data model specified in Table 5 and its dependencies. |
A.15.2 W3C | |
Test id: |
jsonld-tilematrixsetlink2d/w3c |
Test Purpose: |
Req 37 req/jsonld-tilematrixsetlink2d/w3c: |
Test method: |
Validate the requirements of the W3C rules Test passes if TileMatrixSet2D JSON-LD instances pass format validation against the W3C rules. |
A.15.3 Context | |
Test id: |
jsonld-tilematrixsetlink2d/context |
Test Purpose: |
Req 38 req/jsonld-tilematrixsetlink2d/context: |
Test method: |
Validate the requirements of the @context Test passes if the relevant references to @context documents for tile matrix set links 2D are included. |
A.16 Conformance class: JSON-LD Encoding for VariableMatrixWidth
The OGC URI identifier of this conformance class is:
http://www.opengis.net/spec/tilematrixset/1.0/conf/jsonld-variablematrixwidth
A.16.1 Model | |
Test id: |
jsonld-variablematrixwidth/model |
Test Purpose: |
Req 39 req/jsonld-variablematrixwidth/model: |
Test method: |
Validate the requirements of the model Test passes if TileMatrixSetLink2D JSON-LD instances follow the data model specified in Table 5 and its dependencies. |
A.16.2 W3C | |
Test id: |
jsonld-variablematrixwidth/w3c |
Test Purpose: |
Req 40 req/jsonld-variablematrixwidth/w3c: |
Test method: |
Validate the requirements of the W3C rules Test passes if TileMatrixSet2D JSON-LD instances pass format validation against the W3C rules. |
A.16.3 Context | |
Test id: |
jsonld-variablematrixwidth/context |
Test Purpose: |
Req 41 req/jsonld-variablematrixwidth/context: |
Test method: |
Validate the requirements of the @context Test passes if the relevant references to @context documents for variable matrix with are included. |
Annex B: Schema Documents (Normative)
In addition to this document, this standard includes several normative Schema Documents. These Schema Documents are posted online at the URL http://schemas.opengis.net/tms/1.0.
B.1 XML Schema
The main XML Schema Document is situated in the xml subfolder and it is named:
xml/tms.xsd
It includes the schemas necessary to XML validate the class XMLTileMatrixSet2D. The xml/examples subfolder is provided with the complete set of XML instances that are also provided in the Annex E of this document. In addition, the file named:
xml/examples/LayerWithTMSLink.xsd
contains the schemas necessary to XML-validate the class XMLTileMatrixSetLimits2D and XMLTileMatrixSetLink2D. The XML example LayerWithTMSLink.xml illustrates how to use this function.
B.2 JSON Schema
The main JSON Schema Document is situated in the json subfolder and it is named:
json/tms-schema.json
It includes the schemas necessary to JSON-validate the class JSONTileMatrixSet2D. The json/examples subfolder is provided with the complete set of JSON Documents that are also provided in Annex E of this document. In addition, the file named:
json/examples/LayerWithTMSLink-schema.json
contains the schemas necessary to JSON-validate the class JSONTileMatrixSetLimits2D and JSONTileMatrixSetLink2D. The JSON example LayerWithTMSLink.json illustrates how to use this function.
B.3 JSON-LD and Turtle
The JSON-LD @context documents are situated in the rdf subfolder and it is named:
rdf/tms-context.json
rdf/tms-boundingbox-context.json
rdf/tms-tilematrix-context.json
rdf/tms-variablematrixwidth-context.json
This @context documents can be used to transform any JSON document into a RDF document using a JSON-LD engine. They support the class JSONLDTileMatrixSet2D. The json/examples subfolder provides an example of JSON documents that includes the @context documents to become a JSON-LD file. It also contains the result of its automatic transformation to RDF turtle:
rdf/examples/ WorldCRS84QuadVariableWidth.json
rdf/examples/ WorldCRS84QuadVariableWidth.n3
Annex C: Well-known scale sets (Informative)
The following well-known scale sets (WKSS) are defined in this standard. To be conformant to a WKSS, the dataset of resource should be available from the first or second largest scale denominator on the following tables and all intermediate scale denominators down to the most detailed scale resolution of that dataset. In other words, it is not required to support the largest scale denominator and the smallest scale denominators in order to be conformant to a WKSS. Cell sizes (pixel size in terrain units) are calculated assuming 0.28 mm pixel size and the WGS84 equatorial Earth diameter.
The WKSS concept was introduced in WMTS to improve interoperability, but experience has demonstrated that the use of Common TileMatrixSet2D (Annex D) is even better. The use of WKSS is no longer encouraged by this standard.
C.1 GlobalCRS84Scale (http://www.opengis.net/def/wkss/OGC/1.0/GlobalCRS84Scale)
This WKSS has been defined for global cartographic products. Rounded scales have been chosen for intuitive cartographic representation of vector data. The scale denominator is only accurate near the Equator.
CRS | Scale Denominator | Pixel Size (degrees) |
---|---|---|
http://www.opengis.net/def/crs/OGC/1.3/CRS84 |
500 106 |
1.25764139776733 |
250 106 |
0.628820698883665 |
|
100 106 |
0.251528279553466 |
|
50 106 |
0.125764139776733 |
|
25 106 |
6.28820698883665 10-2 |
|
10 106 |
2.51528279553466 10-2 |
|
5 106 |
1.25764139776733 10-2 |
|
2.5 106 |
6.28820698883665 10-3 |
|
1 106 |
2.51528279553466 10-3 |
|
500 103 |
1.25764139776733 10-3 |
|
250 103 |
6.28820698883665 10-4 |
|
100 103 |
2.51528279553466 10-4 |
|
50 103 |
1.25764139776733 10-4 |
|
25 103 |
6.28820698883665 10-5 |
|
10 103 |
2.51528279553466 10-5 |
|
5 103 |
1.25764139776733 10-5 |
|
2.5 103 |
6.28820698883665 10-6 |
|
1 103 |
2.51528279553466 10-6 |
|
500 |
1.25764139776733 10-6 |
|
250 |
6.28820698883665 10-7 |
|
100 |
2.51528279553466 10-7 |
|
C.2 GlobalCRS84Pixel (http://www.opengis.net/def/wkss/OGC/1.0/GlobalCRS84Pixel)
This WKSS has been defined for global cartographic products. Rounded pixel sizes have been chosen for intuitive cartographic representation of raster data. Some values have been chosen to coincide with original pixel size of commonly used global products like STRM (1" and 3“), GTOPO (30”) or ETOPO (2’ and 5’). The scale denominator and approximated pixel size in meters are only accurate near the Equator.
CRS | Scale Denominator | Pixel Size (degrees) | Approx. Pixel Size (m) |
---|---|---|---|
http://www.opengis.net/def/crs/OGC/1.3/CRS84 |
795139219.9519541 |
2 |
240000 |
397569609.9759771 |
1 |
120000 |
|
198784804.9879885 |
0.5 (30') |
60000 |
|
132523203.3253257 |
0.333333333333333 (20') |
40000 |
|
66261601.66266284 |
0.166666666666667 (10') |
20000 |
|
33130800.83133142 |
8.333333333333333 10-2 (5') |
10000 |
|
13252320.33253257 |
3.333333333333333 10-2 (2') |
4000 |
|
6626160.166266284 |
1.666666666666667 10-2 (1') |
2000 |
|
3313080.083133142 |
8.333333333333333 10-3 (30") |
1000 |
|
1656540.041566571 |
4.166666666666667 10-3 (15") |
500 |
|
552180.0138555236 |
1.388888888888889 10-3 (5") |
166 |
|
331308.0083133142 |
8.333333333333333 10-4 (3") |
100 |
|
110436.0027711047 |
2.777777777777778 10-4 (1") |
33 |
|
55218.00138555237 |
1.388888888888889 10-4 (0.5") |
16 |
|
33130.80083133142 |
8.333333333333333 10-5 (0.3") |
10 |
|
11043.60027711047 |
2.777777777777778 10-5 (0.1") |
3 |
|
3313.080083133142 |
8.333333333333333 10-6 (0.03") |
1 |
|
1104.360027711047 |
2.777777777777778 10-6 (0.01") |
0.33 |
|
C.3 GoogleCRS84Quad (http://www.opengis.net/def/wkss/OGC/1.0/GoogleCRS84Quad)
This WKSS has been defined to allow quadtree pyramids in CRS84. The scale denominator is only accurate near the equator.
CRS | Scale Denominator | Pixel Size (degrees) |
---|---|---|
http://www.opengis.net/def/crs/OGC/1.3/CRS84 |
559082264.0287178 |
1.40625000000000 |
279541132.0143589 |
0.703125000000000 |
|
139770566.0071794 |
0.351562500000000 |
|
69885283.00358972 |
0.175781250000000 |
|
34942641.50179486 |
8.78906250000000 10-2 |
|
17471320.75089743 |
4.39453125000000 10-2 |
|
8735660.375448715 |
2.19726562500000 10-2 |
|
4367830.187724357 |
1.09863281250000 10-2 |
|
2183915.093862179 |
5.49316406250000 10-3 |
|
1091957.546931089 |
2.74658203125000 10-3 |
|
545978.7734655447 |
1.37329101562500 10-3 |
|
272989.3867327723 |
6.86645507812500 10-4 |
|
136494.6933663862 |
3.43322753906250 10-4 |
|
68247.34668319309 |
1.71661376953125 10-4 |
|
34123.67334159654 |
8.58306884765625 10-5 |
|
17061.83667079827 |
4.29153442382812 10-5 |
|
8530.918335399136 |
2.14576721191406 10-5 |
|
4265.459167699568 |
1.07288360595703 10-5 |
|
2132.729583849784 |
5.36441802978516 10-6 |
|
NOTE: The first scale denominator allows representation of the whole world in a single tile of 256x256 pixels, where 128 lines of the tile are left blank. The latter is the reason why in the Annex D.2 "World CRS84 Quad TileMatrixSet definition (http://www.opengis.net/def/tilematrixset/OGC/1.0/WorldCRS84Quad)" this level is not used. The next level allows representation of the whole world in 2x1 tiles of 256x256 pixels and so on in powers of 2.
NOTE2: Selecting the word “Google” for this WKSS id is maintained for backwards compatibility even if the authors recognize that it was an unfortunate selection and might result confusing since the “Google-like” tiles do not use CRS84.
C.4 GoogleMapsCompatible (http://www.opengis.net/def/wkss/OGC/1.0/GoogleMapsCompatible)
This well-known scale set has been defined to be compatible with many mass marked implementations such as Google Maps, Microsoft Bing Maps (formerly Microsoft Live Maps) and Open Street Map tiles. The scale denominator and pixel size are only accurate near the equator.
CRS | Zoom level name | Scale Denominator | Pixel Size (m) |
---|---|---|---|
http://www.opengis.net/def/crs/EPSG/6.18:3/3857 WGS 84 / Pseudo-Mercator http://www.epsg-registry.org/export.htm?gml= http://www.opengis.net/def/crs/EPSG/0/3857 |
0 |
559082264.0287178 |
156543.0339280410 |
1 |
279541132.0143589 |
78271.51696402048 |
|
2 |
139770566.0071794 |
39135.75848201023 |
|
3 |
69885283.00358972 |
19567.87924100512 |
|
4 |
34942641.50179486 |
9783.939620502561 |
|
5 |
17471320.75089743 |
4891.969810251280 |
|
6 |
8735660.375448715 |
2445.984905125640 |
|
7 |
4367830.187724357 |
1222.992452562820 |
|
8 |
2183915.093862179 |
611.4962262814100 |
|
9 |
1091957.546931089 |
305.7481131407048 |
|
10 |
545978.7734655447 |
152.8740565703525 |
|
11 |
272989.3867327723 |
76.43702828517624 |
|
12 |
136494.6933663862 |
38.21851414258813 |
|
13 |
68247.34668319309 |
19.10925707129406 |
|
14 |
34123.67334159654 |
9.554628535647032 |
|
15 |
17061.83667079827 |
4.777314267823516 |
|
16 |
8530.918335399136 |
2.388657133911758 |
|
17 |
4265.459167699568 |
1.194328566955879 |
|
18 |
2132.729583849784 |
0.5971642834779395 |
|
19 |
1066.364791924892 |
0.2985821417389697 |
|
20 |
533.1823959624460 |
0.1492910708694849 |
|
21 |
266.5911979812230 |
0.07464553543474244 |
|
22 |
133.2955989906115 |
0.03732276771737122 |
|
23 |
66.64779949530575 |
0.01866138385868561 |
|
24 |
33.32389974765287 |
0.009330691929342805 |
|
NOTE: Level 0 allows representing most of the world (limited to latitudes between approximately ±85 degrees) in a single tile of 256x256 pixels (Mercator projection cannot cover the whole world because mathematically the poles are at infinity). The next level represents most of the world in 2x2 tiles of 256x256 pixels and so on in powers of 2.
C.5 WorldMercatorWGS84 (http://www.opengis.net/def/wkss/OGC/1.0/ WorldMercatorWGS84)
This well-known scale set has been defined as similar to Google Maps and Microsoft Bing Maps but using the WGS84 ellipsoid. The scale denominator and pixel size are only accurate near the equator.
CRS | Zoom level name | Scale Denominator | Pixel Size (m) |
---|---|---|---|
http://www.opengis.net/def/crs/EPSG/0/3395 WGS 84 / World Mercator |
0 |
559082264.02871774 |
156543.033928040 |
1 |
279541132.01435887 |
78271.5169640205 |
|
2 |
139770566.00717943 |
39135.7584820102 |
|
3 |
69885283.003589718 |
19567.8792410051 |
|
4 |
34942641.501794859 |
9783.93962050256 |
|
5 |
17471320.750897429 |
4891.96988102512 |
|
6 |
8735660.3754487147 |
2445.98490512564 |
|
7 |
4367830.1877243573 |
1222.99245256282 |
|
8 |
2183915.0938621786 |
611.496226281410 |
|
9 |
1091957.5469310893 |
305.748113140705 |
|
10 |
545978.77346554467 |
152.874056570352 |
|
11 |
272989.38673277233 |
76.4370282851762 |
|
12 |
136494.69336638616 |
38.2185141425881 |
|
13 |
68247.346683193084 |
19.1092570712940 |
|
14 |
34123.673341596542 |
9.55462853564703 |
|
15 |
17061.836670798271 |
4.77731426782351 |
|
16 |
8530.9183353991355 |
2.38865713391175 |
|
17 |
4265.4591676995677 |
1.19432856695587 |
|
18 |
2132.7295838497838 |
0.59716428347793 |
|
19 |
1066.3647919248919 |
0.29858214173896 |
|
20 |
533.18239596244597 |
0.14929107086948 |
|
21 |
266.59119798122298 |
0.07464553543474 |
|
22 |
133.29559899061149 |
0.03732276771737 |
|
23 |
66.647799495305746 |
0.01866138385868 |
|
24 |
33.323899747652873 |
0.00933069192934 |
|
NOTE: Level 0 allows representing most of the world (limited to latitudes between approximately ±85 degrees) in a single tile of 256x256 pixels (Mercator projection cannot cover the whole world because mathematically the poles are at infinity). The next level represents most of the world in 2x2 tiles of 256x256 pixels and so on in powers of 2.
NOTE2: Mercator projection distorts the pixel size closer to the poles. The pixel sizes provided here are only valid next to the equator.
Annex D: Common TileMatrixSet definitions (Informative)
This Annex includes some definitions for TileMatrixSets that are commonly used.
D.1 Web Mercator Quad TileMatrixSet definition (http://www.opengis.net/def/tilematrixset/OGC/1.0/WebMercatorQuad).
CRS: http://www.opengis.net/def/crs/EPSG/0/3857, WGS 84 / Pseudo-Mercator BBOX LowerCorner: -20037508.3427892 -20037508.3427892 (lat/long: -85.0511287798,-180) BBOX UpperCorner: 20037508.3427892 20037508.3427892 (lat/long: 85.0511287798,180) WellKnownScaleSet: http://www.opengis.net/def/wkss/OGC/1.0/GoogleMapsCompatible TopLeftCorner: -20037508.3427892 20037508.3427892 TileWidth: 256 TileHeight: 256 |
||||
TileMatrix id |
Scale Denominator |
Pixel Size (m) |
Matrix Width |
Matrix Height |
0 |
559082264.0287178 |
156543.0339280410 |
1 |
1 |
1 |
279541132.0143589 |
78271.51696402048 |
2 |
2 |
2 |
139770566.0071794 |
39135.75848201023 |
4 |
4 |
3 |
69885283.00358972 |
19567.87924100512 |
8 |
8 |
4 |
34942641.50179486 |
9783.939620502561 |
16 |
16 |
5 |
17471320.75089743 |
4891.969810251280 |
32 |
32 |
6 |
8735660.375448715 |
2445.984905125640 |
64 |
64 |
7 |
4367830.187724357 |
1222.992452562820 |
128 |
128 |
8 |
2183915.093862179 |
611.4962262814100 |
256 |
256 |
9 |
1091957.546931089 |
305.7481131407048 |
512 |
512 |
10 |
545978.7734655447 |
152.8740565703525 |
1024 |
1024 |
11 |
272989.3867327723 |
76.43702828517624 |
2048 |
2048 |
12 |
136494.6933663862 |
38.21851414258813 |
4096 |
4096 |
13 |
68247.34668319309 |
19.10925707129406 |
8192 |
8192 |
14 |
34123.67334159654 |
9.554628535647032 |
16384 |
16384 |
15 |
17061.83667079827 |
4.777314267823516 |
32768 |
32768 |
16 |
8530.918335399136 |
2.388657133911758 |
65536 |
65536 |
17 |
4265.459167699568 |
1.194328566955879 |
131072 |
131072 |
18 |
2132.729583849784 |
0.5971642834779395 |
262144 |
262144 |
1066.36479192489 |
0.2985821417389700 |
524288 |
524288 |
|
20 |
533.182395962445 |
0.1492910708694850 |
1048576 |
1048576 |
21 |
266.591197981222 |
0.0746455354347424 |
2097152 |
2097152 |
22 |
133.295598990611 |
0.0373227677173712 |
4194304 |
4194304 |
23 |
66.6477994953056 |
0.0186613838586856 |
8388608 |
8388608 |
24 |
33.3238997476528 |
0.0093306919293428 |
16777216 |
16777216 |
One can define an arbitrary number of zoom levels and do not need to include all the zoom levels defined here. Here, 25 zoom levels are illustrated.
NOTE: Mercator projection distorts the pixel size the closer to the poles. The pixel sizes provided here are only valid next to the equator in the direction E-W.
NOTE 2: The CRS code 3857 is the official code for Web Mercator. An unofficial code “900913” (GOOGLE spelled with numbers) was initially assigned and is sometimes still used.
This tile matrix set is the most used tile matrix set in the mass market: for example, by Google Maps, Microsoft Bing Maps and Open Street Map tiles. Nevertheless, it has been long criticized because it is a based on a spherical Mercator instead of an ellipsoid. The use of WebMercatorQuad should be limited to visualization. Any additional use (including distance measurements, routing etc.) needs to use the Mercator spherical expressions to transform the coordinate to an appropriate CRS first.
NOTE3: For example, the EPSG database version 8.9 says about the 3857: “Uses spherical development of ellipsoidal coordinates. Relative to WGS 84 / World Mercator (CRS code 3395) errors of 0.7 percent in scale and differences in northing of up to 43km in the map (equivalent to 21km on the ground) may arise.”
NOTE4: The risks caused by imprecision in the use of Web Mercator is also emphasized by the US National Geospatial Agency (NGA). NGA has issued an Advisory Notice on web Mercator (http://earth-info.nga.mil/GandG/wgs84/web_mercator/index.html) that says that “it may cause geo-location / geo-coordinate errors up to 40,000 meters. This erroneous geospatial positioning information poses an unacceptable risk to global safety of navigation activities, and department of defense, intelligence community, and allied partner systems, missions, and operations that require accurate and precise positioning and navigation information.” The use of WorldMercatorWGS84Quad is recommended.
D.2 World CRS84 Quad TileMatrixSet definition (http://www.opengis.net/def/tilematrixset/OGC/1.0/WorldCRS84Quad)
This Tile Matrix Set defines tiles in the Equirectangular Plate Carrée projection in the CRS84 CRS for the whole world.
CRS: http://www.opengis.net/def/crs/OGC/1.3/CRS84, CRS84 BBOX LowerCorner: -180 -90 BBOX UpperCorner: 180 90 WellKnownScaleSet: http://www.opengis.net/def/wkss/OGC/1.0/GoogleCRS84Quad TopLeftCorner: -180 90 TileWidth: 256 TileHeight: 256 |
||||
TileMatrix id |
Scale Denominator |
Pixel Size (degrees) (true at the equator) |
Matrix Width |
Matrix Height |
0 |
279541132.0143589 |
0.703125000000000 |
2 |
1 |
1 |
139770566.0071794 |
0.351562500000000 |
4 |
2 |
2 |
69885283.00358972 |
0.175781250000000 |
8 |
4 |
3 |
34942641.50179486 |
8.78906250000000 10-2 |
16 |
8 |
4 |
17471320.75089743 |
4.39453125000000 10-2 |
32 |
16 |
5 |
8735660.375448715 |
2.19726562500000 10-2 |
64 |
32 |
6 |
4367830.187724357 |
1.09863281250000 10-2 |
128 |
64 |
7 |
2183915.093862179 |
5.49316406250000 10-3 |
256 |
128 |
8 |
1091957.546931089 |
2.74658203125000 10-3 |
512 |
256 |
9 |
545978.7734655447 |
1.37329101562500 10-3 |
1024 |
512 |
10 |
272989.3867327723 |
6.86645507812500 10-4 |
2048 |
1024 |
11 |
136494.6933663862 |
3.43322753906250 10-4 |
4096 |
2048 |
12 |
68247.34668319309 |
1.71661376953125 10-4 |
8192 |
4096 |
13 |
34123.67334159654 |
8.58306884765625 10-5 |
16384 |
8192 |
14 |
17061.83667079827 |
4.29153442382812 10-5 |
32768 |
16384 |
15 |
8530.918335399136 |
2.14576721191406 10-5 |
65536 |
32768 |
16 |
4265.459167699568 |
1.07288360595703 10-5 |
131072 |
65536 |
17 |
2132.729583849784 |
5.36441802978516 10-6 |
262144 |
131072 |
One can define an arbitrary number of zoom levels and do not need to include all the ones defined here. Here, 18 zoom levels are illustrated.
NOTE: The zoom level identifiers in this TileMatrixSet do not correspond to the same scale values in Annex E.3 of WMTS 1.0. In this TileMatrixSet, the TileMatrix with identifier “-1” has only one tile with 128 lines left blank. For that reason, many implementers do not want to offer this level (including the INSPIRE technical guidance) and prefer to start with a TileMatrix that represents the world with just 2 tiles (one for the negative longitudes and one for the positive longitudes).
NOTE2: The scale denominators for this TileMatrixSet and WorldMercatorWGS84Quad and WebMercatorQuad are the same but the identifiers are displaced by one. This might generate confusion.
NOTE3: for INSPIRE: The Technical Guidance for the implementation of INSPIRE View Services defines a TileMatrixSet called InspireCRS84Quad that is identical to this one. Note that the current version of the INSPIRE Technical Guidance cited in the Bibliography Annex could accidentally generate confusion because it is comparing a GoogleCRS84Quad (that is a well-known scale set name) with the InspireCRS84Quad (that is a TileMatrixSet definition that does not link to any WKSS).
NOTE4: Some implementers prefer to define this TileMatrixSet using the CRS http://www.opengis.net/def/crs/EPSG/0/4326. The definition is the same except that CRS coordinates are expressed in latitude, longitude order, affecting the TopLeftCorner and the BBox encoding only.
D.3 World Mercator WGS84 Quad TileMatrixSet definition (http://www.opengis.net/def/tilematrixset/OGC/1.0/WorldMercatorWGS84Quad).
CRS: http://www.opengis.net/def/crs/EPSG/0/3395, WGS 84 / World-Mercator BBOX LowerCorner: -20037508.3427892 -20037508.3427892 (lat, long: -85.08405903,-180) BBOX UpperCorner: 20037508.3427892 20037508.3427892 (lat, long: 85.08405903,180) WellKnownScaleSet: http://www.opengis.net/def/wkss/OGC/1.0/WorldMercatorWGS84 TopLeftCorner: -20037508.3427892 20037508.3427892 TileWidth: 256 TileHeight: 256 |
|||||
TileMatrix id |
Scale Denominator |
Pixel Size (m) (true at the equator) |
Pixel Size (m) at latitude ±31.0606963703645 (informative) |
Matrix Width |
Matrix Height |
0 |
559082264.02871774 |
156543.033928040 |
134217.728 |
1 |
1 |
1 |
279541132.01435887 |
78271.5169640205 |
67108.864 |
2 |
2 |
2 |
139770566.00717943 |
39135.7584820102 |
33554.432 |
4 |
4 |
3 |
69885283.003589718 |
19567.8792410051 |
16777.216 |
8 |
8 |
4 |
34942641.501794859 |
9783.93962050256 |
8388.608 |
16 |
16 |
5 |
17471320.750897429 |
4891.96988102512 |
4194.304 |
32 |
32 |
6 |
8735660.3754487147 |
2445.98490512564 |
2097.152 |
64 |
64 |
7 |
4367830.1877243573 |
1222.99245256282 |
1048.576 |
128 |
128 |
8 |
2183915.0938621786 |
611.496226281410 |
524.288 |
256 |
256 |
9 |
1091957.5469310893 |
305.748113140705 |
262.144 |
512 |
512 |
10 |
545978.77346554467 |
152.874056570352 |
131.072 |
1024 |
1024 |
11 |
272989.38673277233 |
76.4370282851762 |
65.536 |
2048 |
2048 |
12 |
136494.69336638616 |
38.2185141425881 |
32.768 |
4096 |
4096 |
13 |
68247.346683193084 |
19.1092570712940 |
16.384 |
8192 |
8192 |
14 |
34123.673341596542 |
9.55462853564703 |
8.192 |
16384 |
16384 |
15 |
17061.836670798271 |
4.77731426782351 |
4.096 |
32768 |
32768 |
16 |
8530.9183353991355 |
2.38865713391175 |
2.048 |
65536 |
65536 |
17 |
4265.4591676995677 |
1.19432856695587 |
1.024 |
131072 |
131072 |
18 |
2132.7295838497838 |
0.59716428347793 |
0.512 |
262144 |
262144 |
19 |
1066.3647919248919 |
0.29858214173896 |
0.256 |
524288 |
524288 |
20 |
533.18239596244597 |
0.14929107086948 |
0.128 |
1048576 |
1048576 |
21 |
266.59119798122298 |
0.07464553543474 |
0.064 |
2097152 |
2097152 |
22 |
133.29559899061149 |
0.03732276771737 |
0.032 |
4194304 |
4194304 |
23 |
66.647799495305746 |
0.01866138385868 |
0.016 |
8388608 |
8388608 |
24 |
33.323899747652873 |
0.00933069192934 |
0.008 |
16777216 |
16777216 |
One can define an arbitrary number of zoom levels and do not need to include all the zoom levels defined here. Here, 25 zoom levels are illustrated.
This Tile Matrix Set looks similar to the previous one (Web Mercator Quad) but this one is based on an ellipsoidal Mercator. Please note that the most northern latitude cover by this one is 85.08405903 (different from Web Mercator).
NOTE 2: The NGA Geomatics Office reminds the community to use DoD approved World Geodetic System 1984 (WGS 84) applications for all mission critical activities and encourages the use of WGS84 based tile matrix sets like this one and discourages the use of Web Mercator tiles based on Web Mercator such as WebMercatorQuad.
NOTE 3: The NGA Geomatics Office recommends the use of Universal zoom-levels scale set that are defined as true pixel size at ±31.0606963703645 degrees of latitude that implies a scale reduction at the equator of 0.857385503731176. This standard recommends the use of scale denominators at the equator for convenience.
D.4 Universal Transverse Mercator WGS84 Quad family TileMatrixSet definition (http://www.opengis.net/def/tilematrixset/OGC/1.0/UTM##WGS84Quad)
The Universal Transversal Mercator (a special case of transverse Mercator), divides the world into 60 zones by longitude. No single zone would make a global or near-global map. Therefore, this definition is a family of 60 TileMatrixSets in a single table.
##: it is a number that goes from 01 to 60 CRSs: [http://www.opengis.net/def/crs/EPSG/0/32601, http://www.opengis.net/def/crs/EPSG/0/32660] WGS 84 / UTM BBOX LowerCorner: -9501965.72931276 -20003931.4586255; lat, long: -180 -62+(##-31)*6 BBOX UpperCorner: 10501965.7293128 20003931.4586255 (lat, long: 180, 68+(##-31)*6) WellKnownScaleSet: N/A TopLeftCorner: -9501965.72931276 20003931.4586255 TileWidth: 256 TileHeight: 256 |
|||||
TileMatrix id |
Scale Denominator |
Pixel Size (m) along the central meridian |
Pixel Size (m) at a point in the Equator and at a longitude ±30.700524332812+3+(##-31)*6 |
Matrix Width |
Matrix Height |
1 |
279072704.500914 |
78140.3572602559 |
67108.864 |
1 |
2 |
2 |
139536352.250457 |
39070.178630128 |
33554.432 |
2 |
4 |
3 |
69768176.1252285 |
19535.089315064 |
16777.216 |
4 |
8 |
4 |
34884088.0626143 |
9767.5446575319 |
8388.608 |
8 |
16 |
5 |
17442044.0313071 |
4883.772328766 |
4194.304 |
16 |
32 |
6 |
8721022.01565356 |
2441.886164383 |
2097.152 |
32 |
64 |
7 |
4360511.00782678 |
1220.9430821915 |
1048.576 |
64 |
128 |
8 |
2180255.50391339 |
610.471541095749 |
524.288 |
128 |
256 |
9 |
1090127.75195670 |
305.235770547875 |
262.144 |
256 |
512 |
10 |
545063.875978348 |
152.617885273937 |
131.072 |
512 |
1024 |
11 |
272531.937989174 |
76.3089426369687 |
65.536 |
1024 |
2048 |
12 |
136265.968994587 |
38.1544713184843 |
32.768 |
2048 |
4096 |
13 |
68132.9844972935 |
19.0772356592422 |
16.384 |
4096 |
8192 |
14 |
34066.4922486467 |
9.53861782962109 |
8.192 |
8192 |
16384 |
15 |
17033.2461243234 |
4.76930891481054 |
4.096 |
16384 |
32768 |
16 |
8516.62306216168 |
2.38465445740527 |
2.048 |
32768 |
65536 |
17 |
4258.31153108084 |
1.19232722870264 |
1.024 |
65536 |
131072 |
18 |
2129.15576554042 |
0.596163614351318 |
0.512 |
131072 |
262144 |
19 |
1064.57788277021 |
0.298081807175659 |
0.256 |
262144 |
524288 |
20 |
532.288941385105 |
0.149040903587829 |
0.128 |
524288 |
1048576 |
21 |
266.144470692553 |
0.0745204517939147 |
0.064 |
1048576 |
2097152 |
22 |
133.072235346276 |
0.0372602258969574 |
0.032 |
2097152 |
4194304 |
23 |
66.5361176731382 |
0.0186301129484787 |
0.016 |
4194304 |
8388608 |
24 |
33.2680588365691 |
0.00931505647423934 |
0.008 |
8388608 |
16777216 |
One can define an arbitrary number of zoom levels and do not need to include all the zoom levels defined here. Here, 24 zoom levels are illustrated.
NOTE: The southern hemisphere ([http://www.opengis.net/def/crs/EPSG/0/32701, http://www.opengis.net/def/crs/EPSG/0/32760]) is covered by extending the UTM northern CRSs to the south in a way that the southern hemisphere CRSs are neither used nor needed.
NOTE2: The UTM projection is supposed to be used in zones that are only 3 degrees apart from the central meridian forming 6-degree wide zones. In some parts of the world, it is useful to relax this limitation to cover a wider object (for example, Spain can be fully represented in UTM30 zone if the 3-degree limit is relaxed). The farther one goes from the central meridian, the more deformations is experienced in the projection. The top left corner of this tile matrix set has been defined 65 degrees apart of the central meridian to allow much more extreme cases, but it is highly recommended that applications limit themselves to the 6-degree wide central area and use TileMatrixSetLimits to define actual boundaries of the tile indices used in this area.
NOTE 3: The NGA Geomatics Office recommends the use of Universal zoom-levels scale set that are defined as true pixel size at ±30.700524332812 degrees of longitude at both sides of the central meridian that implies a scale reduction at the central meridian of 0.85882463752355. The tiles considering this scale are exactly the same than considering true pixel size at the equation and no scale reduction. This standard recommends the use of scale denominators at the equator for convenience.
D.5 Arctic Universal Polar Stereographic WGS 84 Quad TileMatrixSet definition (http://www.opengis.net/def/tilematrixset/OGC/1.0/UPSArcticWGS84Quad)
It is difficult to find consensus in the geospatial community for what constitutes the “best” tile matrix set for the polar areas. Even if everyone agrees on using a polar stereographic, the election of the TopLeftCorner and scale denominators is almost arbitrary. This document presents the NGA recommendation for polar stereographic that allows for the representation of more than one hemisphere to 15 degrees into the opposite hemisphere and shares a common set of pixel sizes with the WorldMercatorWGS84Quad and the UTM##WGS84Quad. The selection of a CRS for a polar stereographic is difficult and this document follows several criteria (see NOTE 2). In the end, the UPS North that is commonly used in conjunction with UTM was selected.
NOTE: In Mercator or Transversal Mercator projections the first scale denominator and top left corner are selected in a way that a single tile can cover all ranges of longitudes or latitudes respectively. Due to the nature of this projection, these criteria cannot be applied. The top left corner selection deeply depends on the application. The very distant top left corner was selected here to include as many applications as possible.
CRS: http://www.opengis.net/def/crs/EPSG/0/5041, WGS 84 Universal Polar Stereographic North BBOX LowerCorner: -14440759.350252, -14440759.350252 BBOX UpperCorner: 18440759.350252, 18440759.350252 WellKnownScaleSet: N/A TopLeftCorner: -14440759.350252,18440759.350252 TileWidth: 256 TileHeight: 256 |
|||||
Tile Matrix id |
Scale Denominator |
Pixel Size (m) (true at latitude ~81) |
True Pixel Size (m) at the pole (informative) |
Matrix Width |
Matrix Height |
0 |
458726544.4 |
128443.4324 |
129218.7449 |
1 |
1 |
1 |
229363272.2 |
64221.71621 |
64609.37245 |
2 |
2 |
2 |
114681636.1 |
32110.85811 |
32304.68622 |
4 |
4 |
3 |
57340818.05 |
16055.42905 |
16152.34311 |
8 |
8 |
4 |
28670409.02 |
8027.714526 |
8076.171556 |
16 |
16 |
5 |
14335204.51 |
4013.857263 |
4038.085778 |
32 |
32 |
6 |
7167602.256 |
2006.928632 |
2019.042889 |
64 |
64 |
7 |
3583801.128 |
1003.464316 |
1009.521444 |
128 |
128 |
8 |
1791900.564 |
501.7321579 |
504.7607222 |
256 |
256 |
9 |
895950.282 |
250.866079 |
252.3803611 |
512 |
512 |
10 |
447975.141 |
125.4330395 |
126.1901806 |
1024 |
1024 |
11 |
223987.5705 |
62.71651974 |
63.09509028 |
2048 |
2048 |
12 |
111993.7852 |
31.35825987 |
31.54754514 |
4096 |
4096 |
13 |
55996.89262 |
15.67912993 |
15.77377257 |
8192 |
8192 |
14 |
27998.44631 |
7.839564967 |
7.886886285 |
16384 |
16384 |
15 |
13999.22316 |
3.919782484 |
3.943443142 |
32768 |
32768 |
16 |
6999.611578 |
1.959891242 |
1.971721571 |
65536 |
65536 |
17 |
3499.805789 |
0.979945621 |
0.985860786 |
131072 |
131072 |
18 |
1749.902894 |
0.48997281 |
0.492930393 |
262144 |
262144 |
19 |
874.9514472 |
0.244986405 |
0.246465196 |
524288 |
524288 |
20 |
437.4757236 |
0.122493203 |
0.123232598 |
1048576 |
1048576 |
21 |
218.7378618 |
0.061246601 |
0.061616299 |
2097152 |
2097152 |
22 |
109.3689309 |
0.030623301 |
0.03080815 |
4194304 |
4194304 |
23 |
54.68446545 |
0.01531165 |
0.015404075 |
8388608 |
8388608 |
24 |
27.34223273 |
0.007655825 |
0.007702037 |
16777216 |
16777216 |
One can define an arbitrary number of zoom levels and does not need to include all the zoom levels defined here. Here, 25 zoom levels are illustrated.
NOTE2: In practice, there are many polar stereographic CRS and it is difficult to prioritize one. In many occasions, the meridian of origin is selected in order to rotate the projection and allow a region to become more prominent. Examples are rotations emphasizing Greenland or Alaska. To be general, the 0 meridian of origin was selected. In addition, polar projections have a variety of standard parallels and here is selected 90N. In the UPS system, the North Pole is assigned the coordinates x=2000000, y=2000000.
NOTE3: NGA has suggested also another TileMatrixSet called sixteenth tile that covers less area by having the TopLeftCorner: at ‑2 110 189.837563, 6 110 189.837563, BBOX LowerCorner: ‑2110189.837562966 -2110189.837562966 and BBOX UpperCorner: 6110189.837562966 6110189.837562966, The same result can be achieved by using the TileMatrixSetLimits mechanism without having to define an entirely new TileMatrixSet.
D.6 Antarctic Universal Polar Stereographic WGS84 Quad TileMatrixSet definition (http://www.opengis.net/def/tilematrixset/OGC/1.0/UPSAntarcticWGS84Quad)
There is no consensus in the geospatial community for what constitutes the “best” tile matrix set for the polar stereographic projection. One reason for this is that the election of the TopLeftCorner and scale denominators is almost completely arbitrary. In this document, a TileMatrixSet identical to the Arctic one but with and Antarctic CRS was selected.
CRS: http://www.opengis.net/def/crs/EPSG/0/5042, WGS 84 Universal Polar Stereographic South BBOX LowerCorner: -14440759.350252, -14440759.350252 BBOX UpperCorner: 18440759.350252, 18440759.350252 WellKnownScaleSet: N/A TopLeftCorner: -14440759.350252,18440759.350252 TileWidth: 256 TileHeight: 256 |
|||||
Tile Matrix id |
Scale Denominator |
Pixel Size (m) (true at latitude ~-81) |
True Pixel Size (m) at the pole (informative) |
Matrix Width |
Matrix Height |
0 |
458726544.4 |
128443.4324 |
129218.7449 |
1 |
1 |
1 |
229363272.2 |
64221.71621 |
64609.37245 |
2 |
2 |
2 |
114681636.1 |
32110.85811 |
32304.68622 |
4 |
4 |
3 |
57340818.05 |
16055.42905 |
16152.34311 |
8 |
8 |
4 |
28670409.02 |
8027.714526 |
8076.171556 |
16 |
16 |
5 |
14335204.51 |
4013.857263 |
4038.085778 |
32 |
32 |
6 |
7167602.256 |
2006.928632 |
2019.042889 |
64 |
64 |
7 |
3583801.128 |
1003.464316 |
1009.521444 |
128 |
128 |
8 |
1791900.564 |
501.7321579 |
504.7607222 |
256 |
256 |
9 |
895950.282 |
250.866079 |
252.3803611 |
512 |
512 |
10 |
447975.141 |
125.4330395 |
126.1901806 |
1024 |
1024 |
11 |
223987.5705 |
62.71651974 |
63.09509028 |
2048 |
2048 |
12 |
111993.7852 |
31.35825987 |
31.54754514 |
4096 |
4096 |
13 |
55996.89262 |
15.67912993 |
15.77377257 |
8192 |
8192 |
14 |
27998.44631 |
7.839564967 |
7.886886285 |
16384 |
16384 |
15 |
13999.22316 |
3.919782484 |
3.943443142 |
32768 |
32768 |
16 |
6999.611578 |
1.959891242 |
1.971721571 |
65536 |
65536 |
17 |
3499.805789 |
0.979945621 |
0.985860786 |
131072 |
131072 |
18 |
1749.902894 |
0.48997281 |
0.492930393 |
262144 |
262144 |
19 |
874.9514472 |
0.244986405 |
0.246465196 |
524288 |
524288 |
20 |
437.4757236 |
0.122493203 |
0.123232598 |
1048576 |
1048576 |
21 |
218.7378618 |
0.061246601 |
0.061616299 |
2097152 |
2097152 |
22 |
109.3689309 |
0.030623301 |
0.03080815 |
4194304 |
4194304 |
23 |
54.68446545 |
0.01531165 |
0.015404075 |
8388608 |
8388608 |
24 |
27.34223273 |
0.007655825 |
0.007702037 |
16777216 |
16777216 |
One can define an arbitrary number of zoom levels and does not need to include all the zoom levels defined here. Here, 25 zoom levels are illustrated.
D.7 European ETRS89 LAEA Quad TileMatrixSet definition (http://www.opengis.net/def/tilematrixset/OGC/1.0/EuropeanETRS89_LAEAQuad)
CRS: http://www.opengis.net/def/crs/EPSG/0/3035, ETRS89 BBOX LowerCorner: 2000000.0 1000000.0 BBOX UpperCorner: 6500000 5500000.0 WellKnownScaleSet: N/A TopLeftCorner: 2000000.0 5500000.0 TileWidth: 256 TileHeight: 256 |
|||||
TileMatrix id |
Scale Denominator |
Pixel Size (m) |
Matrix Width |
Matrix Height |
|
0 |
62779017.857142866 |
17578.1250000000 |
1 |
1 |
|
1 |
31389508.928571433 |
8789.0625000000 |
2 |
2 |
|
2 |
15694754.464285716 |
4394.5312500000 |
4 |
4 |
|
3 |
7847377.232142858 |
2197.2656250000 |
8 |
8 |
|
4 |
3923688.616071429 |
1098.6328125000 |
16 |
16 |
|
5 |
1961844.3080357146 |
549.3164062500 |
32 |
32 |
|
6 |
980922.1540178573 |
274.6582031250 |
64 |
64 |
|
7 |
490461.07700892864 |
137.3291015625 |
128 |
128 |
|
8 |
245230.53850446432 |
68.6645507812 |
256 |
256 |
|
9 |
122615.26925223216 |
34.3322753906 |
512 |
512 |
|
10 |
61307.63462611608 |
17.1661376953 |
1024 |
1024 |
|
11 |
30653.81731305804 |
8.5830688477 |
2048 |
2048 |
|
12 |
15326.90865652902 |
4.2915344238 |
4096 |
4096 |
|
13 |
7663.45432826451 |
2.1457672119 |
8192 |
8192 |
|
14 |
3831.727164132255 |
1.0728836060 |
16384 |
16384 |
|
15 |
1915.8635820661275 |
0.5364418030 |
32768 |
32768 |
One can define an arbitrary number of zoom levels and does not need to include all the zoom levels defined here. Here, 16 zoom levels are illustrated.
D.8 Canadian NAD83 LCC TileMatrixSet definition (http://www.opengis.net/def/tilematrixset/OGC/1.0/CanadianNAD83_LCC)
CRS: http://www.opengis.net/def/crs/EPSG/0/3978, NAD83 BBOX LowerCorner: -7786476.885838887, -5153821.09213678 BBOX UpperCorner: 7148753.233541353, 7928343.534071138 WellKnownScaleSet: N/A TopLeftCorner: -34655800, 39310000 TileWidth: 256 TileHeight: 256 |
||||||
TileMatrix id |
Scale Denominator |
Scale Denominator at latitudes 37.897505 and 83.3032475 (informative) |
Cartographic product (informative) |
Pixel Size (m) (true at the equator) |
Matrix Width |
Matrix Height |
0 |
137016643.1 |
145000000 |
World |
38364.66006 |
5 |
5 |
1 |
80320101.12 |
85000000 |
World |
22489.62831 |
8 |
8 |
2 |
47247118.3 |
50000000 |
Atlas SM |
13229.19313 |
13 |
14 |
3 |
28348270.98 |
30000000 |
Atlas SM |
7937.515875 |
21 |
22 |
4 |
16536491.41 |
17500000 |
Atlas SM |
4630.217594 |
36 |
38 |
5 |
9449423.661 |
10000000 |
Atlas MID |
2645.838625 |
62 |
66 |
6 |
5669654.196 |
6000000 |
Atlas MID |
1587.503175 |
103 |
110 |
7 |
3307298.281 |
3500000 |
Atlas MID |
926.0435188 |
177 |
188 |
8 |
1889884.732 |
2000000 |
Atlas LG |
529.167725 |
309 |
329 |
9 |
1133930.839 |
1200000 |
Atlas LG |
317.500635 |
515 |
548 |
10 |
661459.6563 |
700000 |
Atlas LG |
185.2087038 |
882 |
938 |
11 |
396875.7938 |
420000 |
NTDB 250K |
111.1252223 |
1470 |
1563 |
12 |
236235.5915 |
250000 |
NTDB 250K |
66.14596563 |
2469 |
2626 |
13 |
137016.6431 |
145000 |
NTDB 250K |
38.36466006 |
4257 |
4528 |
14 |
80320.10112 |
85000 |
NTDB 50K |
22.48962831 |
7262 |
7723 |
15 |
47247.1183 |
50000 |
NTDB 50K |
13.22919313 |
12344 |
13130 |
16 |
28348.27098 |
30000 |
NTDB 50K |
7.937515875 |
20574 |
21882 |
17 |
16536.49141 |
17500 |
Geobase |
4.630217594 |
35269 |
37512 |
18 |
9449.423661 |
10000 |
Geobase |
2.645838625 |
61720 |
65646 |
19 |
5669.654196 |
6000 |
Geobase |
1.587503175 |
102866 |
109409 |
20 |
3307.298281 |
3500 |
Geobase |
0.926043519 |
176341 |
187558 |
21 |
1889.884732 |
2000 |
Geobase |
0.529167725 |
308596 |
328227 |
22 |
1133.930839 |
1200 |
Geobase |
0.317500635 |
514327 |
547044 |
23 |
661.4596563 |
700 |
|
0.185208704 |
881703 |
937790 |
24 |
396.8757938 |
420 |
|
0.111125222 |
1469505 |
1562983 |
25 |
236.2355915 |
250 |
|
0.066145966 |
2468768 |
2625811 |
One can define an arbitrary number of zoom levels and does not need to include all the zoom levels defined here. Here, 26 zoom levels are illustrated.
Annex E: Example Encodings for Common TileMatrixSet2D (Informative)
This Annex provides examples of XML and JSON encodings than can be used to define tile matrix sets.
E.1 Web Mercator Quad TileMatrixSet definition.
E.1.1 Web Mercator Quad TileMatrixSet definition. XML example.
This is the XML definition of the WebMercatorQuad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
<TileMatrixSet xml:id=“WebMercatorQuad”>
<ows:Title>Google Maps Compatible for the World</ows:Title>
<ows:Identifier>WebMercatorQuad</ows:Identifier>
<ows:BoundingBox crs=“http://www.opengis.net/def/crs/EPSG/0/3857”>
<ows:LowerCorner>
-20037508.3427892 -20037508.3427892
</ows:LowerCorner>
<ows:UpperCorner>
20037508.3427892 20037508.3427892
</ows:UpperCorner>
</ows:BoundingBox>
<ows:SupportedCRS>
http://www.opengis.net/def/crs/EPSG/0/3857
</ows:SupportedCRS>
<WellKnownScaleSet>
http://www.opengis.net/def/wkss/OGC/1.0/GoogleMapsCompatible
</WellKnownScaleSet>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>559082264.028717</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>279541132.014358</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>139770566.007179</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4</MatrixWidth>
<MatrixHeight>4</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>69885283.0035897</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8</MatrixWidth>
<MatrixHeight>8</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>34942641.5017948</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16</MatrixWidth>
<MatrixHeight>16</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>17471320.7508974</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32</MatrixWidth>
<MatrixHeight>32</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>6</ows:Identifier>
<ScaleDenominator>8735660.37544871</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>64</MatrixWidth>
<MatrixHeight>64</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>7</ows:Identifier>
<ScaleDenominator>4367830.18772435</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>128</MatrixWidth>
<MatrixHeight>128</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>2183915.09386217</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>256</MatrixWidth>
<MatrixHeight>256</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>9</ows:Identifier>
<ScaleDenominator>1091957.54693108</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>512</MatrixWidth>
<MatrixHeight>512</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>10</ows:Identifier>
<ScaleDenominator>545978.773465544</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1024</MatrixWidth>
<MatrixHeight>1024</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>11</ows:Identifier>
<ScaleDenominator>272989.386732772</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2048</MatrixWidth>
<MatrixHeight>2048</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>136494.693366386</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4096</MatrixWidth>
<MatrixHeight>4096</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>13</ows:Identifier>
<ScaleDenominator>68247.346683193</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8192</MatrixWidth>
<MatrixHeight>8192</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>14</ows:Identifier>
<ScaleDenominator>34123.6733415964</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16384</MatrixWidth>
<MatrixHeight>16384</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>15</ows:Identifier>
<ScaleDenominator>17061.8366707982</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32768</MatrixWidth>
<MatrixHeight>32768</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>16</ows:Identifier>
<ScaleDenominator>8530.91833539913</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>65536</MatrixWidth>
<MatrixHeight>65536</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>17</ows:Identifier>
<ScaleDenominator>4265.45916769956</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>131072</MatrixWidth>
<MatrixHeight>131072</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>18</ows:Identifier>
<ScaleDenominator>2132.72958384978</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>262144</MatrixWidth>
<MatrixHeight>262144</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>19</ows:Identifier>
<ScaleDenominator>1066.36479192489</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>524288</MatrixWidth>
<MatrixHeight>524288</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>20</ows:Identifier>
<ScaleDenominator>533.182395962445</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1048576</MatrixWidth>
<MatrixHeight>1048576</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>21</ows:Identifier>
<ScaleDenominator>266.591197981222</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2097152</MatrixWidth>
<MatrixHeight>2097152</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>22</ows:Identifier>
<ScaleDenominator>133.295598990611</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4194304</MatrixWidth>
<MatrixHeight>4194304</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>23</ows:Identifier>
<ScaleDenominator>66.6477994953056</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8388608</MatrixWidth>
<MatrixHeight>8388608</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>24</ows:Identifier>
<ScaleDenominator>33.3238997476528</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16777216</MatrixWidth>
<MatrixHeight>16777216</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
One can define an arbitrary number of zoom levels. Here, 25 zoom levels are illustrated.
E.1.2 Web Mercator Quad TileMatrixSet definition. JSON Encoding
This is the JSON definition of the WebMercatorQuad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
{
“type”: “TileMatrixSetType”,
“title”: “Google Maps Compatible for the World”,
“identifier”: “WebMercatorQuad”,
“boundingBox”:
{
“type”: “BoundingBoxType”,
“crs”: “http://www.opengis.net/def/crs/EPSG/0/3857”,
“lowerCorner”: [-20037508.3427892, -20037508.3427892],
“upperCorner”: [20037508.3427892, 20037508.3427892]
},
“supportedCRS”: “http://www.opengis.net/def/crs/EPSG/0/3857”,
“wellKnownScaleSet”: “http://www.opengis.net/def/wkss/OGC/1.0/GoogleMapsCompatible”,
“tileMatrix”:
[
{
“type”: “TileMatrixType”,
“identifier”: “0”,
“scaleDenominator”: 559082264.028717,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1,
“matrixHeight”: 1
},
{
“type”: “TileMatrixType”,
“identifier”: “1”,
“scaleDenominator”: 279541132.014358,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2,
“matrixHeight”: 2
},
{
“type”: “TileMatrixType”,
“identifier”: “2”,
“scaleDenominator”: 139770566.007179,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4,
“matrixHeight”: 4
},
{
“type”: “TileMatrixType”,
“identifier”: “3”,
“scaleDenominator”: 69885283.0035897,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8,
“matrixHeight”: 8
},
{
“type”: “TileMatrixType”,
“identifier”: “4”,
“scaleDenominator”: 34942641.5017948,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16,
“matrixHeight”: 16
},
{
“type”: “TileMatrixType”,
“identifier”: “5”,
“scaleDenominator”: 17471320.7508974,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32,
“matrixHeight”: 32
},
{
“type”: “TileMatrixType”,
“identifier”: “6”,
“scaleDenominator”: 8735660.37544871,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 64,
“matrixHeight”: 64
},
{
“type”: “TileMatrixType”,
“identifier”: “7”,
“scaleDenominator”: 4367830.18772435,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 128,
“matrixHeight”: 128
},
{
“type”: “TileMatrixType”,
“identifier”: “8”,
“scaleDenominator”: 2183915.09386217,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 256,
“matrixHeight”: 256
},
{
“type”: “TileMatrixType”,
“identifier”: “9”,
“scaleDenominator”: 1091957.54693108,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 512,
“matrixHeight”: 512
},
{
“type”: “TileMatrixType”,
“identifier”: “10”,
“scaleDenominator”: 545978.773465544,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1024,
“matrixHeight”: 1024
},
{
“type”: “TileMatrixType”,
“identifier”: “11”,
“scaleDenominator”: 272989.386732772,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2048,
“matrixHeight”: 2048
},
{
“type”: “TileMatrixType”,
“identifier”: “12”,
“scaleDenominator”: 136494.693366386,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4096,
“matrixHeight”: 4096
},
{
“type”: “TileMatrixType”,
“identifier”: “13”,
“scaleDenominator”: 68247.346683193,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8192,
“matrixHeight”: 8192
},
{
“type”: “TileMatrixType”,
“identifier”: “14”,
“scaleDenominator”: 34123.6733415964,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16384,
“matrixHeight”: 16384
},
{
“type”: “TileMatrixType”,
“identifier”: “15”,
“scaleDenominator”: 17061.8366707982,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32768,
“matrixHeight”: 32768
},
{
“type”: “TileMatrixType”,
“identifier”: “16”,
“scaleDenominator”: 8530.91833539913,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 65536,
“matrixHeight”: 65536
},
{
“type”: “TileMatrixType”,
“identifier”: “17”,
“scaleDenominator”: 4265.45916769956,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 131072,
“matrixHeight”: 131072
},
{
“type”: “TileMatrixType”,
“identifier”: “18”,
“scaleDenominator”: 2132.72958384978,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 262144,
“matrixHeight”: 262144
},
{
“type”: “TileMatrixType”,
“identifier”: “19”,
“scaleDenominator”: 1066.36479192489,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 524288,
“matrixHeight”: 524288
},
{
“type”: “TileMatrixType”,
“identifier”: “20”,
“scaleDenominator”: 533.182395962445,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1048576,
“matrixHeight”: 1048576
},
{
“type”: “TileMatrixType”,
“identifier”: “21”,
“scaleDenominator”: 266.591197981222,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2097152,
“matrixHeight”: 2097152
},
{
“type”: “TileMatrixType”,
“identifier”: “22”,
“scaleDenominator”: 133.295598990611,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4194304,
“matrixHeight”: 4194304
},
{
“type”: “TileMatrixType”,
“identifier”: “23”,
“scaleDenominator”: 66.6477994953056,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8388608,
“matrixHeight”: 8388608
},
{
“type”: “TileMatrixType”,
“identifier”: “24”,
“scaleDenominator”: 33.3238997476528,
“topLeftCorner”: [-20037508.3427892, 20037508.3427892],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16777216,
“matrixHeight”: 16777216
}
]
}
One can define an arbitrary number of zoom levels. Here, 25 zoom levels are illustrated.
E.2 World CRS84 Quad TileMatrixSet definition.
E.2.1 World CRS84 Quad TileMatrixSet definition. XML encoding
This is the XML definition of the WorldCRS84Quad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
<TileMatrixSet xml:id=“WorldCRS84Quad”>
<ows:Title>CRS84 for the World</ows:Title>
<ows:Identifier>WorldCRS84Quad</ows:Identifier>
<ows:BoundingBox crs=“http://www.opengis.net/def/crs/OGC/1.3/CRS84”>
<ows:LowerCorner>-180 -90</ows:LowerCorner>
<ows:UpperCorner>180 90</ows:UpperCorner>
</ows:BoundingBox>
<ows:SupportedCRS>
http://www.opengis.net/def/crs/OGC/1.3/CRS84
</ows:SupportedCRS>
<WellKnownScaleSet>
http://www.opengis.net/def/wkss/OGC/1.0/GoogleCRS84Quad
</WellKnownScaleSet>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>279541132.0143589</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>139770566.0071794</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>69885283.00358972</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8</MatrixWidth>
<MatrixHeight>4</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>34942641.50179486</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16</MatrixWidth>
<MatrixHeight>8</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>17471320.75089743</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32</MatrixWidth>
<MatrixHeight>16</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>6</ows:Identifier>
<ScaleDenominator>8735660.375448715</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>64</MatrixWidth>
<MatrixHeight>32</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>7</ows:Identifier>
<ScaleDenominator>4367830.187724357</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>128</MatrixWidth>
<MatrixHeight>64</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>2183915.093862179</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>256</MatrixWidth>
<MatrixHeight>128</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>9</ows:Identifier>
<ScaleDenominator>1091957.546931089</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>512</MatrixWidth>
<MatrixHeight>256</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>10</ows:Identifier>
<ScaleDenominator>545978.7734655447</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1024</MatrixWidth>
<MatrixHeight>512</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>11</ows:Identifier>
<ScaleDenominator>272989.3867327723</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2048</MatrixWidth>
<MatrixHeight>1024</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>136494.6933663862</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4096</MatrixWidth>
<MatrixHeight>2048</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>13</ows:Identifier>
<ScaleDenominator>68247.34668319309</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8192</MatrixWidth>
<MatrixHeight>4096</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>14</ows:Identifier>
<ScaleDenominator>34123.67334159654</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16384</MatrixWidth>
<MatrixHeight>8192</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>15</ows:Identifier>
<ScaleDenominator>17061.83667079827</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32768</MatrixWidth>
<MatrixHeight>16384</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>16</ows:Identifier>
<ScaleDenominator>8530.918335399136</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>65536</MatrixWidth>
<MatrixHeight>32768</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>17</ows:Identifier>
<ScaleDenominator>4265.459167699568</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>131072</MatrixWidth>
<MatrixHeight>65536</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>18</ows:Identifier>
<ScaleDenominator>2132.729583849784</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>262144</MatrixWidth>
<MatrixHeight>131072</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
E.2.2 World CRS84 Quad TileMatrixSet definition. JSON Encoding
This is the JSON definition of the WorldCRS84Quad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
{
“type”: “TileMatrixSetType”,
“title”: “CRS84 for the World”,
“identifier”: “WorldCRS84Quad”,
“boundingBox”:
{
“type”: “BoundingBoxType”,
“crs”: “http://www.opengis.net/def/crs/OGC/1.3/CRS84”,
“lowerCorner”: [-180, -90],
“upperCorner”: [180, 90]
},
“supportedCRS”: “http://www.opengis.net/def/crs/OGC/1.3/CRS84”,
“wellKnownScaleSet”: “http://www.opengis.net/def/wkss/OGC/1.0/GoogleCRS84Quad”,
“tileMatrix”:
[
{
“type”: “TileMatrixType”,
“identifier”: “0”,
“scaleDenominator”: 279541132.014358,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2,
“matrixHeight”: 1
},
{
“type”: “TileMatrixType”,
“identifier”: “1”,
“scaleDenominator”: 139770566.007179,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4,
“matrixHeight”: 2
},
{
“type”: “TileMatrixType”,
“identifier”: “2”,
“scaleDenominator”: 69885283.0035897,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8,
“matrixHeight”: 4
},
{
“type”: “TileMatrixType”,
“identifier”: “3”,
“scaleDenominator”: 34942641.5017948,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16,
“matrixHeight”: 8
},
{
“type”: “TileMatrixType”,
“identifier”: “4”,
“scaleDenominator”: 17471320.7508974,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32,
“matrixHeight”: 16
},
{
“type”: “TileMatrixType”,
“identifier”: “5”,
“scaleDenominator”: 8735660.37544871,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 64,
“matrixHeight”: 32
},
{
“type”: “TileMatrixType”,
“identifier”: “6”,
“scaleDenominator”: 4367830.18772435,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 128,
“matrixHeight”: 64
},
{
“type”: “TileMatrixType”,
“identifier”: “7”,
“scaleDenominator”: 2183915.09386217,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 256,
“matrixHeight”: 128
},
{
“type”: “TileMatrixType”,
“identifier”: “8”,
“scaleDenominator”: 1091957.54693108,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 512,
“matrixHeight”: 256
},
{
“type”: “TileMatrixType”,
“identifier”: “9”,
“scaleDenominator”: 545978.773465544,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1024,
“matrixHeight”: 512
},
{
“type”: “TileMatrixType”,
“identifier”: “10”,
“scaleDenominator”: 272989.386732772,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2048,
“matrixHeight”: 1024
},
{
“type”: “TileMatrixType”,
“identifier”: “11”,
“scaleDenominator”: 136494.693366386,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4096,
“matrixHeight”: 2048
},
{
“type”: “TileMatrixType”,
“identifier”: “12”,
“scaleDenominator”: 68247.346683193,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8192,
“matrixHeight”: 4096
},
{
“type”: “TileMatrixType”,
“identifier”: “13”,
“scaleDenominator”: 34123.6733415964,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16384,
“matrixHeight”: 8192
},
{
“type”: “TileMatrixType”,
“identifier”: “14”,
“scaleDenominator”: 17061.8366707982,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32768,
“matrixHeight”: 16384
},
{
“type”: “TileMatrixType”,
“identifier”: “15”,
“scaleDenominator”: 8530.91833539913,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 65536,
“matrixHeight”: 32768
},
{
“type”: “TileMatrixType”,
“identifier”: “16”,
“scaleDenominator”: 4265.45916769956,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 131072,
“matrixHeight”: 65536
},
{
“type”: “TileMatrixType”,
“identifier”: “17”,
“scaleDenominator”: 2132.72958384978,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 262144,
“matrixHeight”: 131072
}
]
}
E.3 World Mercator WGS84 Quad TileMatrixSet definition.
E.3.1 World Mercator WGS84 Quad TileMatrixSet definition. XML encoding
This is the XML definition of the WorldMercatorWGS84Quad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
<TileMatrixSet xml:id=“WorldMercatorWGS84Quad”>
<ows:Title>World Mercator WGS84 (ellipsoid)</ows:Title>
<ows:Identifier>WorldMercatorWGS84Quad</ows:Identifier>
<ows:BoundingBox crs=“http://www.opengis.net/def/crs/EPSG/0/3395”>
<ows:LowerCorner>
-20037508.3427892 -20037508.3427892
</ows:LowerCorner>
<ows:UpperCorner>
20037508.3427892 20037508.3427892
</ows:UpperCorner>
</ows:BoundingBox>
<ows:SupportedCRS>
http://www.opengis.net/def/crs/EPSG/0/3395
</ows:SupportedCRS>
<WellKnownScaleSet>
http://www.opengis.net/def/wkss/OGC/1.0/WorldMercatorWGS84
</WellKnownScaleSet>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>559082264.028717</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>279541132.014358</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>139770566.007179</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4</MatrixWidth>
<MatrixHeight>4</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>69885283.0035897</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8</MatrixWidth>
<MatrixHeight>8</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>34942641.5017948</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16</MatrixWidth>
<MatrixHeight>16</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>17471320.7508974</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32</MatrixWidth>
<MatrixHeight>32</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>6</ows:Identifier>
<ScaleDenominator>8735660.37544871</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>64</MatrixWidth>
<MatrixHeight>64</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>7</ows:Identifier>
<ScaleDenominator>4367830.18772435</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>128</MatrixWidth>
<MatrixHeight>128</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>2183915.09386217</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>256</MatrixWidth>
<MatrixHeight>256</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>9</ows:Identifier>
<ScaleDenominator>1091957.54693108</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>512</MatrixWidth>
<MatrixHeight>512</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>10</ows:Identifier>
<ScaleDenominator>545978.773465544</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1024</MatrixWidth>
<MatrixHeight>1024</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>11</ows:Identifier>
<ScaleDenominator>272989.386732772</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2048</MatrixWidth>
<MatrixHeight>2048</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>136494.693366386</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4096</MatrixWidth>
<MatrixHeight>4096</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>13</ows:Identifier>
<ScaleDenominator>68247.346683193</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8192</MatrixWidth>
<MatrixHeight>8192</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>14</ows:Identifier>
<ScaleDenominator>34123.6733415964</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16384</MatrixWidth>
<MatrixHeight>16384</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>15</ows:Identifier>
<ScaleDenominator>17061.8366707982</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32768</MatrixWidth>
<MatrixHeight>32768</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>16</ows:Identifier>
<ScaleDenominator>8530.91833539913</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>65536</MatrixWidth>
<MatrixHeight>65536</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>17</ows:Identifier>
<ScaleDenominator>4265.45916769956</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>131072</MatrixWidth>
<MatrixHeight>131072</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>18</ows:Identifier>
<ScaleDenominator>2132.72958384978</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>262144</MatrixWidth>
<MatrixHeight>262144</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>19</ows:Identifier>
<ScaleDenominator>1066.36479192489</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>524288</MatrixWidth>
<MatrixHeight>524288</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>20</ows:Identifier>
<ScaleDenominator>533.182395962445</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1048576</MatrixWidth>
<MatrixHeight>1048576</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>21</ows:Identifier>
<ScaleDenominator>266.591197981222</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2097152</MatrixWidth>
<MatrixHeight>2097152</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>22</ows:Identifier>
<ScaleDenominator>133.295598990611</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4194304</MatrixWidth>
<MatrixHeight>4194304</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>23</ows:Identifier>
<ScaleDenominator>66.6477994953056</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8388608</MatrixWidth>
<MatrixHeight>8388608</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>24</ows:Identifier>
<ScaleDenominator>33.3238997476528</ScaleDenominator>
<TopLeftCorner>-20037508.3427892 20037508.3427892</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16777216</MatrixWidth>
<MatrixHeight>16777216</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
One can define an arbitrary number of zoom levels. Here, 19 zoom levels are illustrated but resolutions up to 24 are currently available in some mass market services.
E.3.2 World Mercator WGS84 Quad TileMatrixSet definition. JSON Encoding
This is the JSON definition of the WorldMercatorQuad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
{
“type”: “TileMatrixSetType”,
“title”: “World Mercator WGS84 (ellipsoid)”,
“identifier”: “WorldMercatorWGS84Quad”,
“boundingBox”:
{
“type”: “BoundingBoxType”,
“crs”: “http://www.opengis.net/def/crs/EPSG/0/3395”,
“lowerCorner”: [-20037508.3427892, -20037508.3427892],
“upperCorner”: [20037508.3427892, 20037508.3427892]
},
“supportedCRS”: “http://www.opengis.net/def/crs/EPSG/0/3395”,
“wellKnownScaleSet”: “http://www.opengis.net/def/wkss/OGC/1.0/WorldMercatorWGS84”,
“tileHeight”:
[
{
“type”: “TileMatrixType”,
“identifier”: “0”,
“scaleDenominator”: 279541132.014358,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2,
“matrixHeight”: 1
},
{
“type”: “TileMatrixType”,
“identifier”: “1”,
“scaleDenominator”: 139770566.007179,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4,
“matrixHeight”: 2
},
{
“type”: “TileMatrixType”,
“identifier”: “2”,
“scaleDenominator”: 69885283.0035897,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8,
“matrixHeight”: 4
},
{
“type”: “TileMatrixType”,
“identifier”: “3”,
“scaleDenominator”: 34942641.5017948,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16,
“matrixHeight”: 8
},
{
“type”: “TileMatrixType”,
“identifier”: “4”,
“scaleDenominator”: 17471320.7508974,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32,
“matrixHeight”: 16
},
{
“type”: “TileMatrixType”,
“identifier”: “5”,
“scaleDenominator”: 8735660.37544871,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 64,
“matrixHeight”: 32
},
{
“type”: “TileMatrixType”,
“identifier”: “6”,
“scaleDenominator”: 4367830.18772435,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 128,
“matrixHeight”: 64
},
{
“type”: “TileMatrixType”,
“identifier”: “7”,
“scaleDenominator”: 2183915.09386217,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 256,
“matrixHeight”: 128
},
{
“type”: “TileMatrixType”,
“identifier”: “8”,
“scaleDenominator”: 1091957.54693108,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 512,
“matrixHeight”: 256
},
{
“type”: “TileMatrixType”,
“identifier”: “9”,
“scaleDenominator”: 545978.773465544,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1024,
“matrixHeight”: 512
},
{
“type”: “TileMatrixType”,
“identifier”: “10”,
“scaleDenominator”: 272989.386732772,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2048,
“matrixHeight”: 1024
},
{
“type”: “TileMatrixType”,
“identifier”: “11”,
“scaleDenominator”: 136494.693366386,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4096,
“matrixHeight”: 2048
},
{
“type”: “TileMatrixType”,
“identifier”: “12”,
“scaleDenominator”: 68247.346683193,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8192,
“matrixHeight”: 4096
},
{
“type”: “TileMatrixType”,
“identifier”: “13”,
“scaleDenominator”: 34123.6733415964,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16384,
“matrixHeight”: 8192
},
{
“type”: “TileMatrixType”,
“identifier”: “14”,
“scaleDenominator”: 17061.8366707982,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32768,
“matrixHeight”: 16384
},
{
“type”: “TileMatrixType”,
“identifier”: “15”,
“scaleDenominator”: 8530.91833539913,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 65536,
“matrixHeight”: 32768
},
{
“type”: “TileMatrixType”,
“identifier”: “16”,
“scaleDenominator”: 4265.45916769956,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 131072,
“matrixHeight”: 65536
},
{
“type”: “TileMatrixType”,
“identifier”: “17”,
“scaleDenominator”: 2132.72958384978,
“topLeftCorner”: [-180, 90],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 262144,
“matrixHeight”: 131072
}
]
}
One can define an arbitrary number of zoom levels. Here, 19 zoom levels are illustrated but resolutions up to 24 are currently available in some mass market services.
E.4 Universal Transverse Mercator WGS84 Quad for TileMatrixSet definition for zone 31
E.4.1 UTM WGS84 Quad for TileMatrixSet definition for zone 31. XML encoding
This is the XML definition of the UTM31WGS84Quad tile matrix set that can be reproduced by other standards needing to define a tile matrix set if the zone 31 is required. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
<TileMatrixSet xml:id=“UTM31WGS84Quad”>
<ows:Title>Universal Transverse Mercator Zone 31 WGS84 Quad</ows:Title>
<ows:Identifier>UTM31WGS84Quad</ows:Identifier>
<ows:BoundingBox crs=“http://www.opengis.net/def/crs/EPSG/0/32631”>
<ows:LowerCorner>
-9501965.72931276 -20003931.4586255
</ows:LowerCorner>
<ows:UpperCorner>
10501965.7293128 20003931.4586255
</ows:UpperCorner>
</ows:BoundingBox>
<ows:SupportedCRS>
http://www.opengis.net/def/crs/EPSG/0/32631
</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>279072704.500914</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>139536352.250457</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>4</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>69768176.1252285</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4</MatrixWidth>
<MatrixHeight>8</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>34884088.0626143</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8</MatrixWidth>
<MatrixHeight>16</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>17442044.0313071</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16</MatrixWidth>
<MatrixHeight>32</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>6</ows:Identifier>
<ScaleDenominator>8721022.01565356</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32</MatrixWidth>
<MatrixHeight>64</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>7</ows:Identifier>
<ScaleDenominator>4360511.00782678</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>64</MatrixWidth>
<MatrixHeight>128</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>2180255.50391339</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>128</MatrixWidth>
<MatrixHeight>256</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>9</ows:Identifier>
<ScaleDenominator>1090127.7519567</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>256</MatrixWidth>
<MatrixHeight>512</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>10</ows:Identifier>
<ScaleDenominator>545063.875978348</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>512</MatrixWidth>
<MatrixHeight>1024</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>11</ows:Identifier>
<ScaleDenominator>272531.937989174</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1024</MatrixWidth>
<MatrixHeight>2048</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>136265.968994587</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2048</MatrixWidth>
<MatrixHeight>4096</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>13</ows:Identifier>
<ScaleDenominator>68132.9844972935</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4096</MatrixWidth>
<MatrixHeight>8192</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>14</ows:Identifier>
<ScaleDenominator>34066.4922486467</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8192</MatrixWidth>
<MatrixHeight>16384</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>15</ows:Identifier>
<ScaleDenominator>17033.2461243234</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16384</MatrixWidth>
<MatrixHeight>32768</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>16</ows:Identifier>
<ScaleDenominator>8516.62306216168</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32768</MatrixWidth>
<MatrixHeight>65536</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>17</ows:Identifier>
<ScaleDenominator>4258.31153108084</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>65536</MatrixWidth>
<MatrixHeight>131072</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>18</ows:Identifier>
<ScaleDenominator>2129.15576554042</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>131072</MatrixWidth>
<MatrixHeight>262144</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>19</ows:Identifier>
<ScaleDenominator>1064.57788277021</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>262144</MatrixWidth>
<MatrixHeight>524288</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>20</ows:Identifier>
<ScaleDenominator>532.288941385105</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>524288</MatrixWidth>
<MatrixHeight>1048576</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>21</ows:Identifier>
<ScaleDenominator>266.144470692553</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1048576</MatrixWidth>
<MatrixHeight>2097152</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>22</ows:Identifier>
<ScaleDenominator>133.072235346276</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2097152</MatrixWidth>
<MatrixHeight>4194304</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>23</ows:Identifier>
<ScaleDenominator>66.5361176731382</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4194304</MatrixWidth>
<MatrixHeight>8388608</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>24</ows:Identifier>
<ScaleDenominator>33.2680588365691</ScaleDenominator>
<TopLeftCorner>-9501965.72931276 20003931.4586255</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8388608</MatrixWidth>
<MatrixHeight>16777216</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
E.4.2 UTM WGS84 Quad for TileMatrixSet definition for zone 31. JSON Encoding
This is the JSON definition of the UTM31WGS84Quad tile matrix set that can be reproduced by other standards needing to define a tile matrix set if the zone 31 is required. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
{
“type”: “TileMatrixSetType”,
“title”: “UTM31WGS84Quad”,
“identifier”: “Universal Transverse Mercator Zone 31 WGS84 Quad”,
“boundingBox”:
{
“type”: “BoundingBoxType”,
“crs”: “http://www.opengis.net/def/crs/EPSG/0/32631”,
“lowerCorner”:
[
-9501965.72931276,
-20003931.4586255
],
“upperCorner”:
[
10501965.7293128,
20003931.4586255
]
},
“supportedCRS”: “http://www.opengis.net/def/crs/EPSG/0/32631”,
“tileMatrix”:
[
{
“type”: “TileMatrixType”,
“identifier”: “1”,
“scaleDenominator”: 279072704.500914,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1,
“matrixHeight”: 2
},
{
“type”: “TileMatrixType”,
“identifier”: “2”,
“scaleDenominator”: 139536352.250457,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2,
“matrixHeight”: 4
},
{
“type”: “TileMatrixType”,
“identifier”: “3”,
“scaleDenominator”: 69768176.1252285,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4,
“matrixHeight”: 8
},
{
“type”: “TileMatrixType”,
“identifier”: “4”,
“scaleDenominator”: 34884088.0626143,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8,
“matrixHeight”: 16
},
{
“type”: “TileMatrixType”,
“identifier”: “5”,
“scaleDenominator”: 17442044.0313071,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16,
“matrixHeight”: 32
},
{
“type”: “TileMatrixType”,
“identifier”: “6”,
“scaleDenominator”: 8721022.01565356,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32,
“matrixHeight”: 64
},
{
“type”: “TileMatrixType”,
“identifier”: “7”,
“scaleDenominator”: 4360511.00782678,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 64,
“matrixHeight”: 128
},
{
“type”: “TileMatrixType”,
“identifier”: “8”,
“scaleDenominator”: 2180255.50391339,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 128,
“matrixHeight”: 256
},
{
“type”: “TileMatrixType”,
“identifier”: “9”,
“scaleDenominator”: 1090127.7519567,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 256,
“matrixHeight”: 512
},
{
“type”: “TileMatrixType”,
“identifier”: “10”,
“scaleDenominator”: 545063.875978348,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 512,
“matrixHeight”: 1024
},
{
“type”: “TileMatrixType”,
“identifier”: “11”,
“scaleDenominator”: 272531.937989174,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1024,
“matrixHeight”: 2048
},
{
“type”: “TileMatrixType”,
“identifier”: “12”,
“scaleDenominator”: 136265.968994587,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2048,
“matrixHeight”: 4096
},
{
“type”: “TileMatrixType”,
“identifier”: “13”,
“scaleDenominator”: 68132.9844972935,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4096,
“matrixHeight”: 8192
},
{
“type”: “TileMatrixType”,
“identifier”: “14”,
“scaleDenominator”: 34066.4922486467,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8192,
“matrixHeight”: 16384
},
{
“type”: “TileMatrixType”,
“identifier”: “15”,
“scaleDenominator”: 17033.2461243234,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16384,
“matrixHeight”: 32768
},
{
“type”: “TileMatrixType”,
“identifier”: “16”,
“scaleDenominator”: 8516.62306216168,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32768,
“matrixHeight”: 65536
},
{
“type”: “TileMatrixType”,
“identifier”: “17”,
“scaleDenominator”: 4258.31153108084,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 65536,
“matrixHeight”: 131072
},
{
“type”: “TileMatrixType”,
“identifier”: “18”,
“scaleDenominator”: 2129.15576554042,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 131072,
“matrixHeight”: 262144
},
{
“type”: “TileMatrixType”,
“identifier”: “19”,
“scaleDenominator”: 1064.57788277021,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 262144,
“matrixHeight”: 524288
},
{
“type”: “TileMatrixType”,
“identifier”: “20”,
“scaleDenominator”: 532.288941385105,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 524288,
“matrixHeight”: 1048576
},
{
“type”: “TileMatrixType”,
“identifier”: “21”,
“scaleDenominator”: 266.144470692553,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1048576,
“matrixHeight”: 2097152
},
{
“type”: “TileMatrixType”,
“identifier”: “22”,
“scaleDenominator”: 133.072235346276,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2097152,
“matrixHeight”: 4194304
},
{
“type”: “TileMatrixType”,
“identifier”: “23”,
“scaleDenominator”: 66.5361176731382,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4194304,
“matrixHeight”: 8388608
},
{
“type”: “TileMatrixType”,
“identifier”: “24”,
“scaleDenominator”: 33.2680588365691,
“topLeftCorner”:
[
-9501965.72931276,
20003931.4586255
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8388608,
“matrixHeight”: 16777216
}
]
}
E.5 Arctic Universal Polar Stereographic WGS 84 Quad TileMatrixSet definition.
E.5.1 Arctic UPS WGS 84 Quad TileMatrixSet definition. XML encoding
This is the XML definition of the UPSArcticWGS84Quad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
<TileMatrixSet xml:id="UPSArcticWGS84Quad">
<ows:Title>Universal Polar Stereographic WGS 84 Quad for Arctic</ows:Title>
<ows:Identifier>UPSArcticWGS84Quad</ows:Identifier>
<ows:BoundingBox crs=“http://www.opengis.net/def/crs/EPSG/0/5041”>
<ows:LowerCorner>-14440759.350252 -14440759.350252</ows:LowerCorner>
<ows:UpperCorner>18440759.350252 18440759.350252</ows:UpperCorner>
</ows:BoundingBox>
<ows:SupportedCRS>
http://www.opengis.net/def/crs/EPSG/0/5041
</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>458726544.4</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>229363272.2</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>114681636.1</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4</MatrixWidth>
<MatrixHeight>4</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>57340818.05</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8</MatrixWidth>
<MatrixHeight>8</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>28670409.02</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16</MatrixWidth>
<MatrixHeight>16</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>14335204.51</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32</MatrixWidth>
<MatrixHeight>32</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>6</ows:Identifier>
<ScaleDenominator>7167602.256</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>64</MatrixWidth>
<MatrixHeight>64</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>7</ows:Identifier>
<ScaleDenominator>3583801.128</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>128</MatrixWidth>
<MatrixHeight>128</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>1791900.564</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>256</MatrixWidth>
<MatrixHeight>256</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>9</ows:Identifier>
<ScaleDenominator>895950.282</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>512</MatrixWidth>
<MatrixHeight>512</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>10</ows:Identifier>
<ScaleDenominator>447975.141</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1024</MatrixWidth>
<MatrixHeight>1024</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>11</ows:Identifier>
<ScaleDenominator>223987.5705</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2048</MatrixWidth>
<MatrixHeight>2048</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>111993.7852</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4096</MatrixWidth>
<MatrixHeight>4096</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>13</ows:Identifier>
<ScaleDenominator>55996.89262</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8192</MatrixWidth>
<MatrixHeight>8192</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>14</ows:Identifier>
<ScaleDenominator>27998.44631</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16384</MatrixWidth>
<MatrixHeight>16384</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>15</ows:Identifier>
<ScaleDenominator>13999.22316</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32768</MatrixWidth>
<MatrixHeight>32768</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>16</ows:Identifier>
<ScaleDenominator>6999.611578</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>65536</MatrixWidth>
<MatrixHeight>65536</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>17</ows:Identifier>
<ScaleDenominator>3499.805789</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>131072</MatrixWidth>
<MatrixHeight>131072</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>18</ows:Identifier>
<ScaleDenominator>1749.902894</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>262144</MatrixWidth>
<MatrixHeight>262144</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>19</ows:Identifier>
<ScaleDenominator>874.9514472</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>524288</MatrixWidth>
<MatrixHeight>524288</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>20</ows:Identifier>
<ScaleDenominator>437.4757236</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1048576</MatrixWidth>
<MatrixHeight>1048576</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>21</ows:Identifier>
<ScaleDenominator>218.7378618</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2097152</MatrixWidth>
<MatrixHeight>2097152</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>22</ows:Identifier>
<ScaleDenominator>109.3689309</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4194304</MatrixWidth>
<MatrixHeight>4194304</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>23</ows:Identifier>
<ScaleDenominator>54.68446545</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8388608</MatrixWidth>
<MatrixHeight>8388608</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>24</ows:Identifier>
<ScaleDenominator>27.34223273</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16777216</MatrixWidth>
<MatrixHeight>16777216</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
E.5.2 Arctic UPS WGS 84 Quad TileMatrixSet definition. JSON enconding
{
“type”: “TileMatrixSetType”,
“title”: “ArcticUniversalPolarStereoWGS84Quad”,
“identifier”: “Universal Polar Stereographic WGS 84 Quad for Arctic”,
“boundingBox”:
{
“type”: “BoundingBoxType”,
“crs”: "http://www.opengis.net/def/crs/EPSG/0/5041",
“lowerCorner”:
[
-14440759.350252,
-14440759.350252
],
“upperCorner”:
[
18440759.350252,
18440759.350252
]
},
“supportedCRS”: "http://www.opengis.net/def/crs/EPSG/0/5041",
“tileMatrix”:
[
{
“type”: “TileMatrixType”,
“identifier”: “0”,
“scaleDenominator”: 458726544.4,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1,
“matrixHeight”: 1
},
{
“type”: “TileMatrixType”,
“identifier”: “1”,
“scaleDenominator”: 229363272.2,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2,
“matrixHeight”: 2
},
{
“type”: “TileMatrixType”,
“identifier”: “2”,
“scaleDenominator”: 114681636.1,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4,
“matrixHeight”: 4
},
{
“type”: “TileMatrixType”,
“identifier”: “3”,
“scaleDenominator”: 57340818.05,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8,
“matrixHeight”: 8
},
{
“type”: “TileMatrixType”,
“identifier”: “4”,
“scaleDenominator”: 28670409.02,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16,
“matrixHeight”: 16
},
{
“type”: “TileMatrixType”,
“identifier”: “5”,
“scaleDenominator”: 14335204.51,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32,
“matrixHeight”: 32
},
{
“type”: “TileMatrixType”,
“identifier”: “6”,
“scaleDenominator”: 7167602.256,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 64,
“matrixHeight”: 64
},
{
“type”: “TileMatrixType”,
“identifier”: “7”,
“scaleDenominator”: 3583801.128,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 128,
“matrixHeight”: 128
},
{
“type”: “TileMatrixType”,
“identifier”: “8”,
“scaleDenominator”: 1791900.564,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 256,
“matrixHeight”: 256
},
{
“type”: “TileMatrixType”,
“identifier”: “9”,
“scaleDenominator”: 895950.282,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 512,
“matrixHeight”: 512
},
{
“type”: “TileMatrixType”,
“identifier”: “10”,
“scaleDenominator”: 447975.141,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1024,
“matrixHeight”: 1024
},
{
“type”: “TileMatrixType”,
“identifier”: “11”,
“scaleDenominator”: 223987.5705,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2048,
“matrixHeight”: 2048
},
{
“type”: “TileMatrixType”,
“identifier”: “12”,
“scaleDenominator”: 111993.7852,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4096,
“matrixHeight”: 4096
},
{
“type”: “TileMatrixType”,
“identifier”: “13”,
“scaleDenominator”: 55996.89262,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8192,
“matrixHeight”: 8192
},
{
“type”: “TileMatrixType”,
“identifier”: “14”,
“scaleDenominator”: 27998.44631,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16384,
“matrixHeight”: 16384
},
{
“type”: “TileMatrixType”,
“identifier”: “15”,
“scaleDenominator”: 13999.22316,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32768,
“matrixHeight”: 32768
},
{
“type”: “TileMatrixType”,
“identifier”: “16”,
“scaleDenominator”: 6999.611578,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 65536,
“matrixHeight”: 65536
},
{
“type”: “TileMatrixType”,
“identifier”: “17”,
“scaleDenominator”: 3499.805789,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 131072,
“matrixHeight”: 131072
},
{
“type”: “TileMatrixType”,
“identifier”: “18”,
“scaleDenominator”: 1749.902894,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 262144,
“matrixHeight”: 262144
},
{
“type”: “TileMatrixType”,
“identifier”: “19”,
“scaleDenominator”: 874.9514472,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 524288,
“matrixHeight”: 524288
},
{
“type”: “TileMatrixType”,
“identifier”: “20”,
“scaleDenominator”: 437.4757236,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1048576,
“matrixHeight”: 1048576
},
{
“type”: “TileMatrixType”,
“identifier”: “21”,
“scaleDenominator”: 218.7378618,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2097152,
“matrixHeight”: 2097152
},
{
“type”: “TileMatrixType”,
“identifier”: “22”,
“scaleDenominator”: 109.3689309,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4194304,
“matrixHeight”: 4194304
},
{
“type”: “TileMatrixType”,
“identifier”: “23”,
“scaleDenominator”: 54.68446545,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8388608,
“matrixHeight”: 8388608
},
{
“type”: “TileMatrixType”,
“identifier”: “24”,
“scaleDenominator”: 27.34223273,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16777216,
“matrixHeight”: 16777216
}
]
}
E.6 Antarctic Universal Polar Stereographic WGS84 Quad TileMatrixSet definition.
E.6.1 Antarctic UPS WGS84 Quad TileMatrixSet definition. XML Encoding
This is the XML definition of the UPSAntarcticWGS84Quad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
<TileMatrixSet xml:id="UPSAntarcticWGS84Quad">
<ows:Title>Universal Polar Stereographic WGS 84 Quad for Antarctic</ows:Title>
<ows:Identifier>UPSAntarcticWGS84Quad</ows:Identifier>
<ows:BoundingBox crs=“http://www.opengis.net/def/crs/EPSG/0/5042”>
<ows:LowerCorner>-14440759.350252 -14440759.350252</ows:LowerCorner>
<ows:UpperCorner>18440759.350252 18440759.350252</ows:UpperCorner>
</ows:BoundingBox>
<ows:SupportedCRS>
http://www.opengis.net/def/crs/EPSG/0/5042
</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>458726544.4</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>229363272.2</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>114681636.1</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4</MatrixWidth>
<MatrixHeight>4</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>57340818.05</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8</MatrixWidth>
<MatrixHeight>8</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>28670409.02</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16</MatrixWidth>
<MatrixHeight>16</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>14335204.51</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32</MatrixWidth>
<MatrixHeight>32</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>6</ows:Identifier>
<ScaleDenominator>7167602.256</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>64</MatrixWidth>
<MatrixHeight>64</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>7</ows:Identifier>
<ScaleDenominator>3583801.128</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>128</MatrixWidth>
<MatrixHeight>128</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>1791900.564</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>256</MatrixWidth>
<MatrixHeight>256</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>9</ows:Identifier>
<ScaleDenominator>895950.282</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>512</MatrixWidth>
<MatrixHeight>512</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>10</ows:Identifier>
<ScaleDenominator>447975.141</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1024</MatrixWidth>
<MatrixHeight>1024</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>11</ows:Identifier>
<ScaleDenominator>223987.5705</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2048</MatrixWidth>
<MatrixHeight>2048</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>111993.7852</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4096</MatrixWidth>
<MatrixHeight>4096</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>13</ows:Identifier>
<ScaleDenominator>55996.89262</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8192</MatrixWidth>
<MatrixHeight>8192</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>14</ows:Identifier>
<ScaleDenominator>27998.44631</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16384</MatrixWidth>
<MatrixHeight>16384</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>15</ows:Identifier>
<ScaleDenominator>13999.22316</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32768</MatrixWidth>
<MatrixHeight>32768</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>16</ows:Identifier>
<ScaleDenominator>6999.611578</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>65536</MatrixWidth>
<MatrixHeight>65536</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>17</ows:Identifier>
<ScaleDenominator>3499.805789</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>131072</MatrixWidth>
<MatrixHeight>131072</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>18</ows:Identifier>
<ScaleDenominator>1749.902894</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>262144</MatrixWidth>
<MatrixHeight>262144</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>19</ows:Identifier>
<ScaleDenominator>874.9514472</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>524288</MatrixWidth>
<MatrixHeight>524288</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>20</ows:Identifier>
<ScaleDenominator>437.4757236</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1048576</MatrixWidth>
<MatrixHeight>1048576</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>21</ows:Identifier>
<ScaleDenominator>218.7378618</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2097152</MatrixWidth>
<MatrixHeight>2097152</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>22</ows:Identifier>
<ScaleDenominator>109.3689309</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4194304</MatrixWidth>
<MatrixHeight>4194304</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>23</ows:Identifier>
<ScaleDenominator>54.68446545</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8388608</MatrixWidth>
<MatrixHeight>8388608</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>24</ows:Identifier>
<ScaleDenominator>27.34223273</ScaleDenominator>
<TopLeftCorner>-14440759.350252 18440759.350252</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16777216</MatrixWidth>
<MatrixHeight>16777216</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
E.6.2 Antarctic UPS WGS84 Quad TileMatrixSet definition. JSON Encoding
This is the JSON definition of the UPSAntarcticWGS84Quad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
{
“type”: “TileMatrixSetType”,
“title”: “AntarcticUniversalPolarStereoWGS84Quad”,
“identifier”: “Universal Polar Stereographic WGS 84 Quad for Antarctic”,
“boundingBox”:
{
“type”: “BoundingBoxType”,
“crs”: "http://www.opengis.net/def/crs/EPSG/0/5042",
“lowerCorner”:
[
-14440759.350252,
-14440759.350252
],
“upperCorner”:
[
18440759.350252,
18440759.350252
]
},
“supportedCRS”: "http://www.opengis.net/def/crs/EPSG/0/5042",
“tileMatrix”:
[
{
“type”: “TileMatrixType”,
“identifier”: “0”,
“scaleDenominator”: 458726544.4,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1,
“matrixHeight”: 1
},
{
“type”: “TileMatrixType”,
“identifier”: “1”,
“scaleDenominator”: 229363272.2,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2,
“matrixHeight”: 2
},
{
“type”: “TileMatrixType”,
“identifier”: “2”,
“scaleDenominator”: 114681636.1,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4,
“matrixHeight”: 4
},
{
“type”: “TileMatrixType”,
“identifier”: “3”,
“scaleDenominator”: 57340818.05,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8,
“matrixHeight”: 8
},
{
“type”: “TileMatrixType”,
“identifier”: “4”,
“scaleDenominator”: 28670409.02,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16,
“matrixHeight”: 16
},
{
“type”: “TileMatrixType”,
“identifier”: “5”,
“scaleDenominator”: 14335204.51,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32,
“matrixHeight”: 32
},
{
“type”: “TileMatrixType”,
“identifier”: “6”,
“scaleDenominator”: 7167602.256,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 64,
“matrixHeight”: 64
},
{
“type”: “TileMatrixType”,
“identifier”: “7”,
“scaleDenominator”: 3583801.128,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 128,
“matrixHeight”: 128
},
{
“type”: “TileMatrixType”,
“identifier”: “8”,
“scaleDenominator”: 1791900.564,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 256,
“matrixHeight”: 256
},
{
“type”: “TileMatrixType”,
“identifier”: “9”,
“scaleDenominator”: 895950.282,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 512,
“matrixHeight”: 512
},
{
“type”: “TileMatrixType”,
“identifier”: “10”,
“scaleDenominator”: 447975.141,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1024,
“matrixHeight”: 1024
},
{
“type”: “TileMatrixType”,
“identifier”: “11”,
“scaleDenominator”: 223987.5705,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2048,
“matrixHeight”: 2048
},
{
“type”: “TileMatrixType”,
“identifier”: “12”,
“scaleDenominator”: 111993.7852,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4096,
“matrixHeight”: 4096
},
{
“type”: “TileMatrixType”,
“identifier”: “13”,
“scaleDenominator”: 55996.89262,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8192,
“matrixHeight”: 8192
},
{
“type”: “TileMatrixType”,
“identifier”: “14”,
“scaleDenominator”: 27998.44631,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16384,
“matrixHeight”: 16384
},
{
“type”: “TileMatrixType”,
“identifier”: “15”,
“scaleDenominator”: 13999.22316,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32768,
“matrixHeight”: 32768
},
{
“type”: “TileMatrixType”,
“identifier”: “16”,
“scaleDenominator”: 6999.611578,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 65536,
“matrixHeight”: 65536
},
{
“type”: “TileMatrixType”,
“identifier”: “17”,
“scaleDenominator”: 3499.805789,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 131072,
“matrixHeight”: 131072
},
{
“type”: “TileMatrixType”,
“identifier”: “18”,
“scaleDenominator”: 1749.902894,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 262144,
“matrixHeight”: 262144
},
{
“type”: “TileMatrixType”,
“identifier”: “19”,
“scaleDenominator”: 874.9514472,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 524288,
“matrixHeight”: 524288
},
{
“type”: “TileMatrixType”,
“identifier”: “20”,
“scaleDenominator”: 437.4757236,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1048576,
“matrixHeight”: 1048576
},
{
“type”: “TileMatrixType”,
“identifier”: “21”,
“scaleDenominator”: 218.7378618,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2097152,
“matrixHeight”: 2097152
},
{
“type”: “TileMatrixType”,
“identifier”: “22”,
“scaleDenominator”: 109.3689309,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4194304,
“matrixHeight”: 4194304
},
{
“type”: “TileMatrixType”,
“identifier”: “23”,
“scaleDenominator”: 54.68446545,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8388608,
“matrixHeight”: 8388608
},
{
“type”: “TileMatrixType”,
“identifier”: “24”,
“scaleDenominator”: 27.34223273,
“topLeftCorner”:
[
-14440759.350252,
18440759.350252
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16777216,
“matrixHeight”: 16777216
}
]
}
E.7 European ETRS89 LAEA Quad TileMatrixSet definition.
E.7.1 European ETRS89 LAEA Quad TileMatrixSet definition. XML Encoding
This is the XML definition of the EuropeanETRS89_LAEAQuad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
<TileMatrixSet xml:id=“EuropeanETRS89_LAEAQuad”>
<ows:Title>Lambert Azimuthal Equal Area ETRS89 for Europe</ows:Title>
<ows:Identifier>EuropeanETRS89_LAEAQuad</ows:Identifier>
<ows:BoundingBox crs=“http://www.opengis.net/def/crs/EPSG/0/3035”>
<ows:LowerCorner>2000000.0 1000000.0</ows:LowerCorner>
<ows:UpperCorner>6500000 5500000.0</ows:UpperCorner>
</ows:BoundingBox>
<ows:SupportedCRS>
http://www.opengis.net/def/crs/EPSG/0/3035
</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>62779017.857142866</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>31389508.928571433</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>15694754.464285716</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4</MatrixWidth>
<MatrixHeight>4</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>7847377.232142858</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8</MatrixWidth>
<MatrixHeight>8</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>3923688.616071429</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16</MatrixWidth>
<MatrixHeight>16</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>1961844.3080357146</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32</MatrixWidth>
<MatrixHeight>32</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>6</ows:Identifier>
<ScaleDenominator>980922.1540178573</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>64</MatrixWidth>
<MatrixHeight>64</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>7</ows:Identifier>
<ScaleDenominator>490461.07700892864</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>128</MatrixWidth>
<MatrixHeight>128</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>245230.53850446432</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>256</MatrixWidth>
<MatrixHeight>256</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>9</ows:Identifier>
<ScaleDenominator>122615.26925223216</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>512</MatrixWidth>
<MatrixHeight>512</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>10</ows:Identifier>
<ScaleDenominator>61307.63462611608</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1024</MatrixWidth>
<MatrixHeight>1024</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>11</ows:Identifier>
<ScaleDenominator>30653.81731305804</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2048</MatrixWidth>
<MatrixHeight>2048</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>15326.90865652902</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4096</MatrixWidth>
<MatrixHeight>4096</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>13</ows:Identifier>
<ScaleDenominator>7663.45432826451</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8192</MatrixWidth>
<MatrixHeight>8192</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>14</ows:Identifier>
<ScaleDenominator>3831.727164132255</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16384</MatrixWidth>
<MatrixHeight>16384</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>15</ows:Identifier>
<ScaleDenominator>1915.8635820661275</ScaleDenominator>
<TopLeftCorner>2000000.0 5500000.0</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>32768</MatrixWidth>
<MatrixHeight>32768</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
E.7.2 European ETRS89 LAEA Quad TileMatrixSet definition. JSON Encoding
This is the JSON definition of the EuropeanETRS89_LAEAQuad tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
{
“type”: “TileMatrixSetType”,
“title”: “Lambert Azimuthal Equal Area ETRS89 for Europe”,
“identifier”: “EuropeanETRS89_LAEAQuad”,
“boundingBox”:
{
“type”: “BoundingBoxType”,
“crs”: “http://www.opengis.net/def/crs/EPSG/0/3035”,
“lowerCorner”:
[
2000000.0,
1000000.0
],
“upperCorner”:
[
6500000.0,
5500000.0
]
},
“supportedCRS”: “http://www.opengis.net/def/crs/EPSG/0/3035”,
“tileMatrix”:
[
{
“type”: “TileMatrixType”,
“identifier”: “0”,
“scaleDenominator”: 62779017.8571428,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1,
“matrixHeight”: 1
},
{
“type”: “TileMatrixType”,
“identifier”: “1”,
“scaleDenominator”: 31389508.9285714,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2,
“matrixHeight”: 2
},
{
“type”: “TileMatrixType”,
“identifier”: “2”,
“scaleDenominator”: 15694754.4642857,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4,
“matrixHeight”: 4
},
{
“type”: “TileMatrixType”,
“identifier”: “3”,
“scaleDenominator”: 7847377.23214285,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8,
“matrixHeight”: 8
},
{
“type”: “TileMatrixType”,
“identifier”: “4”,
“scaleDenominator”: 3923688.61607142,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16,
“matrixHeight”: 16
},
{
“type”: “TileMatrixType”,
“identifier”: “5”,
“scaleDenominator”: 1961844.30803571,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32,
“matrixHeight”: 32
},
{
“type”: “TileMatrixType”,
“identifier”: “6”,
“scaleDenominator”: 980922.154017857,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 64,
“matrixHeight”: 64
},
{
“type”: “TileMatrixType”,
“identifier”: “7”,
“scaleDenominator”: 490461.077008928,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 128,
“matrixHeight”: 128
},
{
“type”: “TileMatrixType”,
“identifier”: “8”,
“scaleDenominator”: 245230.538504464,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 256,
“matrixHeight”: 256
},
{
“type”: “TileMatrixType”,
“identifier”: “9”,
“scaleDenominator”: 122615.269252232,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 512,
“matrixHeight”: 512
},
{
“type”: “TileMatrixType”,
“identifier”: “10”,
“scaleDenominator”: 61307.634626116,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1024,
“matrixHeight”: 1024
},
{
“type”: “TileMatrixType”,
“identifier”: “11”,
“scaleDenominator”: 30653.817313058,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2048,
“matrixHeight”: 2048
},
{
“type”: “TileMatrixType”,
“identifier”: “12”,
“scaleDenominator”: 15326.908656529,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4096,
“matrixHeight”: 4096
},
{
“type”: “TileMatrixType”,
“identifier”: “13”,
“scaleDenominator”: 7663.45432826451,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8192,
“matrixHeight”: 8192
},
{
“type”: “TileMatrixType”,
“identifier”: “14”,
“scaleDenominator”: 3831.72716413225,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16384,
“matrixHeight”: 16384
},
{
“type”: “TileMatrixType”,
“identifier”: “15”,
“scaleDenominator”: 1915.86358206612,
“topLeftCorner”:
[
2000000.0,
5500000.0
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32768,
“matrixHeight”: 32768
}
]
}
E.8 Canadian Lambert Conformal Conic NAD83 TileMatrixSet definition.
E.8.1 Canadian Lambert Conformal Conic NAD83 TileMatrixSet definition. XML Encoding
This is the XML definition of the CanadianNAD83_LCC tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
<TileMatrixSet xml:id="CanadianNAD83_LCC">
<ows:Title>Lambert Conformal Conic NAD83 for Canada</ows:Title>
<ows:Identifier>CanadianNAD83_LCC</ows:Identifier>
<ows:BoundingBox crs=“http://www.opengis.net/def/crs/EPSG/0/3978”>
<ows:LowerCorner>-7786476.885838887 -5153821.09213678</ows:LowerCorner>
<ows:UpperCorner>7148753.233541353 7928343.534071138</ows:UpperCorner>
</ows:BoundingBox>
<ows:SupportedCRS>
http://www.opengis.net/def/crs/EPSG/0/3978
</ows:SupportedCRS>
<TileMatrix>
<ows:Identifier>0</ows:Identifier>
<ScaleDenominator>137016643.080905</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>5</MatrixWidth>
<MatrixHeight>5</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>80320101.1163925</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8</MatrixWidth>
<MatrixHeight>8</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>47247118.3037603</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>13</MatrixWidth>
<MatrixHeight>14</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>28348270.9822562</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>21</MatrixWidth>
<MatrixHeight>22</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>16536491.4063161</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>36</MatrixWidth>
<MatrixHeight>38</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>5</ows:Identifier>
<ScaleDenominator>9449423.66075207</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>62</MatrixWidth>
<MatrixHeight>66</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>6</ows:Identifier>
<ScaleDenominator>5669654.19645125</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>103</MatrixWidth>
<MatrixHeight>110</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>7</ows:Identifier>
<ScaleDenominator>3307298.28126323</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>177</MatrixWidth>
<MatrixHeight>188</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>8</ows:Identifier>
<ScaleDenominator>1889884.73215041</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>309</MatrixWidth>
<MatrixHeight>329</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>9</ows:Identifier>
<ScaleDenominator>1133930.83929025</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>515</MatrixWidth>
<MatrixHeight>548</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>10</ows:Identifier>
<ScaleDenominator>661459.656252643</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>882</MatrixWidth>
<MatrixHeight>938</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>11</ows:Identifier>
<ScaleDenominator>396875.793751586</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1470</MatrixWidth>
<MatrixHeight>1563</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>12</ows:Identifier>
<ScaleDenominator>236235.591518802</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2469</MatrixWidth>
<MatrixHeight>2626</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>13</ows:Identifier>
<ScaleDenominator>137016.643080905</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4257</MatrixWidth>
<MatrixHeight>4528</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>14</ows:Identifier>
<ScaleDenominator>80320.1011163925</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>7262</MatrixWidth>
<MatrixHeight>7723</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>15</ows:Identifier>
<ScaleDenominator>47247.1183037603</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>12344</MatrixWidth>
<MatrixHeight>13130</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>16</ows:Identifier>
<ScaleDenominator>28348.2709822562</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>20574</MatrixWidth>
<MatrixHeight>21882</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>17</ows:Identifier>
<ScaleDenominator>16536.4914063161</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>35269</MatrixWidth>
<MatrixHeight>37512</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>18</ows:Identifier>
<ScaleDenominator>9449.42366075207</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>61720</MatrixWidth>
<MatrixHeight>65646</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>19</ows:Identifier>
<ScaleDenominator>5669.65419645125</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>102866</MatrixWidth>
<MatrixHeight>109409</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>20</ows:Identifier>
<ScaleDenominator>3307.29828126323</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>176341</MatrixWidth>
<MatrixHeight>187558</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>21</ows:Identifier>
<ScaleDenominator>1889.88473215041</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>308596</MatrixWidth>
<MatrixHeight>328227</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>22</ows:Identifier>
<ScaleDenominator>1133.93083929025</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>514327</MatrixWidth>
<MatrixHeight>547044</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>23</ows:Identifier>
<ScaleDenominator>661.459656252643</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>881703</MatrixWidth>
<MatrixHeight>937790</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>24</ows:Identifier>
<ScaleDenominator>396.875793751586</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1469505</MatrixWidth>
<MatrixHeight>1562983</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>25</ows:Identifier>
<ScaleDenominator>236.235591518802</ScaleDenominator>
<TopLeftCorner>-34655800 39310000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2468768</MatrixWidth>
<MatrixHeight>2625811</MatrixHeight>
</TileMatrix>
</TileMatrixSet>
E.8.2 Canadian Lambert Conformal Conic NAD83 TileMatrixSet definition. JSON Encoding
This is the JSON definition of the CanadianNAD83_LCC tile matrix set that can be reproduced by other standards needing to define a tile matrix set. Not all TileMatrix elements need to be included and including other TileMatrices for more detailed scales is possible if they follow the same pattern.
{
“type”: “TileMatrixSetType”,
“title”: “Lambert conformal conic NAD83 for Canada”,
“identifier”: “CanadianNAD83_LCC”,
“boundingBox”:
{
“type”: “BoundingBoxType”,
“crs”: “http://www.opengis.net/def/crs/EPSG/0/3978”,
“lowerCorner”:
[
-7786476.885838887,
-5153821.09213678
],
“upperCorner”:
[
7148753.233541353,
7928343.534071138
]
},
“supportedCRS”: “http://www.opengis.net/def/crs/EPSG/0/3978”,
“tileMatrix”:
[
{
“type”: “TileMatrixType”,
“identifier”: “0”,
“scaleDenominator”: 145000000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 5,
“matrixHeight”: 5
},
{
“type”: “TileMatrixType”,
“identifier”: “1”,
“scaleDenominator”: 85000000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8,
“matrixHeight”: 8
},
{
“type”: “TileMatrixType”,
“identifier”: “2”,
“scaleDenominator”: 50000000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 13,
“matrixHeight”: 14
},
{
“type”: “TileMatrixType”,
“identifier”: “3”,
“scaleDenominator”: 30000000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 21,
“matrixHeight”: 22
},
{
“type”: “TileMatrixType”,
“identifier”: “4”,
“scaleDenominator”: 17500000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 36,
“matrixHeight”: 38
},
{
“type”: “TileMatrixType”,
“identifier”: “5”,
“scaleDenominator”: 10000000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 62,
“matrixHeight”: 66
},
{
“type”: “TileMatrixType”,
“identifier”: “6”,
“scaleDenominator”: 6000000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 103,
“matrixHeight”: 110
},
{
“type”: “TileMatrixType”,
“identifier”: “7”,
“scaleDenominator”: 3500000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 177,
“matrixHeight”: 188
},
{
“type”: “TileMatrixType”,
“identifier”: “8”,
“scaleDenominator”: 2000000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 309,
“matrixHeight”: 329
},
{
“type”: “TileMatrixType”,
“identifier”: “9”,
“scaleDenominator”: 1200000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 515,
“matrixHeight”: 548
},
{
“type”: “TileMatrixType”,
“identifier”: “10”,
“scaleDenominator”: 700000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 882,
“matrixHeight”: 938
},
{
“type”: “TileMatrixType”,
“identifier”: “11”,
“scaleDenominator”: 420000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1470,
“matrixHeight”: 1563
},
{
“type”: “TileMatrixType”,
“identifier”: “12”,
“scaleDenominator”: 250000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2469,
“matrixHeight”: 2626
},
{
“type”: “TileMatrixType”,
“identifier”: “13”,
“scaleDenominator”: 145000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4257,
“matrixHeight”: 4528
},
{
“type”: “TileMatrixType”,
“identifier”: “14”,
“scaleDenominator”: 85000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 7262,
“matrixHeight”: 7723
},
{
“type”: “TileMatrixType”,
“identifier”: “15”,
“scaleDenominator”: 50000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 12344,
“matrixHeight”: 13130
},
{
“type”: “TileMatrixType”,
“identifier”: “16”,
“scaleDenominator”: 30000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 20574,
“matrixHeight”: 21882
},
{
“type”: “TileMatrixType”,
“identifier”: “17”,
“scaleDenominator”: 17500,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 35269,
“matrixHeight”: 37512
},
{
“type”: “TileMatrixType”,
“identifier”: “18”,
“scaleDenominator”: 10000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 61720,
“matrixHeight”: 65646
},
{
“type”: “TileMatrixType”,
“identifier”: “19”,
“scaleDenominator”: 6000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 102866,
“matrixHeight”: 109409
},
{
“type”: “TileMatrixType”,
“identifier”: “20”,
“scaleDenominator”: 3500,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 176341,
“matrixHeight”: 187558
},
{
“type”: “TileMatrixType”,
“identifier”: “21”,
“scaleDenominator”: 2000,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 308596,
“matrixHeight”: 328227
},
{
“type”: “TileMatrixType”,
“identifier”: “22”,
“scaleDenominator”: 1200,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 514327,
“matrixHeight”: 547044
},
{
“type”: “TileMatrixType”,
“identifier”: “23”,
“scaleDenominator”: 700,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 881703,
“matrixHeight”: 937790
},
{
“type”: “TileMatrixType”,
“identifier”: “24”,
“scaleDenominator”: 420,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 1469505,
“matrixHeight”: 1562983
},
{
“type”: “TileMatrixType”,
“identifier”: “25”,
“scaleDenominator”: 250,
“topLeftCorner”:
[
-34655800,
39310000
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2468768,
“matrixHeight”: 2625811
}
]
}
Annex F Example encodings for TileMatrixSetLink2D (Informative)
This informative Annex provides an example of use for TileMatrixSetLink2D and TileMatrixSetLimits2D data structures.
F.1 XML document instance using TileMatrixSetLink2D
TileMatrixSetLink2D data structure can be used for a resource to specify the tiling schema the resource supports. Eventually, the resource can only be available in a fragment of the tiled space and to specify that, the TileMatrixSetLimits2D data structure is populated. This example illustrates and instance encoded in XML.
<?xml version=“1.0” encoding=“UTF-8”?>
<LayerExample xmlns=“http://www.opengis.net/tms/1.0/link_xmp” xmlns:tms=“http://www.opengis.net/tms/1.0” xmlns:ows=“http://www.opengis.net/ows/2.0” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=“http://www.opengis.net/tms/1.0/link_xmp LayerWithTMSLink.xsd”>
<ows:Title>Catalonia</ows:Title>
<ows:Abstract>Catalonia Extent</ows:Abstract>
<ows:WGS84BoundingBox>
<ows:LowerCorner>-1.062 38.198</ows:LowerCorner>
<ows:UpperCorner>4.827 43.748</ows:UpperCorner>
</ows:WGS84BoundingBox>
<ows:Identifier>Cat</ows:Identifier>
<tms:TileMatrixSetLink>
<tms:TileMatrixSet>WorldCRS84Quad</tms:TileMatrixSet>
<tms:TileMatrixSetLimits>
<tms:TileMatrixLimits>
<tms:TileMatrix>3</tms:TileMatrix>
<tms:MinTileRow>4</tms:MinTileRow>
<tms:MaxTileRow>5</tms:MaxTileRow>
<tms:MinTileCol>2</tms:MinTileCol>
<tms:MaxTileCol>2</tms:MaxTileCol>
</tms:TileMatrixLimits>
<tms:TileMatrixLimits>
<tms:TileMatrix>4</tms:TileMatrix>
<tms:MinTileRow>8</tms:MinTileRow>
<tms:MaxTileRow>9</tms:MaxTileRow>
<tms:MinTileCol>4</tms:MinTileCol>
<tms:MaxTileCol>4</tms:MaxTileCol>
</tms:TileMatrixLimits>
</tms:TileMatrixSetLimits>
</tms:TileMatrixSetLink>
</LayerExample>
F.2 XML schema used to validate the previous XML document
The TileMatrixSetLink2D data structure can be included in the definition of a resource data model. This XML Schema fragment illustrates how this standard XML schemas can be used in conjunction with the resource schemas.
<schema xmlns=“http://www.w3.org/2001/XMLSchema” xmlns:xmp=“http://www.opengis.net/tms/1.0/link_xmp” xmlns:tms=“http://www.opengis.net/tms/1.0” xmlns:ows=“http://www.opengis.net/ows/2.0” xmlns:xlink=“http://www.w3.org/1999/xlink” targetNamespace=“http://www.opengis.net/tms/1.0/link_xmp” elementFormDefault=“qualified” xml:lang=“en”>
<annotation>
<appinfo>TMS Link example 2019-02-02</appinfo>
<documentation>
This XML Schema Document encodes the TileMatrisSet data structures.
TMS is an OGC Standard Copyright (c) 2019 Open Geospatial Consortium, Inc. All Rights Reserved.
To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.
</documentation>
</annotation>
<!– *********************************************************************
Includes and imports.
********************************************************************* –>
<import namespace=“http://www.opengis.net/tms/1.0” schemaLocation=“../tms.xsd”/>
<import namespace=“http://www.opengis.net/ows/2.0” schemaLocation=“../../../../ows/2.0/owsAll.xsd”/>
<import namespace=“http://www.w3.org/1999/xlink” schemaLocation=“../../../../xlink/1.0.0/xlinks.xsd”/>
<!– ********************************************************************* –>
<!– ** The Layer Example element. ** –>
<!– ********************************************************************* –>
<element name=“LayerExample” type=“xmp:LayerTypeExample” substitutionGroup=“ows:DatasetDescriptionSummary”/>
<complexType name=“LayerTypeExample”>
<annotation>
<documentation>Example of a Layer tht links to TMS Link</documentation>
</annotation>
<complexContent>
<extension base=“ows:DatasetDescriptionSummaryBaseType”>
<sequence>
<element ref=“tms:TileMatrixSetLink” minOccurs=“0” maxOccurs=“unbounded”>
<annotation>
<documentation>Link to a tile mateix set</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
</schema>
F.3 JSON document instance using TileMatrisSetLink2D
TileMatrixSetLink2D data structure can be used for a resource to specify the tiling schema the resource supports. Eventually, the resource can only be available in a fragment of the tiled space and to specify that, the TileMatrixSetLimits2D data structure is populated. This example illustrates and instance encoded in JSON.
{
“title”: “Catalonia”,
“identifier”: “Cat”,
“tileMatrixSetLink”: {
“type”: “TileMatrixSetLink”,
“tileMatrixSet”: “WorldCRS84Quad”,
“tileMatrixSetLimits”: [{
“type”: “TileMatrixLimits”,
“tileMatrix”: “3”,
“minTileRow”: 4,
“maxTileRow”: 5,
“minTileCol”: 2,
“maxTileCol”: 2
},{
“type”: “TileMatrixLimits”,
“tileMatrix”: “4”,
“minTileRow”: 8,
“maxTileRow”: 9,
“minTileCol”: 4,
“maxTileCol”: 4
}]
}
}
F.4 JSON schema used to validate the previous JSON document
The TileMatrixSetLink2D data structure can be included in the definition of a resource data model. This JSON Schema fragment illustrates how this standard JSON schemas can be used in conjunction with the resource schemas.
{
“$schema”: “http://json-schema.org/draft-04/schema#”,
“title”: “”,
“description”: “”,
“type”: “object”,
“properties”: {
“title”: {
“description”: “Title of this resource, normally used for display to a human”,
“type”: “string”
},
“abstract”: {
“description”: “Brief narrative description of this resource, normally available for display to a human”,
“type”: “string”
},
“identifier”: {
“description”: “Resource identifier”,
“type”: “string”
},
“tileMatrixSetLink”: {
“description”: “Tile Matrix Set Link data structure”,
“$ref”: “#/definitions/tileMatrixSetLink”
}
},
“definitions”:{
“tileMatrixSetLink”: {
“type”: “object”,
“required”: [“type”, “tileMatrixSet”],
“properties”: {
“type”: {
“description”: “Type of the Tile Matrix Set Link”,
“enum”: [“TileMatrixSetLink”]
},
“tileMatrixSet”: {
“description”: “Reference to a tileMatrixSet”,
“type”: “string”
},
“tileMatrixSetLimits”: {
“description”: “Index limits for this tileMatrixSet”,
“type”: “array”,
“items”: {
“$ref”: “#/definitions/tileMatrixSetLimits”
}
}
}
},
“tileMatrixSetLimits”: {
“type”: “object”,
“required”: [“type”, “tileMatrix”, “minTileRow”, “maxTileRow”, “minTileCol”, “maxTileCol”],
“properties”: {
“type”: {
“description”: “Type of the Tile Matrix Set Limits”,
“enum”: [“TileMatrixLimits”]
},
“tileMatrix”: {
“description”: “Reference to a tileMatrix identifier”,
“type”: “string”
},
“minTileRow”: {
“description”: “Minimum tile row index valid for this layer”,
“type”: “number”,
“minimum”: 0,
“multipleOf” : 1
},
“maxTileRow”: {
“description”: “Maximim tile row index valid for this layer”,
“type”: “number”,
“minimum”: 0,
“multipleOf” : 1
},
“minTileCol”: {
“description”: “Minimum tile column index valid for this layer”,
“type”: “number”,
“minimum”: 0,
“multipleOf” : 1
},
“maxTileCol”: {
“description”: “Maximim tile column index valid for this layer”,
“type”: “number”,
“minimum”: 0,
“multipleOf” : 1
}
}
}
}
}
Annex G Example encodings for JSON-LD (Informative)
This informative Annex provides an example of JSON-LD TileMatrixSet2D and the corresponding result in RDF Turtle.
G.1 JSON-LD document instance
Example of JSON-LD document instance. @context documents have been included when necessary and the identifiers have been qualified with a namespace ensuring a good transformation to RDF using a JSON-LD engine. The complete example can be found in the supplemental material described in Annex B.
{
“@context”: [“http://localhost/json-ld/tms-context.json”, {“example”: “http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/”}],
“type”: “TileMatrixSetType”,
“title”: “CRS84 for the World”,
“identifier”: “example:”,
“boundingBox”:
{
“@context”: “http://localhost/json-ld/tms-boundingbox-context.json”,
“@id”: “example:BoundingBox”,
“type”: “BoundingBoxType”,
“crs”: “http://www.opengis.net/def/crs/OGC/1.3/CRS84”,
“lowerCorner”:
[
-180,
-90
],
“upperCorner”:
[
180,
90
]
},
“supportedCRS”: “http://www.opengis.net/def/crs/OGC/1.3/CRS84”,
“wellKnownScaleSet”: “http://www.opengis.net/def/wkss/OGC/1.0/GoogleCRS84Quad”,
“tileMatrix”:
[
{
“@context”: “http://localhost/json-ld/tms-tilematrix-context.json”,
“type”: “TileMatrixType”,
“identifier”: “example:0”,
“scaleDenominator”: 279541132.014358,
“topLeftCorner”:
[
-180,
90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 2,
“matrixHeight”: 1
},
{
“@context”: “http://localhost/json-ld/tms-tilematrix-context.json”,
“type”: “TileMatrixType”,
“identifier”: “example:1”,
“scaleDenominator”: 139770566.007179,
“topLeftCorner”:
[
-180,
90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4,
“matrixHeight”: 2
},
{
“@context”: “http://localhost/json-ld/tms-tilematrix-context.json”,
“type”: “TileMatrixType”,
“identifier”: “example:2”,
“scaleDenominator”: 69885283.0035897,
“topLeftCorner”:
[
-180,
90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8,
“matrixHeight”: 4
},
{
“@context”: “http://localhost/json-ld/tms-tilematrix-context.json”,
“type”: “TileMatrixType”,
“identifier”: “example:3”,
“scaleDenominator”: 34942641.5017948,
“topLeftCorner”:
[
-180,
90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16,
“matrixHeight”: 8
},
{
“@context”: “http://localhost/json-ld/tms-tilematrix-context.json”,
“type”: “TileMatrixType”,
“identifier”: “example:4”,
“scaleDenominator”: 17471320.7508974,
“topLeftCorner”:
[
-180,
90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32,
“matrixHeight”: 16
},
{
“@context”: “http://localhost/json-ld/tms-tilematrix-context.json”,
“type”: “TileMatrixType”,
“identifier”: “example:5”,
“scaleDenominator”: 8735660.37544871,
“topLeftCorner”:
[
-180,
90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 64,
“matrixHeight”: 32
},
{
“@context”: “http://localhost/json-ld/tms-tilematrix-context.json”,
“type”: “TileMatrixType”,
“identifier”: “example:6”,
“scaleDenominator”: 4367830.18772435,
“topLeftCorner”:
[
-180,
90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 128,
“matrixHeight”: 64
}
]
}
G.2 N3 turtle document
This document has been automatically generated by the JSON-DL Playground ( https://json-ld.org/playground/) by providing the document in subsection G.1 as input. The complete example can be found in the supplemental material described in Annex B.
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/0> <http://www.opengis.net/tms/1.0/matrixHeight> “1”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/0> <http://www.opengis.net/tms/1.0/matrixWidth> “2”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/0> <http://www.opengis.net/tms/1.0/scaleDenominator> “2.79541132014358E8”^^<http://www.w3.org/2001/XMLSchema#double> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/0> <http://www.opengis.net/tms/1.0/tileHeight> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/0> <http://www.opengis.net/tms/1.0/tileWidth> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/0> <http://www.opengis.net/tms/1.0/topLeftCorner> _:b7 .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/0> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.opengis.net/tms/1.0/TileMatrixType> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/1> <http://www.opengis.net/tms/1.0/matrixHeight> “2”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/1> <http://www.opengis.net/tms/1.0/matrixWidth> “4”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/1> <http://www.opengis.net/tms/1.0/scaleDenominator> “1.39770566007179E8”^^<http://www.w3.org/2001/XMLSchema#double> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/1> <http://www.opengis.net/tms/1.0/tileHeight> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/1> <http://www.opengis.net/tms/1.0/tileWidth> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/1> <http://www.opengis.net/tms/1.0/topLeftCorner> _:b9 .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/1> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.opengis.net/tms/1.0/TileMatrixType> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/2> <http://www.opengis.net/tms/1.0/matrixHeight> “4”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/2> <http://www.opengis.net/tms/1.0/matrixWidth> “8”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/2> <http://www.opengis.net/tms/1.0/scaleDenominator> “6.98852830035897E7”^^<http://www.w3.org/2001/XMLSchema#double> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/2> <http://www.opengis.net/tms/1.0/tileHeight> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/2> <http://www.opengis.net/tms/1.0/tileWidth> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/2> <http://www.opengis.net/tms/1.0/topLeftCorner> _:b11 .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/2> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.opengis.net/tms/1.0/TileMatrixType> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/3> <http://www.opengis.net/tms/1.0/matrixHeight> “8”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/3> <http://www.opengis.net/tms/1.0/matrixWidth> “16”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/3> <http://www.opengis.net/tms/1.0/scaleDenominator> “3.49426415017948E7”^^<http://www.w3.org/2001/XMLSchema#double> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/3> <http://www.opengis.net/tms/1.0/tileHeight> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/3> <http://www.opengis.net/tms/1.0/tileWidth> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/3> <http://www.opengis.net/tms/1.0/topLeftCorner> _:b13 .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/3> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.opengis.net/tms/1.0/TileMatrixType> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/4> <http://www.opengis.net/tms/1.0/matrixHeight> “16”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/4> <http://www.opengis.net/tms/1.0/matrixWidth> “32”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/4> <http://www.opengis.net/tms/1.0/scaleDenominator> “1.74713207508974E7”^^<http://www.w3.org/2001/XMLSchema#double> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/4> <http://www.opengis.net/tms/1.0/tileHeight> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/4> <http://www.opengis.net/tms/1.0/tileWidth> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/4> <http://www.opengis.net/tms/1.0/topLeftCorner> _:b15 .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/4> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.opengis.net/tms/1.0/TileMatrixType> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/5> <http://www.opengis.net/tms/1.0/matrixHeight> “32”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/5> <http://www.opengis.net/tms/1.0/matrixWidth> “64”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/5> <http://www.opengis.net/tms/1.0/scaleDenominator> “8.735660375448709E6”^^<http://www.w3.org/2001/XMLSchema#double> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/5> <http://www.opengis.net/tms/1.0/tileHeight> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/5> <http://www.opengis.net/tms/1.0/tileWidth> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/5> <http://www.opengis.net/tms/1.0/topLeftCorner> _:b17 .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/5> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.opengis.net/tms/1.0/TileMatrixType> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/6> <http://www.opengis.net/tms/1.0/matrixHeight> “64”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/6> <http://www.opengis.net/tms/1.0/matrixWidth> “128”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/6> <http://www.opengis.net/tms/1.0/scaleDenominator> “4.36783018772435E6”^^<http://www.w3.org/2001/XMLSchema#double> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/6> <http://www.opengis.net/tms/1.0/tileHeight> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/6> <http://www.opengis.net/tms/1.0/tileWidth> “256”^^<http://www.w3.org/2001/XMLSchema#integer> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/6> <http://www.opengis.net/tms/1.0/topLeftCorner> _:b19 .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/6> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.opengis.net/tms/1.0/TileMatrixType> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/> <http://www.opengis.net/tms/1.0/boundingBox> <http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/BoundingBox> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/> <http://www.opengis.net/tms/1.0/supportedCRS> <http://www.opengis.net/def/crs/OGC/1.3/CRS84> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/> <http://www.opengis.net/tms/1.0/tileMatrix> _:b0 .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/> <http://www.opengis.net/tms/1.0/title> “CRS84 for the World” .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/> <http://www.opengis.net/tms/1.0/wellKnownScaleSet> <http://www.opengis.net/def/wkss/OGC/1.0/GoogleCRS84Quad> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.opengis.net/tms/1.0/TileMatrixSetType> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/BoundingBox> <http://www.opengis.net/tms/1.0/crs> <http://www.opengis.net/def/crs/OGC/1.3/CRS84> .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/BoundingBox> <http://www.opengis.net/tms/1.0/lowerCorner> _:b21 .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/BoundingBox> <http://www.opengis.net/tms/1.0/upperCorner> _:b23 .
<http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/BoundingBox> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.opengis.net/tms/1.0/BoundingBoxType> .
_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/0> .
_:b0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b1 .
_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/1> .
_:b1 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b2 .
_:b10 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “9.0E1”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b10 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
_:b11 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-1.8E2”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b11 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b12 .
_:b12 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “9.0E1”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b12 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
_:b13 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-1.8E2”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b13 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b14 .
_:b14 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “9.0E1”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b14 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
_:b15 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-1.8E2”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b15 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b16 .
_:b16 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “9.0E1”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b16 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
_:b17 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-1.8E2”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b17 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b18 .
_:b18 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “9.0E1”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b18 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
_:b19 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-1.8E2”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b19 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b20 .
_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/2> .
_:b2 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b3 .
_:b20 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “9.0E1”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b20 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
_:b21 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-1.8E2”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b21 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b22 .
_:b22 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-9.0E1”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b22 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
_:b23 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-1.8E2”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b23 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b24 .
_:b24 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-9.0E1”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b24 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/3> .
_:b3 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b4 .
_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/4> .
_:b4 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b5 .
_:b5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/5> .
_:b5 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b6 .
_:b6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <http://www.opengis.net/tms/1.0/example/WorldCRS84Quad/6> .
_:b6 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
_:b7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-1.8E2”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b7 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b8 .
_:b8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “9.0E1”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b8 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> .
_:b9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> “-1.8E2”^^<http://www.w3.org/2001/XMLSchema#double> .
_:b9 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:b10 .
G.3 JSON-LD @context document example
This is the tms-context.json document that is included at the beginning of a JSON TileMatrixSet2D instance to transform it into a JSON-LD file. Other similar @context documents are included in other sections and are provided as supplementary material to this document as explained in Annex B.
{
“@context”:
{
“tms”: “http://www.opengis.net/tms/1.0/”,
“identifier”: “@id”,
“type”: “@type”,
“title”: “tms:title”,
“abstract”: “tms:abstract”,
“boundingBox”: “tms:boundingBox”,
“TileMatrixSetType”: “tms:TileMatrixSetType”,
“supportedCRS”:
{
“@id”: “tms:supportedCRS”,
“@type”: “@id”
},
“wellKnownScaleSet”:
{
“@id”: “tms:wellKnownScaleSet”,
“@type”: “@id”
},
“tileMatrix”:
{
“@id”: “tms:tileMatrix”,
“@container”: “@list”
}
}
}
Annex H Example encodings for Variable Matrix Width (Informative)
This informative Annex provides an example of the Variable Matrix Width extension. In this case, the variable matrix width is applied only to the tile matrix with identifier 3 and 4.
H.1 XML document instance using VariableMatrixWidth
<?xml version=“1.0” encoding=“UTF-8”?>
<TileMatrixSet id="WorldCRS84Quad" xmlns="http://www.opengis.net/tms/1.0"
xmlns:ows="http://www.opengis.net/ows/2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/tms/1.0 ../tms.xsd">
<ows:Title>CRS84 for the World</ows:Title>
<ows:Identifier>WorldCRS84Quad</ows:Identifier>
<ows:BoundingBox crs="http://www.opengis.net/def/crs/OGC/1.3/CRS84">
<ows:LowerCorner>-180 -90</ows:LowerCorner>
<ows:UpperCorner>180 90</ows:UpperCorner>
</ows:BoundingBox>
<ows:SupportedCRS>
http://www.opengis.net/def/crs/OGC/1.3/CRS84
</ows:SupportedCRS>
<WellKnownScaleSet>
http://www.opengis.net/def/wkss/OGC/1.0/GoogleCRS84Quad
</WellKnownScaleSet>
<TileMatrix>
<ows:Identifier>1</ows:Identifier>
<ScaleDenominator>279541132.0143589</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>2</ows:Identifier>
<ScaleDenominator>139770566.0071794</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>4</MatrixWidth>
<MatrixHeight>2</MatrixHeight>
</TileMatrix>
<TileMatrix>
<ows:Identifier>3</ows:Identifier>
<ScaleDenominator>69885283.00358972</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>8</MatrixWidth>
<MatrixHeight>4</MatrixHeight>
<VariableMatrixWidth>
<Coalesce>2</Coalesce>
<MinTileRow>0</MinTileRow>
<MaxTileRow>0</MaxTileRow>
</VariableMatrixWidth>
<VariableMatrixWidth>
<Coalesce>2</Coalesce>
<MinTileRow>3</MinTileRow>
<MaxTileRow>3</MaxTileRow>
</VariableMatrixWidth>
</TileMatrix>
<TileMatrix>
<ows:Identifier>4</ows:Identifier>
<ScaleDenominator>34942641.50179486</ScaleDenominator>
<TopLeftCorner>-180 90</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>16</MatrixWidth>
<MatrixHeight>8</MatrixHeight>
<VariableMatrixWidth>
<Coalesce>4</Coalesce>
<MinTileRow>0</MinTileRow>
<MaxTileRow>0</MaxTileRow>
</VariableMatrixWidth>
<VariableMatrixWidth>
<Coalesce>2</Coalesce>
<MinTileRow>1</MinTileRow>
<MaxTileRow>1</MaxTileRow>
</VariableMatrixWidth>
<VariableMatrixWidth>
<Coalesce>2</Coalesce>
<MinTileRow>6</MinTileRow>
<MaxTileRow>6</MaxTileRow>
</VariableMatrixWidth>
<VariableMatrixWidth>
<Coalesce>4</Coalesce>
<MinTileRow>7</MinTileRow>
<MaxTileRow>7</MaxTileRow>
</VariableMatrixWidth>
</TileMatrix>
</TileMatrixSet>
H.2 JSON document instance using VariableMatrixWidth
This example takes the first five tile matrices of the definition of the GNOSIS Global Grid (http://ecere.ca/gnosis/) and presents them encoded in JSON following this standard. Please note that GNOSIS Global Grid conforms to the GoogleCRS84Quad well known scale set but it is not using the same identifiers as the WorldCRS84Quad TileMatrixSet. The complete example can be found in the supplemental material described in Annex B.
{
“type”: “TileMatrixSetType”,
“title”: “GNOSIS for the World”,
“identifier”: “GNOSISGlobalGrid”,
“boundingBox”:
{
“type”: “BoundingBoxType”,
“crs”: “http://www.opengis.net/def/crs/OGC/1.3/CRS84”,
“lowerCorner”:
[
-180,
-90
],
“upperCorner”:
[
180,
90
]
},
“supportedCRS”: “http://www.opengis.net/def/crs/OGC/1.3/CRS84”,
“wellKnownScaleSet”: “http://www.opengis.net/def/wkss/OGC/1.0/GoogleCRS84Quad”
“tileMatrix”:
[
{
“type”: “TileMatrixType”,
“identifier”: “0”,
“scaleDenominator”: 139770566.0071794390678,
“topLeftCorner”:
[
-180,
-90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 4,
“matrixHeight”: 2
},
{
“type”: “TileMatrixType”,
“identifier”: “1”,
“scaleDenominator”: 69885283.0035897195339,
“topLeftCorner”:
[
-180,
-90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 8,
“matrixHeight”: 4,
“variableMatrixWidth”:
[
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 2,
“minTileRow”: 0,
“maxTileRow”: 0
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 2,
“minTileRow”: 3,
“maxTileRow”: 3
}
]
},
{
“type”: “TileMatrixType”,
“identifier”: “2”,
“scaleDenominator”: 34942641.501794859767,
“topLeftCorner”:
[
-180,
-90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 16,
“matrixHeight”: 8,
“variableMatrixWidth”:
[
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 4,
“minTileRow”: 0,
“maxTileRow”: 0
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 2,
“minTileRow”: 1,
“maxTileRow”: 1
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 2,
“minTileRow”: 6,
“maxTileRow”: 6
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 4,
“minTileRow”: 7,
“maxTileRow”: 7
}
]
},
{
“type”: “TileMatrixType”,
“identifier”: “3”,
“scaleDenominator”: 17471320.7508974298835,
“topLeftCorner”:
[
-180,
-90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 32,
“matrixHeight”: 16,
“variableMatrixWidth”:
[
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 8,
“minTileRow”: 0,
“maxTileRow”: 0
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 4,
“minTileRow”: 1,
“maxTileRow”: 1
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 2,
“minTileRow”: 2,
“maxTileRow”: 3
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 2,
“minTileRow”: 12,
“maxTileRow”: 13
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 4,
“minTileRow”: 14,
“maxTileRow”: 14
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 8,
“minTileRow”: 15,
“maxTileRow”: 15
}
]
},
{
“type”: “TileMatrixType”,
“identifier”: “4”,
“scaleDenominator”: 8735660.3754487149417,
“topLeftCorner”:
[
-180,
-90
],
“tileWidth”: 256,
“tileHeight”: 256,
“matrixWidth”: 64,
“matrixHeight”: 32,
“variableMatrixWidth”:
[
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 16,
“minTileRow”: 0,
“maxTileRow”: 0
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 8,
“minTileRow”: 1,
“maxTileRow”: 1
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 4,
“minTileRow”: 2,
“maxTileRow”: 3
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 2,
“minTileRow”: 4,
“maxTileRow”: 7
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 2,
“minTileRow”: 24,
“maxTileRow”: 27
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 4,
“minTileRow”: 28,
“maxTileRow”: 29
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 8,
“minTileRow”: 30,
“maxTileRow”: 30
},
{
“type”: “VariableMatrixWidthType”,
“coalesce”: 16,
“minTileRow”: 31,
“maxTileRow”: 31
}
]
}
]
}
Annex I Pseudocode (Informative)
This informative Annex provides pseudocode that illustrates how to get the tiles that cover a bounding box rectangle and how to get the CRS coordinates that bound a tile.
I.1 From BBOX to tile indices
The following fragment of pseudocode could be used to convert from a desired bounding box (bBoxMinX, bBoxMinY, bBoxMaxX, bBoxMaxY) in CRS coordinates to a range of tile set indices. This pseudocode uses the same notation that subclause 6.1.1 uses. In this pseudocode it is assumed that bBoxMinX, bBoxMinY, bBoxMaxX, bBoxMaxY, tileMatrixMinX, tileMatrixMinY, tileMatrixMinY, tileMatrixMaxY, tileSpanX and tileSpanY are floating point variables (IEEE-754) that have accuracy issues derived from the finite precision of the representation. These accuracy issues could be amplified in a typical floor() rounding down function that could return a value ±1 than that expected. To overcome this issue this code uses a small value (epsilon) added or subtracted in a place that is not affected by CRS coordinate precision.
// to compensate for floating point computation inaccuracies
epsilon = 1e-6
tileMinCol = floor((bBoxMinX - tileMatrixMinX) / tileSpanX + epsilon)
tileMaxCol = floor((bBoxMaxX - tileMatrixMinX) / tileSpanX - epsilon)
tileMinRow = floor((tileMatrixMaxY - bBoxMaxY) / tileSpanY + epsilon)
tileMaxRow = floor((tileMatrixMaxY - bBoxMinY) / tileSpanY - epsilon)
// to avoid requesting out-of-range tiles
if (tileMinCol < 0) tileMinCol = 0
if (tileMaxCol >= matrixWidth) tileMaxCol = matrixWidth-1
if (tileMinRow < 0) tileMinRow = 0
if (tileMaxRow >= matrixHeight) tileMaxRow = matrixHeight-1
To fetch all the tiles that cover this bounding box, a client would scan through tileMinCol to tileMaxCol and tileMinRow to tileMaxRow, all inclusive. A total of (tileMaxCol- tileMinCol+1) × (tileMaxRow- tileMinRow+1) will be fetched.
I.2 From tile indices to BBOX
The following pseudocode could be used to convert from a pair of tile indices (tileCol, tileRow) to the bounding box (in CRS coordinates) of this tile defined by the upper-left corner (leftX, upperY) of the tile:
leftX = tileCol * tileSpanX + tileMatrixMinX
upperY = tileMatrixMaxY - tileRow * tileSpanY
and the lower-right corner (rightX, lowerY) of the tile:
rightX = (tileCol+1) * tileSpanX + tileMatrixMinX
lowerY = tileMatrixMaxY – (tileRow+1) * tileSpanY
Annex J: Revision history
Date | Release | Author | Paragraph modified | Description |
---|---|---|---|---|
2017-08-04 |
v0.1 |
Joan Masó |
All |
Initial draft |
2018-06-07 |
v0.7 |
Joan Masó |
All |
Document ready for the RFC period. http://www.opengeospatial.org/standards/requests/169 |
2019-02-07 |
v0.14 |
Joan Masó |
All |
Comments accepted introduced. Document sent to the TC for final approval |
2019-02-28 |
v0.15 |
Joan Masó |
Section 4 and Annex D |
Tiling scheme and tile set concept added. EPSG:32661 and 32662 replaced by EPSG:5041 and 5042 respectively |
Annex K: Bibliography
Craig Rollins and Mike Paniccia National Geospatial-Intelligence Agency ESRI Users Conference, July 22, 2015. https://www.slideshare.net/NGA_GEOINT/ngas-position-on-webmercator
Dengler, Klaus und Heinen, Torsten und Huber, Albert und Molch, Katrin und Mikusch, Eberhard (2013) The EOC Geoservice: Standardized Access to Earth Observation Data Sets and Value Added Products. PV 2013, 4.-6.Nov. 2013, Frascati, Italien. http://elib.dlr.de/86351
DLR Geospatial Web Services Lists of services and their current status. https://geoservice.dlr.de/web/services#tilecache
Digital Globe Web Map Tile Service Developer Guide. Cloud Services | August 2013. https://dg-cms-uploads-production.s3.amazonaws.com/uploads/document/file/174/DGCS_DeveloperGuide_WMTS.pdf
Emmanuel Stefanakis. Web Mercator Projection & Raster Tile Maps. Two cornerstones of Online Map Service Providers. Annual Conference – 2017 – Ottawa, May 31- June 2, 2017. http://www2.unb.ca/~estef/talks/CCA2017_Technical_Session_Stefanakis.pdf
Map projections: A working manual. Professional Paper 1395. By:John P. Snyder. https://pubs.usgs.gov/pp/1395/report.pdf
MBTiles Specification. https://github.com/mapbox/mbtiles-spec
NGA.SIG.0011_1.0_WEBMERC, National Geospatial-Intelligence Agency (NGA) Standardization Document. Implementation Practice Web Mercator Map Projection. https://nsgreg.nga.mil/doc/view?i=4105
NGA.SIG.0012_2.0.0_UTMUPS, The Universal Grids and the Transverse Mercator and Polar Stereographic Map Projections, Version 2.0.0, 25 March 2014. https://nsgreg.nga.mil/doc/view?i=4106
NGA.SIG.0014_1.0_PROJRAS, National Geospatial-Intelligence Agency (NGA) Map Projections for Tiled Raster Graphics, V1.0, 24 April 2015 https://nsgreg.nga.mil/doc/view?i=1810
NGA.SIG.0014_1.0_PROJRAS, UPS-Amendment, Map Projections for Tiled Raster Graphics Amendment for Universal Polar Stereographic, 2016-06-03, Version 0.1
NGA.SIG.0014_1.0_PROJRAS, Mercator-Addendum, Map Projections for Tiled Raster Graphics Addendum for the Mercator Projection, 2016-05-17, Version 0.2
DGIWG 124 Defence Profile of OGC’s Web Map Tile Service 1.0, 17 October 2017. https://portal.dgiwg.org/files/?artifact_id=68271&format=pdf
OGC 05-077r4 Symbology Encoding (SE) Implementation Specification, version 1.1.0. https://portal.ogc.org/files/16700
OGC 06-042 Web Map Service (WMS), version 1.3.0. https://portal.ogc.org/files/14416
OGC 07-036 Geography Markup Language (GML) Encoding Standard, version 3.2.1. https://portal.ogc.org/files/20509
OGC 07-057r7 Web Map Tile Service (WMTS), version 1.0. https://portal.ogc.org/files/35326
OGC 13-082r2 Web Map Tile Service (WMTS) Simple Profile, version 1.0. https://docs.ogc.org/is/13-082r2/13-082r2.html