No announcement yet.

WTMS Standard non-compliance

  • Filter
  • Time
  • Show
Clear All
new posts

  • WTMS Standard non-compliance

    Web WolrdWind appears to enforce a rule that is not a part of the WMTS Standard. checkTileSubdivision requires that the number of rows of tiles from level i to level i+1 have a constant ratio. This works for a GoogleCRS84Quad based Tile Matrix Set provided all levels have the same size tile, e.g., 256x256. This results in the odd case of Level 0 consisting of a 256x256 tile that is half empty; the first and last 64 rows are empty / transparent / off the Earth. In addition, 256 is a small tile size, which leads to more tiles at higher levels of detail. For example, a single 1024x1024 tile can cover the same area as 4 x 4, or 16, 256x256 tiles. That means 16:1 HTTP requests to get the same data.

    The GoogleCRS84Quad based Tile Matrix Set that our WMTS server uses has Levels 0 to 3 of our pyramid consisting of a 2x1 grid of tiles with tile sizes of 128, 256, 512 and 1024, respectively. Levels 4 and below have a tile size of 1024 with each level having twice as many rows and columns of tiles as the one before it (the pattern checkTileSubdivision tests). checkTileSubdivision will take our data sets and limit them to levels 0 to 3, as the ratio is constant 1:1. It cuts off Level 4 and below. CesiumJS and OpenLayers handle our GoogleCRS84Quad Tile Matrix Set just fine. I believe this is a bug in Web WorldWind enforcing a rule that is not a part of the WMTS standard.