[gdal-dev] How does WMTS driver detect DataWindow?

Even Rouault even.rouault at spatialys.com
Fri Dec 2 08:33:53 PST 2016


On mardi 29 novembre 2016 11:49:36 CET Rahkonen Jukka (MML) wrote:
> With a little help GDAL picks up correct extent. Removing the erroneous
> WGS84BoundingBox hint from GetCapabilities made it.
> 
> I consider that there is a bug in the WMTS server which is advertising
> invalid bounding box but I don't really know GDAL should do. I am not good
> at reading the code from
> https://trac.osgeo.org/gdal/browser/trunk/gdal/frmts/wmts/wmtsdataset.cpp
> but I do see that there are comments about making a clip with the implied
> bounding box of the most precise tile matrix, taking into account the
> TileMatrix limits if they appear in GetCapabilities
> 
> The logic seems to be now
> 
> 
> 1)      Use the BoundingBox of the layer expressed in the SRS of the tile
> matrix set if that exists (row 1394)
> 
> 2)      Otherwise use the BoundingBox of the layer expressed in some other
> SRS (for example WGS84) if that exists (row 1506)
> 
> 3)      Otherwise use the BoundingBox of the tile matrix set if that exists
> (row 1550)
> 
> 4)      Otherwise compute the bounding box from the definition of the most
> precise tile matrix (1558)
> 
> The comments about clipping are on rows 1572 and 1587.
> 
> So if the meaning was to take the advertised bounding box and clip it with
> the box that is computed from the tile matrix set and its limits, it seems
> to fail with our data
> 
> In our case the layer has this faulty
> <ows:WGS84BoundingBox>
> <ows:LowerCorner>-6.38153862706 55.6179644952</ows:LowerCorner>
> <ows:UpperCorner>60.3815386271 75.5825702342</ows:UpperCorner>
> </ows:WGS84BoundingBox>
> 
> and our most precise TM is
> <TileMatrix>
> <ows:Identifier>13</ows:Identifier>
> <ScaleDenominator>3571.42857143</ScaleDenominator>
> <TopLeftCorner>-548576.0 8388608.0</TopLeftCorner>
> <TileWidth>256</TileWidth>
> <TileHeight>256</TileHeight>
> <MatrixWidth>8192</MatrixWidth>
> <MatrixHeight>8192</MatrixHeight>
> </TileMatrix>
> 
> With WGS84BoundingBox GDAL finds
> <DataWindow>
>     <UpperLeftX>-1553364.000000402</UpperLeftX>
>     <UpperLeftY>8388608</UpperLeftY>
>     <LowerRightX>2553364.000001241</LowerRightX>
>     <LowerRightY>6681097.999999317</LowerRightY>
>   </DataWindow>
> 
> and without WGS84BoundingBox the correct
> <DataWindow>
>     <UpperLeftX>-548576</UpperLeftX>
>     <UpperLeftY>8388608</UpperLeftY>
>     <LowerRightX>1548576</LowerRightX>
>     <LowerRightY>6291456</LowerRightY>
>   </DataWindow>

OK, I managed to reproduce with your above elements. I've pushed a fix so that in that case 
the WGS84BoundingBox is just ignored and the most precise tile matrix used.

Even

-- 
Spatialys - Geospatial professional services
http://www.spatialys.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/gdal-dev/attachments/20161202/7b3c78cb/attachment.html>


More information about the gdal-dev mailing list