Byte Offset | Content | Notes |
---|---|---|
0 | START [hex 00] | a GEOMETRY encoded BLOB value must always start with a 0x00 byte |
1 | ENDIAN [hex 00 or hex 01] [hex 80 or hex 81] |
if this GEOMETRY is BIG_ENDIAN ordered must contain a 0x00 byte value otherwise, if this GEOMETRY is LITTLE_ENDIAN ordered must contain a 0x01 byte value Any other value [neither 0x00 nor 0x01], means that this BLOB cannot be a valid GEOMETRY Starting from version 5.0 the special values 0x80 or 0x81 identify the new BLOB TinyPoint encoding. |
2 - 5 | SRID | a 32-bits integer value [little-
big-endian ordered, accordingly with the precedent one] corresponding to the SRID for this GEOMETRY |
6 - 13 | MBR_MIN_X | a double value [little-
big-endian ordered, accordingly with the precedent one] corresponding to the MBR minimum X coordinate for this GEOMETRY |
14 - 21 | MBR_MIN_Y | a double value corresponding to the MBR minimum Y coordinate |
22 - 29 | MBR_MAX_X | a double value corresponding to the MBR maximum X coordinate |
30 - 37 | MBR_MAX_Y | a double value corresponding to the MBR maximum Y coordinate |
38 | MBR_END [hex 7C] | a GEOMETRY encoded BLOB value must always have an 0x7C byte in this position |
39 - 42 | CLASS TYPE | a 32-bits integer; must identify a valid WKB class, i.e.
Using recent versions (v.2.4 or any subsequent) the following extended classes are supported as well:
|
43 - ... | geometry class specific | length and content depends on geometry class [POINT, LINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION etc] |
LAST | END [hex FE] | a GEOMETRY encoded BLOB value must always end with a 0xFE byte |
GEOMETRY class |
|
||||||
---|---|---|---|---|---|---|---|
POINT |
|
||||||
LINESTRING |
|
||||||
POLYGON |
|
||||||
MULTIPOINT |
|
||||||
MULTILINESTRING |
|
||||||
MULTIPOLYGON |
|
||||||
GEOMETRYCOLLECTION |
|
Byte Offset | Content | Notes |
---|---|---|
0 | ENTITY [hex 69] | a GEOMETRY encoded BLOB value must always have an 0x69 byte in this position |
1 - 4 | CLASS TYPE | a 32-bits integer; must identify a valid WKB class that can be included within a collection, i.e.
|
5 - ... | geometry class specific | Length and content depends on geometry class [POINT, LINESTRING or POLYGON] |
XYZ GEOMETRY class |
|
|||||||||
---|---|---|---|---|---|---|---|---|---|---|
POINT Z |
|
|||||||||
LINESTRING Z |
|
|||||||||
POLYGON Z |
|
|||||||||
MULTIPOINT Z |
|
|||||||||
MULTILINESTRING Z |
|
|||||||||
MULTIPOLYGON Z |
|
|||||||||
GEOMETRYCOLLECTION Z |
|
Byte Offset | Content | Notes |
---|---|---|
0 | ENTITY [hex 69] | a GEOMETRY encoded BLOB value must always have an 0x69 byte in this position |
1 - 4 | CLASS TYPE | a 32-bits integer; must identify a valid WKB class that can be included within a collection, i.e.
|
5 - ... | geometry class specific | Length and content depends on geometry class [POINT Z, LINESTRING Z or POLYGON Z] |
XYM GEOMETRY class |
|
|||||||||
---|---|---|---|---|---|---|---|---|---|---|
POINT M |
|
|||||||||
LINESTRING M |
|
|||||||||
POLYGON M |
|
|||||||||
MULTIPOINT M |
|
|||||||||
MULTILINESTRING M |
|
|||||||||
MULTIPOLYGON M |
|
|||||||||
GEOMETRYCOLLECTION M |
|
Byte Offset | Content | Notes |
---|---|---|
0 | ENTITY [hex 69] | a GEOMETRY encoded BLOB value must always have an 0x69 byte in this position |
1 - 4 | CLASS TYPE | a 32-bits integer; must identify a valid WKB class that can be included within a collection, i.e.
|
5 - ... | geometry class specific | Length and content depends on geometry class [POINT M, LINESTRING M or POLYGON M] |
XYZM GEOMETRY class |
|
||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
POINT ZM |
|
||||||||||||
LINESTRING ZM |
|
||||||||||||
POLYGON ZM |
|
||||||||||||
MULTIPOINT ZM |
|
||||||||||||
MULTILINESTRING ZM |
|
||||||||||||
MULTIPOLYGON ZM |
|
||||||||||||
GEOMETRYCOLLECTION ZM |
|
Byte Offset | Content | Notes |
---|---|---|
0 | ENTITY [hex 69] | a GEOMETRY encoded BLOB value must always have an 0x69 byte in this position |
1 - 4 | CLASS TYPE | a 32-bits integer; must identify a valid WKB class that can be included within a collection, i.e.
|
5 - ... | geometry class specific | Length and content depends on geometry class [POINT ZM, LINESTRING ZM or POLYGON ZM] |
Uncompressed Class | Compressed Class |
---|---|
2 = LINESTRING | 1000002 = COMPRESSED LINESTRING |
3 = POLYGON | 1000003 = COMPRESSED POLYGON |
1002 = LINESTRING Z | 1001002 = COMPRESSED LINESTRING Z |
1003 = POLYGON Z | 1001003 = COMPRESSED POLYGON Z |
2002 = LINESTRING M | 1002002 = COMPRESSED LINESTRING M |
2003 = POLYGON M | 1002003 = COMPRESSED POLYGON M |
3002 = LINESTRING ZM | 1003002 = COMPRESSED LINESTRING ZM |
3003 = POLYGON ZM | 1003003 = COMPRESSED POLYGON ZM |
Byte Offset | Content | Notes | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 - 3 | number of POINTs | a 32-bits integer specifying the number of POINTs in this compressed LINESTRING | ||||||||||||
4 - 19 | first POINT | first POINT always is uncompressed | ||||||||||||
20 - ... | compressed POINTs |
any further POINT [except the last one] always is expected to be compressed |
||||||||||||
END-16 - END | last POINT | last POINT always is uncompressed so to fully preserve topological consistency |
Byte Offset | Content | Notes |
---|---|---|
0 - 3 | number of RINGs | a 32-bits integer specifying the number of RINGs in this compressed POLYGON |
4 - ... | RINGs | a corresponding sequence of compressed RINGs [ compressed LINESTRINGs] |
Byte Offset | Content | Notes | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 - 3 | number of POINTZs | a 32-bits integer specifying the number of POINTZs in this compressed LINESTRING Z | |||||||||||||||
4 - 27 | first POINT Z | first POINT Z always is uncompressed | |||||||||||||||
28 - ... | compressed POINTZs |
any further POINT Z [except the last one] always is expected to be compressed |
|||||||||||||||
END-24 - END | last POINT Z | last POINT Z always is uncompressed so to fully preserve topological consistency |
Byte Offset | Content | Notes |
---|---|---|
0 - 3 | number of RINGZs | a 32-bits integer specifying the number of RINGZs in this compressed POLYGON Z |
4 - ... | RINGZs | a corresponding sequence of compressed RINGZs [ compressed LINESTRINGZs] |
Byte Offset | Content | Notes | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 - 3 | number of POINTMs | a 32-bits integer specifying the number of POINTMs in this compressed LINESTRING M | |||||||||||||||
4 - 27 | first POINT M | first POINT M always is uncompressed | |||||||||||||||
28 - ... | compressed POINTMs |
any further POINT M [except the last one] always is expected to be compressed |
|||||||||||||||
END-24 - END | last POINT M | last POINT M always is uncompressed so to fully preserve topological consistency |
Byte Offset | Content | Notes |
---|---|---|
0 - 3 | number of RINGMs | a 32-bits integer specifying the number of RINGMs in this compressed POLYGON M |
4 - ... | RINGMs | a corresponding sequence of compressed RINGMs [ compressed LINESTRINGMs] |
Byte Offset | Content | Notes | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 - 3 | number of POINTZMs | a 32-bits integer specifying the number of POINTZMs in this compressed LINESTRING ZM | ||||||||||||||||||
4 - 35 | first POINT ZM | first POINT ZM always is uncompressed | ||||||||||||||||||
36 - ... | compressed POINTZMs |
any further POINT ZM [except the last one] always is expected to be compressed |
||||||||||||||||||
END-32 - END | last POINT ZM | last POINT ZM always is uncompressed so to fully preserve topological consistency |
Byte Offset | Content | Notes |
---|---|---|
0 - 3 | number of RINGZMs | a 32-bits integer specifying the number of RINGZMs in this compressed POLYGON ZM |
4 - ... | RINGZMs | a corresponding sequence of compressed RINGZMs [ compressed LINESTRINGZMs] |