属性和扩展

Attributes

属性是仅包含非空间数据的表。属性的规则与要素的规则类似,但属性在中没有几何列和对应的行 gpkg_contents 有一个 data_type “属性”的概念。此数据通常根据应用程序的需要与空间数据连接。

Extensions

除了平铺、特性和属性之外,GeoPackage还有一个定义良好的扩展机制来支持不属于核心标准的用例。GeoPackage扩展是一组一个或多个需求子句,用于分析/扩展GeoPackage标准中的现有需求子句或添加新的需求子句。现有的要求子句扩展示例包括附加的几何类型、附加的SQL几何函数和附加的平铺图像格式。新的REQUIRED子句扩展示例包括空间索引、触发器、附加表、其他BLOB列编码和其他SQL函数。

根据定义,使用一个或多个扩展名的文件是扩展GeoPackages。有两类扩展, 已注册社区

gpkg_extensions

扩展表描述了GeoPackage中使用的扩展。此表的列包括:

  • table_name 是应用扩展模块的SQLite表的名称

  • column_name 是SQLite列的名称(在引用的 table_name )扩展适用的位置(在某些情况下为 null )

  • extension_name 是所需扩展名的区分大小写的名称,格式为 <author>_<extension_name> (作者姓名 gpkg 保留给OGC采用的分机)

  • definition 是固定链接、URI或对定义扩展名的文档的引用

  • scope 要么是 read-write (对于大多数分机)或 write-only (对于可以由不知道扩展的应用程序无缝使用的扩展,只要它们在只读模式下运行即可)

已注册的分机

注册的扩展已经由OGC审查和采用,并且在所有目的和目的上都是该标准的一部分。大多数注册的扩展模块都作为 core standard 但它们也可以独立出版。

OGC采用了以下扩展:

请按照链接查看每个分机的说明。

社区扩展

OGC承认有GeoPackage标准没有涵盖的用例。欢迎实现者使用这里定义的扩展机制来开发社区扩展。扩展机制提供了一些优点,包括可发现性(通过扫描单个表可以发现正在使用的扩展)和统一性(声明扩展正在使用,表示正在满足一组定义的需求)。但是,这是一个应该谨慎做出的决定,因为自定义扩展确实会带来互操作性风险。OGC管理一个注册表 community extensions

OGC无法认可社区扩展。因此,包含社区扩展的扩展GeoPackage将无法通过一致性测试。然而,感兴趣的社区可以在它自己的GeoPackage概要文件中免除这一要求,但需要注意的是,它必须承担认可新扩展的责任。

鼓励对开发自己的扩展感兴趣的实施者与OGC联系,以确保扩展是按照OGC策略开发的,并且以将互操作性风险降至最低的方式进行开发。OGC将考虑采用外部开发的扩展,这些扩展针对明确的用例,具有完善的技术方法,并承诺由多个实现者实现。