[Geopackage] Query on gpkg_tile_matrix - matrix_width and matrix_height

Brad Hards bradh at frogmouth.net
Mon Jun 1 18:03:54 EDT 2015

On Mon, 1 Jun 2015 12:21:03 PM Cochran, Jenifer wrote:
> ________________________________________
> From: Brad Hards <bradh at frogmouth.net>
> Sent: Friday, May 29, 2015 8:20 PM
> To: Brachman, Micah
> Cc: Even Rouault; geopackage at lists.opengeospatial.org; Cochran, Jenifer;
> Jeff Yutzler Subject: Re: [Geopackage] Query on gpkg_tile_matrix -
> matrix_width and matrix_height
> On Fri, 29 May 2015 06:00:24 PM Brachman, Micah wrote:
> > There must be an agreement between the tiles present, and the bounding box
> > which will ultimately determine the matrix_height and matrix_width.  
> > There
> > ought to be one tile in each of the minimal and maximal rows and
> > columns(There must be a tile at row: 0, column: 0, row: (matrix_height -
> > 1), and column: (matrix_width -1)).  This must hold true at any of the
> > zoom
> > levels.  If this doesn't hold true then the bounding box doesn't represent
> > the minimum bounds of the data.
> That is contrary to the spec part that says the tiles don't need to be
> present at any given zoom level.
> ~Actually it doesn't.  For instance, say you have tiles at zoom level 2 with
> tiles that have the minimal and maximal extent satisfying the requirement,
> then you could have no tiles at zoom level 3.  Just because you have a tile
> at the extents, doesn't mean there needs to be data below or above that
> tile.
We disagree. 
"The gpkg_tile_matrix table or view MAY contain row records for zoom levels in 
a tile pyramid user data table that do not contain tiles."
When taken with the statement that
"Tiles MAY or MAY NOT be provided for level 0 or any other particular zoom 
matrix_width: Number of columns (>= 1) in tile matrix at this zoom level
matrix_height: Number of rows (>= 1) in tile matrix at this zoom level
"The gpkg_tile_matrix_set table or updateable view defines the minimum bounding 
box (min_x, min_y, max_x, max_y) and spatial reference system (srs_id) for all 
content in a tile pyramid user data table."
I think there is at least a potential conflict in the spec. There is certainly 
difference in intepretation.

I think that the bounding box should specify the size of the tile matrix, not 
the size of the actual content in that matrix (not sure I'm making this 
clear), but Pepijn's comment about "potential" content might help.
It still would be worth trying to describe what the intended use of 
matrix_width and matrix_height is, from a reader's perspective. Given footnote 
18, it doesn't seem to be that it tells you which tiles are present in the 
tiles table.


More information about the Geopackage mailing list