Tiles

GeoPackage标准采用基于平铺的金字塔结构,用于以多分辨率存储图像和栅格地图。该结构的插图如下所示。

../../_images/pyramid2.png

图2:瓷砖金字塔

地理包(GeoPackage) 瓷砖 选项指定在平铺棱锥体中存储栅格数据的机制。

  • “瓦片金字塔”是指不同空间范围、不同分辨率的瓦片在不同缩放级别下的金字塔结构概念,以及瓦片数据本身。

  • “平铺”是指覆盖特定地理区域的单个栅格图像,例如PNG或JPEG。

  • “平铺矩阵”是指在特定缩放级别下具有相同空间范围和分辨率的平铺的行和列。

  • “瓷砖矩阵集”是指瓷砖金字塔的瓷砖结构的定义。

当在移动电话、平板电脑或笔记本电脑等小型或受限设备上处理GeoPackage时,这种基于平铺的金字塔结构特别有用,因为可以根据缩放级别和设备屏幕大小选择适当的分辨率。此机制基于第6节中介绍的平铺矩阵集模型 WMTS Implementation Specification

如果要将切片包括在GeoPackage中,则需要另外两个元数据表, gpkg_tile_matrix_setgpkg_tile_matrix 。除了这些表之外,每个平铺棱锥体还需要一个包含实际平铺的用户定义表。

http://www.geopackage.org/spec130/geopackage-tiles.png

图3:Tiles表的UML图

gpkg_tile_matrix_set

这个 gpkg_tile_matrix_set 表描述了命名一个平铺矩阵集(棱锥体)。此表中的列包括:

  • table_name and srs_id match the entries in gpkg_contents

  • min_xmin_ymax_x ,以及 max_y :平铺棱锥体的实际空间范围。

这必须是准确的,以便应用程序可以使用此信息正确地对切片进行地理定位。(这与中的范围形成对比 gpkg_contents 它们是信息性的,预计将反映以下内容的范围 可用内容 。)

gpkg_tile_matrix

每个平铺矩阵集合由一个或多个平铺矩阵组成,每个平铺矩阵由其缩放级别标识。此表中的必需列为:

  • table_name 与中的条目匹配 gpkg_contents 以及其他地方

  • zoom_level 指示文件中存在的缩放级别。

  • matrix_widthmatrix_height 描述切片矩阵的大小(以切片为单位

  • tile_widthtile_height 描述每个切片的大小(以像素为单位

  • pixel_x_sizepixel_y_size 描述每个像素的大小

默认情况下,缩放级别以2的幂分隔,但如果这不适合您的方案,则可以使用 Zoom Other Levels 分机。

User Data Tables

物理平铺(数据)存储在具有特定模式的用户数据表中。这些表的必需列包括:

  • id 是主键

  • zoom_level 指示此切片属于哪个切片矩阵

  • tile_columntile_row 是零索引切片编号

  • tile_data 是包含平铺图像的斑点

PNG和JPG是核心标准支持的两种平铺文件类型。

  • PNG通常更适用于合成数据(即数字地图),因为它是无损的,其压缩编解码器可以很好地压缩合成数据。

  • JPG通常更适合自然数据(例如,卫星或航空图像),因为它具有优越的(虽然有损)压缩。

  • The WebP Extension allows for the use of WebP files which feature both transparency and improved compression, but WebP support is not as ubiquitous.

但是,由于PNG支持Alpha透明度,而JPG不支持,因此在平铺棱锥体边界周围使用PNG平铺是很常见的。这允许用户查看平铺边界下的数据。

备注

JPG文件的压缩等级可调。我们发现,在50-75(满分100分)的范围内的评分对图像效果最好。评级太高会占用太多空间,而评级太低会有太多可见的瑕疵。在50-75范围内,这是文件大小和图像质量之间的合理折衷。

默认情况下,瓷砖金字塔是按2的幂组织的。有两种用于最大化平铺存储空间效率的常用策略。

1.瓦片金字塔可能人烟稀少。通过将不必要的分块留空,客户端可以降至下一个缩放级别来渲染地图的该部分。

  1. 若要进一步优化存储效率,请考虑使用 Zoom Other Intervals Extension 并细化缩放级别以匹配数据及其预期用途。