1.1.2 WMTS (Web Map Tile Service)

Release Version

This reference documents version 1.1.2 (the release version) of the MapData Services WMTS API. This release version of the API is a feature-stable version of the API whose interfaces are guaranteed to remain as documented within these pages until this version is retired.

What is The WMTS API?

The WMTS API is an XML based protocol for describing a tile service and serving raster data in small pieces known as “tiles”. The WMTS API provides raster tiles in the Web Mercator projection for 18 levels/Scales. Our WMTS service is a cut down version of the OpenGIS Web Map Tile Service (WMTS) Implementation Standard intended for use with ArcGIS 10.2 for Desktop, however it may work in other use cases. Only the "get capabilities" & "get tile" operations are supported. This service is SSL secured and will require a username and password to be used as per the below instructions.

Target platforms:
  • - ArcGIS 10.2

Security

This service supports basic authentication for https requests.

(HTTPS) Basic Authentication

When the user agent wants to send the server authentication credentials it may use the Authorization attribute in the HTTPS header.
The Authorization header is constructed as follows:

- Username and password are combined into a string "username:password"
- The resulting string literal is then encoded using Base64
- The authorization method and a space i.e. "Basic " is then put before the encoded string.

For example, if the user agent uses 'Aladdin' as the username and 'open sesame' as the password then the header is formed as follows:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Request

The WMTS protocol works in a similar way to the SOAP protocol:

  • - First an XML document that defines the functions of the service called the "get capabilities" document is downloaded and used to determine what functions the service can perform.
  • - Utilising the capabilities described in the get capabilities document this requests are made to the service as per a regular TMS using XYZ
Requests to the tile service must include a tileset id, zoom, x and y.

(GET) GetCapabilities.xml

https://api.nowwhere.com.au/wmts/1.1.2/

Response

The service will respond with either a wmtscapabilities.xml file or a 401 (un-authenticated) HTTP code. These scenarios are outlined in more detail in the success & failure scenarios below.

(Success) GetCapabilities.xml

If the request was Successful: the service responds with the wmtscapabilities.xml document, example below:

        <?xml version="1.0" encoding="UTF-8"?>
        <Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
          <!-- Service Identification -->
          <ows:ServiceIdentification>
            <ows:Title>MapData Services WMTS Server</ows:Title>
            <ows:ServiceType>OGC WMTS</ows:ServiceType>
            <ows:ServiceTypeVersion>1.0.0</ows:ServiceTypeVersion>
          </ows:ServiceIdentification>
          <!-- Operations Metadata -->
          <ows:OperationsMetadata>
            <ows:Operation name="GetCapabilities">
              <ows:DCP>
                <ows:HTTP>
                  <ows:Get xlink:href="https://api.nowwhere.com.au/wmts/1.1.2/WMTSCapabilities.xml">
                    <ows:Constraint name="GetEncoding">
                      <ows:AllowedValues>
                        <ows:Value>RESTful</ows:Value>
                      </ows:AllowedValues>
                    </ows:Constraint>
                  </ows:Get>
                  <!-- add KVP binding in 10.1 -->
                  <ows:Get xlink:href="https://api.nowwhere.com.au/wmts/1.1.2/WMTSCapabilities.xml">
                    <ows:Constraint name="GetEncoding">
                      <ows:AllowedValues>
                        <ows:Value>KVP</ows:Value>
                      </ows:AllowedValues>
                    </ows:Constraint>
                  </ows:Get>
                </ows:HTTP>
              </ows:DCP>
            </ows:Operation>
            <ows:Operation name="GetTile">
              <ows:DCP>
                <ows:HTTP>
                  <ows:Get xlink:href="https://api.nowwhere.com.au/wmts/1.1.2/WMTSCapabilities.xml">
                    <ows:Constraint name="GetEncoding">
                      <ows:AllowedValues>
                        <ows:Value>RESTful</ows:Value>
                      </ows:AllowedValues>
                    </ows:Constraint>
                  </ows:Get>
                  <ows:Get xlink:href="https://api.nowwhere.com.au/wmts/1.1.2/WMTSCapabilities.xml">
                    <ows:Constraint name="GetEncoding">
                      <ows:AllowedValues>
                        <ows:Value>KVP</ows:Value>
                      </ows:AllowedValues>
                    </ows:Constraint>
                  </ows:Get>
                </ows:HTTP>
              </ows:DCP>
            </ows:Operation>
          </ows:OperationsMetadata>
          <Contents>
	        <Layer>
              <ows:Title>Colour Foundation Map</ows:Title>
              <ows:Identifier>cfm</ows:Identifier>
	          <ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
                <ows:LowerCorner>110.0000000 -45.0000000</ows:LowerCorner>
                <ows:UpperCorner>155.0000000 -8.5000000</ows:UpperCorner>
              </ows:WGS84BoundingBox>
              <Style isDefault="true">
                <ows:Identifier>default</ows:Identifier>
              </Style>
              <Format>image/png</Format>
              <TileMatrixSetLink>
                <TileMatrixSet>XYZCompatible</TileMatrixSet>
              </TileMatrixSetLink>
              <ResourceURL format="image/png" resourceType="tile" template="https://api.nowwhere.com.au/wmts/1.1.2/tile/50/{TileMatrix}/{TileCol}/{TileRow}"/>	  	  		  
            </Layer>   
            <TileMatrixSet>
              <ows:Title>XYZCompatible</ows:Title>
              <ows:Abstract>the wellknown 'XYZCompatible' tile matrix set defined by OGC WMTS specification</ows:Abstract>
              <ows:Identifier>XYZCompatible</ows:Identifier>
              <ows:SupportedCRS>urn:ogc:def:crs:EPSG:6.18:3:3857</ows:SupportedCRS>
              <WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:XYZCompatible</WellKnownScaleSet>
              <TileMatrix>
                <ows:Identifier>0</ows:Identifier>
                <ScaleDenominator>559082264.0287178</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>1</MatrixWidth>
                <MatrixHeight>1</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>1</ows:Identifier>
                <ScaleDenominator>279541132.0143589</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>2</MatrixWidth>
                <MatrixHeight>2</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>2</ows:Identifier>
                <ScaleDenominator>139770566.0071794</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>4</MatrixWidth>
                <MatrixHeight>4</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>3</ows:Identifier>
                <ScaleDenominator>69885283.00358972</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>8</MatrixWidth>
                <MatrixHeight>8</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>4</ows:Identifier>
                <ScaleDenominator>34942641.50179486</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>16</MatrixWidth>
                <MatrixHeight>16</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>5</ows:Identifier>
                <ScaleDenominator>17471320.75089743</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>32</MatrixWidth>
                <MatrixHeight>32</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>6</ows:Identifier>
                <ScaleDenominator>8735660.375448715</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>64</MatrixWidth>
                <MatrixHeight>64</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>7</ows:Identifier>
                <ScaleDenominator>4367830.187724357</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>128</MatrixWidth>
                <MatrixHeight>128</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>8</ows:Identifier>
                <ScaleDenominator>2183915.093862179</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>256</MatrixWidth>
                <MatrixHeight>256</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>9</ows:Identifier>
                <ScaleDenominator>1091957.546931089</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>512</MatrixWidth>
                <MatrixHeight>512</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>10</ows:Identifier>
                <ScaleDenominator>545978.7734655447</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>1024</MatrixWidth>
                <MatrixHeight>1024</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>11</ows:Identifier>
                <ScaleDenominator>272989.3867327723</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>2048</MatrixWidth>
                <MatrixHeight>2048</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>12</ows:Identifier>
                <ScaleDenominator>136494.6933663862</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>4096</MatrixWidth>
                <MatrixHeight>4096</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>13</ows:Identifier>
                <ScaleDenominator>68247.34668319309</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>8192</MatrixWidth>
                <MatrixHeight>8192</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>14</ows:Identifier>
                <ScaleDenominator>34123.67334159654</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>16384</MatrixWidth>
                <MatrixHeight>16384</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>15</ows:Identifier>
                <ScaleDenominator>17061.83667079827</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>32768</MatrixWidth>
                <MatrixHeight>32768</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>16</ows:Identifier>
                <ScaleDenominator>8530.918335399136</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>65536</MatrixWidth>
                <MatrixHeight>65536</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>17</ows:Identifier>
                <ScaleDenominator>4265.459167699568</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>131072</MatrixWidth>
                <MatrixHeight>131072</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>18</ows:Identifier>
                <ScaleDenominator>2132.729583849784</ScaleDenominator>
                <TopLeftCorner>-20037508.34278925 20037508.34278925</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>262144</MatrixWidth>
                <MatrixHeight>262144</MatrixHeight>
              </TileMatrix>
            </TileMatrixSet>
            <TileMatrixSet>
              <ows:Identifier>WGS84</ows:Identifier>
              <ows:Title>GoogleCRS84Quad</ows:Title>
              <ows:SupportedCRS>urn:ogc:def:crs:EPSG:6.3:4326</ows:SupportedCRS>
              <ows:BoundingBox crs="urn:ogc:def:crs:EPSG:6.3:4326">
                <LowerCorner>-180.000000 -90.000000</LowerCorner>
                <UpperCorner>180.000000 90.000000</UpperCorner>
              </ows:BoundingBox>
              <WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:GoogleCRS84Quad</WellKnownScaleSet>
              <TileMatrix>
                <ows:Identifier>0</ows:Identifier>
                <ScaleDenominator>279541132.01435887813568115234</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>2</MatrixWidth>
                <MatrixHeight>1</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>1</ows:Identifier>
                <ScaleDenominator>139770566.00717943906784057617</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>4</MatrixWidth>
                <MatrixHeight>2</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>2</ows:Identifier>
                <ScaleDenominator>69885283.00358971953392028809</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>8</MatrixWidth>
                <MatrixHeight>4</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>3</ows:Identifier>
                <ScaleDenominator>34942641.50179485976696014404</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>16</MatrixWidth>
                <MatrixHeight>8</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>4</ows:Identifier>
                <ScaleDenominator>17471320.75089742988348007202</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>32</MatrixWidth>
                <MatrixHeight>16</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>5</ows:Identifier>
                <ScaleDenominator>8735660.37544871494174003601</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>64</MatrixWidth>
                <MatrixHeight>32</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>6</ows:Identifier>
                <ScaleDenominator>4367830.18772435747087001801</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>128</MatrixWidth>
                <MatrixHeight>64</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>7</ows:Identifier>
                <ScaleDenominator>2183915.09386217873543500900</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>256</MatrixWidth>
                <MatrixHeight>128</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>8</ows:Identifier>
                <ScaleDenominator>1091957.54693108936771750450</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>512</MatrixWidth>
                <MatrixHeight>256</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>9</ows:Identifier>
                <ScaleDenominator>545978.77346554468385875225</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>1024</MatrixWidth>
                <MatrixHeight>512</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>10</ows:Identifier>
                <ScaleDenominator>272989.38673277234192937613</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>2048</MatrixWidth>
                <MatrixHeight>1024</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>11</ows:Identifier>
                <ScaleDenominator>136494.69336638617096468806</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>4096</MatrixWidth>
                <MatrixHeight>2048</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>12</ows:Identifier>
                <ScaleDenominator>68247.34668319308548234403</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>8192</MatrixWidth>
                <MatrixHeight>4096</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>13</ows:Identifier>
                <ScaleDenominator>34123.67334159654274117202</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>16384</MatrixWidth>
                <MatrixHeight>8192</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>14</ows:Identifier>
                <ScaleDenominator>17061.83667079825318069197</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>32768</MatrixWidth>
                <MatrixHeight>16384</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>15</ows:Identifier>
                <ScaleDenominator>8530.91833539912659034599</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>65536</MatrixWidth>
                <MatrixHeight>32768</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>16</ows:Identifier>
                <ScaleDenominator>4265.45916769956329517299</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>131072</MatrixWidth>
                <MatrixHeight>65536</MatrixHeight>
              </TileMatrix>
              <TileMatrix>
                <ows:Identifier>17</ows:Identifier>
                <ScaleDenominator>2132.72958384978574031265</ScaleDenominator>
                <TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
                <TileWidth>256</TileWidth>
                <TileHeight>256</TileHeight>
                <MatrixWidth>262144</MatrixWidth>
                <MatrixHeight>131072</MatrixHeight>
              </TileMatrix>
            </TileMatrixSet>
          </Contents>
          <ServiceMetadataURL xlink:href="https://api.nowwhere.com.au/wmts/1.1.2/WMTSCapabilities.xml"/>
        </Capabilities>
    

(Fail) 401 Un-Authorized

If the request failed: the service responds with a 401 un-authorized HTTP code.
Reasons for failure can be incorect parameters, SSL (HTTPS) not being used, or credentials being incorrect.

Step by step examples

The following examples outline how to intergrate the WMTS endpoint into various desktop GIS clients. As mentioned it is possible the service will work with others also.

esri ArcGIS 10.2 adding a WMTS Service

  • 1. Open ArcCatalog
  • 2. Select Add WMTS Server
  • 3. Enter Url and the username / password you have been provided, then click ok
    URL: https://api.nowwhere.com.au/wmts/1.1.2/ 

    Username & Password: (As provided by MapData Services).

    Havent recieved your credentials? Contact MapData Services for support.
  • 4. Right click on newly added WMTS service and select connect
  • 5. Choose a layer and drag and drop into the map view window
  • 6. Map tiles are displayed in ArcGIS Desktop as a WMTS service