幾何値の WKB (Well-Known Binary) 表現は、OpenGIS 仕様で定義されています。これはまた、ISO の『SQL/MM Part 3: Spatial』標準でも定義されています。
WKB は、幾何データの交換を、WKB
幾何情報が格納された
BLOB
値で表されたバイナリストリームとして行うために使用されます。
WKB では 1 バイトの符号なし整数、4 バイトの符号なし整数、および 8 バイトの倍精度数値 (IEEE 754 形式) が使用されます。1 バイトは 8 ビットです。
たとえば、POINT(1 1)
に対応する WKB 値は、次に示す 21
バイトのシーケンスから構成されます
(各バイトを 2 桁の 16 進数で表している)。
0101000000000000000000F03F000000000000F03F
このシーケンスは次の構成要素に分解できます。
Byte order : 01 WKB type : 01000000 X : 000000000000F03F Y : 000000000000F03F
各構成要素が表す内容は次のとおりです。
バイト順序は 1、0 のいずれかであり、リトルエンディアン、ビッグエンディアンのどちらで格納されているかを示します。リトルエンディアンバイト順序、ビッグエンディアンバイト順序はそれぞれ NDR (Network Data Representation)、XDR (External Data Representation) とも呼ばれます。
WKB 型は幾何型を示すコードです。1 から 7
の値は
Point
、LineString
、Polygon
、MultiPoint
、MultiLineString
、MultiPolygon
、および
GeometryCollection
を示します。
Point
値には X
座標と Y
座標が含まれますが、それぞれ倍精度値として表現されます。
より複雑な幾何値の WKB 値はより複雑なデータ構造で表されますが、その詳細は OpenGIS の仕様書を参照してください。