Hi,
I've exported a TIFF to geopackage raster, and noticed that while the exported data only cover zoom level 7, the tile matrix definition ranges from 0 to 7. From the reader point of view, it seems that in order to get the effectively populated tile matrix levels one would have to run a select distinct on the zoom level in the tile table, which seems rather inefficient. I checked the spec and while it demands a tile matrix spec for populated levels, it does not seem to require omitting it for non populated levels. Can you confirm? I think I'm seeing in the code a check verifying that indeed at least one tile is present before listing a particular zoom level: // In read-only mode, only lists non empty zoom levels else if( !bUpdate ) { osSQL += CPLSPrintf(" AND EXISTS(SELECT 1 FROM %s WHERE zoom_level = tm.zoom_level LIMIT 1)", osQuotedTableName.c_str()); } Cheers Andrea == AVVERTENZE AI SENSI DEL D.Lgs. 196/2003 Le informazioni contenute in questo messaggio di posta elettronica e/o nel/i file/s allegato/i sono da considerarsi strettamente riservate. Il loro utilizzo è consentito esclusivamente al destinatario del messaggio, per le finalità indicate nel messaggio stesso. Qualora riceviate questo messaggio senza esserne il destinatario, Vi preghiamo cortesemente di darcene notizia via e-mail e di procedere alla distruzione del messaggio stesso, cancellandolo dal Vostro sistema. Conservare il messaggio stesso, divulgarlo anche in parte, distribuirlo ad altri soggetti, copiarlo, od utilizzarlo per finalità diverse, costituisce comportamento contrario ai principi dettati dal D.Lgs. 196/2003.
The information in this message and/or attachments, is intended solely for the attention and use of the named addressee(s) and may be confidential or proprietary in nature or covered by the provisions of privacy act (Legislative Decree June, 30 2003, no.196 - Italy's New Data Protection Code).Any use not in accord with its purpose, any disclosure, reproduction, copying, distribution, or either dissemination, either whole or partial, is strictly forbidden except previous formal approval of the named addressee(s). If you are not the intended recipient, please contact immediately the sender by telephone, fax or e-mail and delete the information in this message that has been received in error. The sender does not give any warranty or accept liability as the content, accuracy or completeness of sent messages and accepts no responsibility for changes made after they were sent or for other risks which arise as a result of e-mail transmission, viruses, etc. _______________________________________________ gdal-dev mailing list [hidden email] https://lists.osgeo.org/mailman/listinfo/gdal-dev |
Hi Andrea,
> Hi, > I've exported a TIFF to geopackage raster, and noticed that while the > exported data only cover > zoom level 7, the tile matrix definition ranges from 0 to 7. > > From the reader point of view, it seems that in order to get the > effectively populated tile > matrix levels one would have to run a select distinct on the zoom level in > the tile table, > which seems rather inefficient. > > I checked the spec and while it demands a tile matrix spec for populated > levels, it does not > seem to require omitting it for non populated levels. Can you confirm?
Yes that's my understanding too that gpkg_tile_matrix can be instanciated at zoom levels for which there is actually no tile in the pyramid table. I guess I did this choice betcause I wasn't sure how to interpret the requirement for consecutive zoom levels differing by a factor of 2, and thus chose to pre-create all zoom levels from level 0 to level N. This is also slightly more convenient in update mode if you want to add tiles at low zoom levels: you just have to insert them into the pyramid table.
> > I think I'm seeing in the code a check verifying that indeed at least one > tile is present before > listing a particular zoom level: > > // In read-only mode, only lists non empty zoom levels > else if( !bUpdate ) > { > osSQL += CPLSPrintf(" AND EXISTS(SELECT 1 FROM %s WHERE zoom_level > = tm.zoom_level LIMIT 1)", > osQuotedTableName.c_str()); > } >
Yes that's the request to find which zoom levels are actually populated so as to find the highest zoom level (the base level used to compute the raster dimensions) and the populated overviews. I would expect this request to be not that inefficient since the pyramid table has an index on (zoom_level, tile_column, tile_row), thus finding if at least one tile exists at a zoom level should only involve looking at the index.
Even
-- Spatialys - Geospatial professional services http://www.spatialys.com _______________________________________________ gdal-dev mailing list [hidden email] https://lists.osgeo.org/mailman/listinfo/gdal-dev |
Free forum by Nabble | Edit this page |