名称

ST_AsBinary — 返回不带 SRID 元数据的几何/地理的 OGC/ISO 知名二进制 (WKB) 表示。

概要

bytea ST_AsBinary(geometry g1);

bytea ST_AsBinary(geometry g1, text NDR_or_XDR);

bytea ST_AsBinary(geography g1);

bytea ST_AsBinary(geography g1, text NDR_or_XDR);

描述

返回几何体的 OGC/ISO 知名二进制 (WKB) 表示。第一个函数变体默认使用服务器机器的字节序进行编码。第二个函数变体接受一个文本参数,指定字节序编码,可以使用小端字节序 ('NDR') 或大端字节序 ('XDR')。

WKB 格式可用于从数据库读取几何数据并保持完整的数值精度。这避免了使用 WKT 等文本格式时可能发生的精度舍入。

要执行 WKB 到 PostGIS 几何的反向转换,请使用 ST_GeomFromWKB

[Note]

OGC/ISO WKB 格式不包括 SRID。要获取包含 SRID 的 EWKB 格式,请使用 ST_AsEWKB

[Note]

PostgreSQL 9.0 中的默认行为已更改为以十六进制编码输出 bytea。如果您的 GUI 工具需要旧的行为,请在数据库中设置 bytea_output='escape'。

增强:2.0.0 引入了对多面体表面、三角形和 TIN 的支持。

增强:2.0.0 引入了对更高坐标维度的支持。

增强:2.0.0 引入了对使用地理指定字节序的支持。

可用性:1.5.0 引入了地理支持。

更改:2.0.0 此函数的输入不能是未知类型 -- 必须是几何类型。诸如 ST_AsBinary('POINT(1 2)') 之类的构造不再有效,您将收到一个 n st_asbinary(unknown) is not unique error 错误。需要将类似的代码更改为 ST_AsBinary('POINT(1 2)'::geometry);。如果不可能,请安装 legacy.sql

此方法实现了 OGC 简单要素 SQL 实现规范 1.1。 s2.1.1.1

此方法实现了 SQL/MM 规范。SQL-MM 3: 5.1.37

此方法支持圆弧字符串和曲线。

此函数支持多面体表面。

此函数支持三角形和三角不规则网络曲面 (TIN)。

此函数支持 3d,并且不会删除 z 索引。

示例

SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326));

		   st_asbinary
--------------------------------
\x01030000000100000005000000000000000000000000000000000000000000000000000000000000
000000f03f000000000000f03f000000000000f03f000000000000f03f0000000000000000000000
00000000000000000000000000
SELECT ST_AsBinary(ST_GeomFromText('POLYGON((0 0,0 1,1 1,1 0,0 0))',4326), 'XDR');
		   st_asbinary
--------------------------------
\x000000000300000001000000050000000000000000000000000000000000000000000000003ff000
00000000003ff00000000000003ff00000000000003ff00000000000000000000000000000000000
00000000000000000000000000