2.4. WKB 描述的几何对象

WKB(Well-known Binary)通过序列化的字节对象来描述几何对象。在

WKB 中主要涉及两种数值类型:一种是 uint32,占 4 个字节,用以存储节点数、几何对象类型等信息;另一种是 double,占 8 个字节,用以存储节点坐标值。其中的几何对象类型对应的整数可以参考下表:

image0

图 3 WKB 中几何类型对应的整数值

除此之外,WKB在第一位还存储了一个额外的字节用来标识字节序 [3] (0=Big-Indian,1=Little-Indian)。因此,对于一个点(不带 M 值的二维点)来说,它的 WKB 描述应该类似下面的结构,总共占据 21 个字节:

image1

图 4 WKB 描述点的字节结构

对于有 2 个节点的线来说,WKB 描述应该包吨 41 个字节:

image2

图 5 WKB 描述线的字节结构

对于仅有 1 个外环,由 3 个节点构成的多边形来说,WKB 描述则应该包吨

77 个字节:

image3 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 描述多边形的字节结构

[3]关于字节序可以参考:http://zh.wikipedia.org/zh/%E5%AD%97%E8%8A%82%E5%BA%8F