Skip to content

Latest commit

 

History

History
140 lines (109 loc) · 5.56 KB

extension_zoom_other_intervals.adoc

File metadata and controls

140 lines (109 loc) · 5.56 KB

Zoom Other Intervals

Introduction

This extension of clause [zoom_levels] allows zoom level intervals other than a factor of two.

In a GeoPackage, zoom levels are integers in sequence from 0 to n that identify tile matrix layers in a tile matrix set that contain tiles of decreasing spatial extent and finer spatial resolution. Adjacent zoom levels immediately precede or follow each other and differ by a value of 1. Pixel sizes are real numbers in the terrain units of the spatial reference system of a tile image specifying the dimensions of the real world area represented by one pixel. Pixel sizes MAY vary by a constant factor or by different factors or intervals between some or all adjacent zoom levels in a tile matrix set. In the commonly used "zoom times two" convention, pixel sizes vary by a factor of 2 between all adjacent zoom levels, as shown in the example in [tiles_factor2_example_appendix].

This extension enables use of "zoom other intervals" conventions with different factors or irregular intervals with pixel sizes chosen for intuitive cartographic representation of raster data, or to coincide with the original pixel size of commonly used global image products. See WMTS [I16] Annex E for additional examples of both conventions.

Extension Author

GeoPackage SWG, author_name gpkg

Extension Name or Template

gpkg_zoom_other

Extension Type

Extension of Existing Requirement in clause 2.2.3.

Applicability

This extension applies to any table listed in the gpkg_contents table with a data_type of tiles.

Scope

Read-write

Requirements

GeoPackage
Requirement 87

The "gpkg_zoom_other" extension name SHALL be used as a gpkg_extensions table extension name column value to specify implementation of other zoom intervals on a tile pyramid user data table as specified in Zoom Other Intervals.

Requirement 88

A GeoPackage that implements other zoom intervals SHALL have a gpkg_extensions table that contains a row for each tile pyramid user data table with other zoom intervals with extension_name "gpkg_zoom_other", the table_name of the table with other zoom intervals, and the "tile_data" column_name.

Requirement 89

Tile pyramid user data tables MAY have pixel sizes that vary by irregular intervals or by regular intervals other than a factor of two (the default) between adjacent zoom levels. Extends [r35].

The pixel_x_size and / or pixel_y_size column values in the gpkg_tile_matrix table vary by irregular intervals or by regular intervals other than a factor of two (the default) between adjacent zoom levels for a particular tile matrix set pyramid table.

GeoPackage SQLite Configuration

None

GeoPackage SQLite Extension

None

Abstract Test Suite

Extensions Name

Test Case ID

/reg_ext/tiles/zoom_levels/data/zoom_other_ext_name

Test Purpose

Verify that the "gpkg_zoom_other" extension name is used to register tiles tables with other than factors of two zoom intervals.

Test Method

  1. SELECT table_name FROM gpkg_contents WHERE data_type = \'tiles'

  2. Not testable if empty result set

  3. For each row table_name from step 1

    1. SELECT zoom_level, pixel_x_size, pixel_y_size FROM gpkg_tile_matrix WHERE table_name = selected table name ORDER BY zoom_level ASC

    2. Not testable if returns empty result set

    3. Not testable if there are not two rows with adjacent zoom levels

    4. Not testable if no pair of rows for adjacent zoom levels have pixel_x_size or pixel_y_size values that differ by other than factors of two

    5. /opt/extension_mechanism/data/table_def

    6. Fail if failed

    7. SELECT * FROM gpkg_extensions WHERE table_name = selected table name AND extension_name = \'gpkg_zoom_other'

    8. Fail if returns an empty result set

    9. Log pass otherwise

  4. Pass if logged pass and no fails

Reference

Annex F.6 Req 87

Test Type

Basic

Extensions Row

Test Case ID

/reg_ext/tiles/zoom_levels/data/zoom_other_ext_row

Test Purpose

Verify that tiles tables with other than factors of two zoom intervals are registered using the "gpkg_zoom_other" extension name.

Test Method

/reg_ext/tiles/zoom_levels/data/zoom_other_ext_name

Reference

Annex F.6 Req 88

Test Type:

Capability

Zoom Interval

Test Case ID

/reg_ext/tiles/zoom_levels/data/zoom_intervals

Test Purpose

Verify that zoom level pixel sizes for tile matrix user data tables vary by factors of 2 between adjacent zoom levels in the tile matrix metadata table only for tile matrix sets that this extension does not apply to.

Test Method

  1. Override test /opt/tiles/zoom_levels/data/zoom_times_two

  2. SELECT table_name AS tn FROM gpkg_contents WHERE data_type = \'tiles'

  3. For each row tn from step 2

    1. WHEN (SELECT tbl_name FROM sqlite_master WHERE tbl_name = \'gpkg_extensions') = \'gpkg_extensions' THEN (SELECT table_name from gpkg_extensions WHERE extension_name = \'gpkg_zoom_other' AND table_name = \'tn') END;

    2. If returns empty result set, execute test /opt/tiles/zoom_levels/data/zoom_times_two

  4. Pass if no fails

Reference

Annex F.6 Req 89

Test Type

Capability