[Geopackage] Query on gpkg_tile_matrix - matrix_width and matrix_height

Brad Hards bradh at frogmouth.net
Thu May 28 18:34:23 EDT 2015

Geopackage spec ( describes the gpkg_tile_matrix table.

matrix_width and matrix_height are described as >=1.

The note below Requirement 44 says that there can be records for zoom levels 
that do not have any tiles populated.

However I can't find an authoritative reference that says what matrix_height 
and matrix_width are intended to describe. I assume that they're meant to be a 
describe the "framework" for the tiles. So if we're power of two, and the next 
higher matrix_width was 2, then this matrix_width will be 4 (irrespective of 
what tiles are actually populated).

Another way of saying this is that pixel_x_size * tile_width * matrix_width 
for a given table_name should always be a constant (and that constant is equal 
to max_x - min_x from the matching entry in gpkg_tile_matrix_set), and the 
same general relationship applies in the Y/height dimension. For constant, I 
mean within floating point error tolerances, not absolutely identical.

Is this the intent?

If not, what is the intent?

If so, the ERDC Whitehorse set on the geopackage.org site is inconsistent with 
that intent:
sqlite> SELECT zoom_level, matrix_width * pixel_x_size * tile_width FROM 
zoom_level|matrix_width * pixel_x_size * tile_width


More information about the Geopackage mailing list