Name

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

Synopsis

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);

描述

Returns the OGC/ISO Well-Known Binary (WKB) representation of the geometry. The first function variant defaults to encoding using server machine endian. The second function variant takes a text argument specifying the endian encoding: either 'NDR' for little-endian; or 'XDR' for big-endian. Supplying unknown arguments will result in little-endian output.

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

要执行 WKB 到 PostGIS 几何图形的逆转换,请使用ST_GeomFromWKB

[Note]

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

[Note]

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

增强功能:引入了2.0.0 对多面体曲面、三角形和三角网的支持。

增强: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

此方法实现了 SQL 1.1 的 OGC 简单功能规范。 s2.1.1.1

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

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

该函数支持多面体曲面。

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

该函数支持 3d 并且不会丢失 z-index。

示例

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