That is my modified request: https://www.basemap.at/wmts/1.0.0/WMTSCapabilities.xml?service=WMTS&request=GetTile&version=1.0.0&layer=bmaporthofoto30cm&style=default&format=image/png&TileMatrixSet=google3857&TileMatrix=0&TileRow=1&TileCol=1
Any idea why it does not work
You are trying to mix two operations GetCapabilities
and GetTile
, in this instance the server understands the request for the GetCapabilities response, and ignores the other parameters.
The GetCapabilities response document tells you where you should be sending your GetTile requests to (for layer=bmaporthofoto30cm):
<Layer>
<ows:Title>Geoland Basemap Orthofoto</ows:Title>
<ows:Abstract>Basemap als farbiges Orthofoto</ows:Abstract>
<ows:WGS84BoundingBox crs="urn:ogc:def:crs:OGC:2:84">
<ows:LowerCorner>8.782379 46.358770</ows:LowerCorner>
<ows:UpperCorner>17.5 49.037872</ows:UpperCorner>
</ows:WGS84BoundingBox>
<ows:Identifier>bmaporthofoto30cm</ows:Identifier>
<Style isDefault="true">
<ows:Identifier>normal</ows:Identifier>
</Style>
<Format>image/jpeg</Format>
<TileMatrixSetLink>
<TileMatrixSet>google3857</TileMatrixSet>
</TileMatrixSetLink>
<ResourceURL format="image/jpeg" template="https://maps1.wien.gv.at/basemap/bmaporthofoto30cm/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpeg" resourceType="tile"/>
<ResourceURL format="image/jpeg" template="https://maps2.wien.gv.at/basemap/bmaporthofoto30cm/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpeg" resourceType="tile"/>
<ResourceURL format="image/jpeg" template="https://maps3.wien.gv.at/basemap/bmaporthofoto30cm/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpeg" resourceType="tile"/>
<ResourceURL format="image/jpeg" template="https://maps4.wien.gv.at/basemap/bmaporthofoto30cm/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpeg" resourceType="tile"/>
<ResourceURL format="image/jpeg" template="https://maps.wien.gv.at/basemap/bmaporthofoto30cm/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpeg" resourceType="tile"/>
</Layer>
In the example you cite:
This is an example call for tiles: http://www.maps.bob/maps.cgi?service=WMTS&request=GetTile&version=1.0.0&layer=etopo2&style=default&format=image/png&TileMatrixSet=WholeWorld_CRS_84&TileMatrix=10m&TileRow=1&TileCol=3
The URL http://www.maps.bob/maps.cgi?
is not the URL for the GetCapabilities document it is the URL to which to append parameters (such as those to satisfy a GetCapabilities or GetTile request).
But how do I send the GetTile request?
You can send a GetTile request by using the syntax specified in the GetCapabilities response:
https://maps.wien.gv.at/basemap/bmaporthofoto30cm/{Style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}.jpeg
Specifying your values for the URL template values, so you request would become:
https://maps.wien.gv.at/basemap/bmaporthofoto30cm/default/google3857/0/1/1.jpeg
AFAICT this service only supports the OGC WMTS Simple Profile interface, the parametrized version that you want to use is part of the fuller OpenGIS Web Map Tile Service Implementation Standard, and is not supported by this service.
If this service supported the fuller interface, the GetCapabilities response would include the follow statement:
<ows:OperationsMetadata>
<ows:Operation name="GetCapabilities">
<ows:DCP>
<ows:HTTP>
<ows:Get xlink:href="http://www.maps.bob/maps.cgi?">
<ows:Constraint name="GetEncoding">
<ows:AllowedValues>
<ows:Value>KVP</ows:Value>
</ows:AllowedValues>
</ows:Constraint>
</ows:Get>
...