User Defined Extension of GeoPackageBinary Geometry Encoding
This extension specifies a standard way to implement user defined extensions of the GeoPackageBinary geometry encoding format to encode geometry types not specified in clauses [sql_geometry_types] and 3.1.1 and listed in [geometry_types]. It is intended to be a bridge to enable use of geometry types like EllipiticalCurve in Extended GeoPackages until standard encodings of such types are developed and published for the Well Known Binary (WKB) format.
Name of implementer, author_name NOT gpkg
.
Extension names are constructed from the <author_name>_geom_<gname> template where <gname> is the uppercase name of an extension geometry type NOT in [geometry_types].
Extension of Existing Requirement in clauses [gpb_format], [sql_geometry_types] and 3.1.1.
This extension applies to any column specified in the gpkg_geometry_columns table.
Read-write
This extension specifies the use of one of the reserved bits in the GeoPackageBinary header to indicate the presence of an ExtendedGeopackageBinary encoding format. In the extension case a four byte sequence follows the GPB header. This is intended to disambiguate various extensions. The actual extension geometry body is not specified.
ExtendedGeoPackageBinary { GeoPackageBinaryHeader header; (1) byte[4] extension_code; (2) byte[] extension_specific; (3) }
-
The X bit in the header flags field must be set to 1.
-
To indicate different extensions or vendors. 0x47504B47 (GPKG in ASCII) is reserved.
-
Extension specific contents
None
SQL functions that operate on GeoPackageBinary geometries as specified in other extensions SHALL operate correctly on the ExtendedGeopackageBinary specified in this extension.