WKB 和 PostGIS 中返回的十六进制值有区别吗
Is there a difference between WKB and the hex value returned in PostGIS
我一直在尝试使用 PostGIS,以下是我注意到的内容:
假设我有一个table定义如下:
CREATE TABLE IF NOT EXISTS geomtest (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
geom geometry(POLYGON, 4326) NOT NULL
);
然后添加以下多边形:
SRID=4326;POLYGON((0 0,0 10,10 10,10 0,0 0))
如果我单独查询 geom
列,我会得到几何的十六进制表示。如果我改为调用 ST_AsBinary(geom)
,我会得到一个二进制表示。
但是,当我将十六进制和二进制表示形式都转换为字节数组时,得到的结果略有不同。第一条评论是我将十六进制转换为二进制得到的结果,接下来是直接来自 ST_AsBinary()
//[1 3 0 0 32 230 16 0 0 1 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
//[1 3 0 0 0 1 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
如你所见,前4个字节是相同的;表示它是大端还是小端,以及几何类型(3,在本例中为多边形)。其余字节也相同。唯一的区别是在前 4 个之后添加了一些额外的字节。
我想知道这是否与表示投影 (SRID=4326) 有关,但我还没有找到任何证据。
如果有人能阐明这一点,我将不胜感激。
我没有检查字节,但我确信区别在于 WKB 格式中未包含的 SRID。
试试 st_asewkb
。
我一直在尝试使用 PostGIS,以下是我注意到的内容:
假设我有一个table定义如下:
CREATE TABLE IF NOT EXISTS geomtest (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL,
geom geometry(POLYGON, 4326) NOT NULL
);
然后添加以下多边形:
SRID=4326;POLYGON((0 0,0 10,10 10,10 0,0 0))
如果我单独查询 geom
列,我会得到几何的十六进制表示。如果我改为调用 ST_AsBinary(geom)
,我会得到一个二进制表示。
但是,当我将十六进制和二进制表示形式都转换为字节数组时,得到的结果略有不同。第一条评论是我将十六进制转换为二进制得到的结果,接下来是直接来自 ST_AsBinary()
//[1 3 0 0 32 230 16 0 0 1 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
//[1 3 0 0 0 1 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 36 64 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]
如你所见,前4个字节是相同的;表示它是大端还是小端,以及几何类型(3,在本例中为多边形)。其余字节也相同。唯一的区别是在前 4 个之后添加了一些额外的字节。
我想知道这是否与表示投影 (SRID=4326) 有关,但我还没有找到任何证据。
如果有人能阐明这一点,我将不胜感激。
我没有检查字节,但我确信区别在于 WKB 格式中未包含的 SRID。
试试 st_asewkb
。