WKB(Well-known Binary)通过序列化的字节对象来描述几何对象。在
WKB 中主要涉及两种数值类型:一种是 uint32,占 4 个字节,用以存储节点数、几何对象类型等信息;另一种是 double,占 8 个字节,用以存储节点坐标值。其中的几何对象类型对应的整数可以参考下表:
图 3 WKB 中几何类型对应的整数值
除此之外,WKB在第一位还存储了一个额外的字节用来标识字节序 3 (0=Big-Indian,1=Little-Indian)。因此,对于一个点(不带 M 值的二维点)来说,它的 WKB 描述应该类似下面的结构,总共占据 21 个字节:
图 4 WKB 描述点的字节结构
对于有 2 个节点的线来说,WKB 描述应该包吨 41 个字节:
图 5 WKB 描述线的字节结构
对于仅有 1 个外环,由 3 个节点构成的多边形来说,WKB 描述则应该包吨
77 个字节:
1字节(字节序) 4字节(几 4字节(环 4字节(环 8字节(节 8字节(节 8字节(节 8字节(节 8字节(节 8字节(节 8字节(节 8字节(节何类型) 数) 1的节点数) 点1 X坐标) 点1 Y坐标) 点2 X坐标) 点2 Y坐标) 点3 X坐标) 点3 Y坐标) 点1 X坐标) 点1 Y坐标)
图 6 WKB 描述多边形的字节结构