Thomas
thanks for the clarifications.
I tried to define a grid that could fit those OGS specs with the
following parameters:
<grid name="OGCWGS84">
<metadata>
<title>OGCCRS84Quad</title>
<WellKnownScaleSet>urn:ogc:def:wkss:OGC:1.0:OGCCRS84Quad</WellKnownScaleSet>
</metadata>
<extent>-180 -180 180 180</extent>
<srs>EPSG:4326</srs>
<units>dd</units>
<size>256 256</size>
<resolutions>1.40625000000000 0.703125000000000 0.351562500000000
0.175781250000000 8.78906250000000e-2 4.394531
25000000e-2 2.19726562500000e-2 1.09863281250000e-2 5.49316406250000e-3
2.74658203125000e-3 1.37329101562500e-3 6.8664
5507812500e-4 3.43322753906250e-4 1.71661376953125e-4
8.58306884765625e-5 4.29153442382812e-5 2.14576721191406e-5 1.07
288360595703e-5 5.36441802978516e-6</resolutions>
</grid>
For me the capability output looks correct, and the tile level 0 is the
whole world in 1 single tile, with upper and lower quarter left blank. I
guess that's what the specs want it to be and so it should be possible
to satisfy this strange definition if required.
I guess that the MapCache definition of the "GoogleCRS84Quad"
corresponds to what the European INSPIRE initiative defines as
"InspireCRS84Quad" in the document
http://inspire.jrc.ec.europa.eu/documents/Network_Services/TechnicalGuidance_ViewServices_v3.1.pdf
It states:
"The level 0 of InspireCRS84Quad is the level 1 of GoogleCRS84Quad. This
level has been discarded because Level 0 of GoogleCRS84Quad allows
representing the whole world in a single 256x256 pixels where the first
64 and last 64 lines of the tile are left blank. To avoid this situation
the level 0 of InspireCRS84Quad is composed of two tiles representing
exactly the whole world."
They do not add the full XML description, however.
Best regards
Armin
On 04/10/2013 05:50 PM, thomas bonfort wrote:
Armin,
I don't have much to add to what you have already found out. I
personally consider the GoogleCRS84Quad grid as defined by the spec to
be broken, and have not implemented its support as it would require some
specific hacks in the code (as the extent for level 0 needs to be
hardcoded for this specific grid, instead of it being derived from grid
properties as is the case with all other grid definitions).
I suppose that support for this could be added if you really need it
badly. The impact is not negligible as all places where an extent is
derived from a tile coordinate and vice-versa would need to be updated
to support this illogical quirk.
FWIW, I believe I had brought this up as a change request to the wmts
working group, but this was ignored as I am not a member.
best regards,
thomas
On 9 April 2013 20:57, Armin Burger <[email protected]
<mailto:[email protected]>> wrote:
Dear all
I have a question regarding the GoogleCRS84Quad TileMatrixSet
defined in MapCache. MapCache specifies this in the docs with the
first level [0] as pixel resolution 0.70312500 deg, and an extent of
<extent>-180 -90 180 90</extent>
and returns the GoogleCRS84Quad TileMatrixSet in the Capabilities
response like
<TileMatrixSet>
<Identifier>WGS84</Identifier>
<Title>GoogleCRS84Quad</Title>
<SupportedCRS>urn:ogc:def:crs:__EPSG:6.3:4326</SupportedCRS>
<BoundingBox crs="urn:ogc:def:crs:EPSG:6.3:__4326">
<LowerCorner>-180.000000 -90.000000</LowerCorner>
<UpperCorner>180.000000 90.000000</UpperCorner>
</BoundingBox>
<WellKnownScaleSet>urn:ogc:__def:wkss:OGC:1.0:__GoogleCRS84Quad</__WellKnownScaleSet>
<TileMatrix>
<Identifier>0</Identifier>
<ScaleDenominator>279541132.__01435887813568115234</__ScaleDenominator>
<TopLeftCorner>90.000000 -180.000000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>2</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
.....
</TileMatrixSet>
This looks clear and logical, but the OGC specs at
http://portal.opengeospatial.__org/files/?artifact_id=35326
<http://portal.opengeospatial.org/files/?artifact_id=35326>
define this TileMatrixSet differently as
"E.3 GoogleCRS84Quad (urn:ogc:def:wkss:OGC:1.0:__GoogleCRS84Quad)
This well-known scale set has been defined to allow quadtree
pyramids in CRS84. Level 0 allows representing the whole world in a
single 256x256 pixels (where the first 64 and last 64 lines of the
tile are left blank). The next level represents the whole world in 2x2
tiles of 256x256 pixels and so on in powers of 2. Scale denominator
is only accurate near the equator."
The level 0 in the OGC specs uses a resolution of 1.40625000.
The tile 0/0/0 in MapCache is not a single tile as in the OGC specs
but the first out of 2 tiles for this level, correctly defined with
MatrixWidth 2 and MatrixHeight 1 (level 1 has 4x2 tiles). For me the
OGC specs are not logical, because the TopLeft corner would
correspond to 180 -180 degrees which makes no sense for me, but
somehow they are regarded as the default specs...
So the XML definition of the OGC specs should probably result in
something like
<TileMatrix>
<Identifier>0</Identifier>
<ScaleDenominator>559082264.__0287178</ScaleDenominator>
<TopLeftCorner>180.000000 -180.000000</TopLeftCorner>
<TileWidth>256</TileWidth>
<TileHeight>256</TileHeight>
<MatrixWidth>1</MatrixWidth>
<MatrixHeight>1</MatrixHeight>
</TileMatrix>
Unfortunately the OGC doc does not provide this matrix set's full
definition in XML to check this.
So I'm wondering which is the correct definition? And any idea how
to deal with this discrepancy?
Thanks
Armin
_________________________________________________
mapserver-users mailing list
[email protected].__org
<mailto:[email protected]>
http://lists.osgeo.org/__mailman/listinfo/mapserver-__users
<http://lists.osgeo.org/mailman/listinfo/mapserver-users>
_______________________________________________
mapserver-users mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/mapserver-users