[mapserver-users] MapCache and the GoogleCRS84Quad TileMatrixSet

Armin Burger armin.burger at gmx.net
Wed Apr 10 12:35:44 PDT 2013


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 <armin.burger at gmx.net
> <mailto:armin.burger at gmx.net>> 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
>     mapserver-users at lists.osgeo.__org
>     <mailto:mapserver-users at lists.osgeo.org>
>     http://lists.osgeo.org/__mailman/listinfo/mapserver-__users
>     <http://lists.osgeo.org/mailman/listinfo/mapserver-users>
>
>


More information about the mapserver-users mailing list