Brad, > I did some tests, and it looks like we'll need some code changes to pass.
Thanks for looking at this. > > There is a trivial schema fix for timestamps ('now' instead of > CURRENT_TIMESTAMP). Seems related to that change I found in the revision history (the last one made apparently before promoting to final 1.0.0): 2014-01-28 R10 Paul Daisey 1.1.3.1.1, 2.4.3.1.1, Annex C, Annex H strftime('%Y-%m-%dT%H:%M:%fZ', CURRENT_TIMESTAMP) changed to strftime('%Y-%m-%dT%H:%M:%fZ','now') > > There is a more complicated fix needed for > Requirement 45 which says: > The width of a tile matrix (the difference between min_x and max_x in > gpkg_tile_matrix_set) SHALL equal the product of matrix_width, tile_width, > and pixel_x_size for that zoom level. Similarly, height of a tile matrix > (the difference between min_y and max_y in gpkg_tile_matrix_set) SHALL > equal the product of matrix_height, tile_height, and pixel_y_size for that > zoom level. > > That isn't true if we are doing something that doesn't fill the entire > matrix (e.g. we only need 20 blocks instead of 32 at zoom level 5. Hum, indeed I guess FinalizeRasterRegistration() could be fixed so that all zoom levels have matrix_width and matrix_height being power of 2. > Still > trying to find a fix that works cleanly in a non-power of 2 matrix. I don't think it is possible in the general case to fulfill the requirement with non-power of 2 pyramids, at least in a reasonable way: For example, if the initial situation is : zoom_level=0, matrix_width=matrix_height=1, pixel_x_size=pixel_y_size=4 zoom_level=1,matrix_width=matrix_height=2, pixel_x_size=pixel_y_size=2 zoom_level=2,matrix_width=matrix_height=4, pixel_x_size=pixel_y_size=1 And you add an overview of factor 3, then you'll need to change this to be : zoom_level=0, matrix_width=matrix_height=1, pixel_x_size=pixel_y_size=4 zoom_level=1, matrix_width=matrix_height=???, pixel_x_size=pixel_y_size=3 zoom_level=2,matrix_width=matrix_height=2, pixel_x_size=pixel_y_size=2 zoom_level=3,matrix_width=matrix_height=4, pixel_x_size=pixel_y_size=1 Currently we must replace ??? by 2. Of course you can still fix things by altering the matrix_width/_height so that zoom_level=3 is both a multiple of a power of 2 and a multiple of a power of 3 (and also changing min_x,_y,max_x,max_y in gpkg_tile_matrix_set): zoom_level=0, matrix_width=matrix_height=1, pixel_x_size=pixel_y_size=4 zoom_level=1, matrix_width=matrix_height=4, pixel_x_size=pixel_y_size=3 zoom_level=2,matrix_width=matrix_height=6, pixel_x_size=pixel_y_size=2 zoom_level=3,matrix_width=matrix_height=12, pixel_x_size=pixel_y_size=1 But that's completely non-sense since the extent will be completely wrong. So I think this requirement is disputable. Even -- Spatialys - Geospatial professional services http://www.spatialys.com _______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev