opengeospatial / 2D-Tile-Matrix-Set

OGC 2D Tile Matrix Set & TileSet Metadata standard
https://www.ogc.org/standards/tms
Apache License 2.0
8 stars 10 forks source link

should `id` and `uri` be WGS1984Quad #60

Closed vincentsarago closed 2 years ago

vincentsarago commented 2 years ago

in 👇 https://github.com/opengeospatial/2D-Tile-Matrix-Set/blob/3a858d7f3da70bb08a7a80af47e8d0514c7acfa6/schemas/tms/2.0/json/examples/tilematrixset/WGS1984Quad.json#L2-L4

I think the ID should be WGS1984Quad (I think the URI too, but then it will point to an invalid URL for now 🤷 )

Happy to make a PR if 👍

jerstlouis commented 2 years ago

@vincentsarago

Thank you for asking about this. This example is somewhat particular, in that it is an example of defining the same WorldCRS84Quad tile matrix set, but using EPSG:4326 (latitude, longitude axis order) instead of OGC:CRS84 (longitude, latitude) for specifying the pointOfOrigin of each Tile Matrix (the EPSG:4326 axis order would also apply to the optional bounding box, if it were specified, but that is purely informative). Regardless of how the tiling scheme is specified, it is the same TileMatrixSet, because of the TileSet / TileMatrixSet compatibility clause allowing the TileSet and TileMatrixSet to differ only by axis order, and it has no effect on anything else. This is why it has the same URI. The id is optional, and could be anything -- in this example it is also WorldCRS84Quad because it is an example of a defining the same TileMatrixSet in two alternative ways in a local definition using the alternate CRS for defining it. This is explained in annex D where this example is presented.

See also #9, #36, #39 for the extensive discussions that led to these decisions.

One remaining issue with the local definition being allowed to be defined using different CRSes remains when a TileSet does not specify a CRS, as this could lead to an ambiguity as to which CRS it defaults to -- the CRS/axis order of the TileMatrixSet as defined in the registry (linked from the URI), or that of the local definition. To avoid this last issue, we will likely decide to make the TileSet CRS mandatory.

vincentsarago commented 2 years ago

🙏 thanks @jerstlouis for this good explanation. I guess I can close this issue then.

FYI, I've added this TMS in morecantile https://github.com/developmentseed/morecantile/pull/74, because it makes it easier (sometimes) to use CRS with valid EPSG code in some application 😄