# 12.17.4 从 WKB 值创建几何值的函数
这些函数将 a 作为参数斑点
包含众所周知的二进制 (WKB) 表示,以及可选的空间参考系统标识符 (SRID)。它们返回相应的几何图形。有关 WKB 格式的说明,请参阅众所周知的二进制 (WKB) 格式.
本节中的函数检测笛卡尔或地理空间参考系统 (SRS) 中的参数,并返回适合 SRS 的结果。
ST_GeomFromWKB()
接受任何几何类型的 WKB 值作为其第一个参数。其他函数提供特定类型的构造函数,用于构造每种几何类型的几何值。
在 MySQL 8.0 之前,这些函数还接受由函数返回的几何对象第 12.17.5 节,“创建几何值的 MySQL 特定函数”.不再允许几何参数并产生错误。要将调用从使用几何参数迁移到使用 WKB 参数,请遵循以下准则:
重写结构,例如
ST_GeomFromWKB(点(0, 0))
作为点(0, 0)
.重写结构,例如
ST_GeomFromWKB(点(0, 0), 4326)
作为ST_SRID(点(0, 0), 4326)
要么ST_GeomFromWKB(ST_AsWKB(点(0, 0)), 4326)
.除非另有说明,本节中的函数按如下方式处理其几何参数:
如果 WKB 或 SRID 参数是
空值
,返回值为空值
.默认情况下,地理坐标(纬度、经度)按照几何参数的空间参考系统指定的顺序进行解释。一个可选的*
选项
可以给出参数以覆盖默认轴顺序。选项
由逗号分隔的列表组成*
钥匙*=*
价值*
.唯一允许的钥匙
*值为轴序
, 允许的值为经纬度
,长纬度
和网格定义
(默认)。如果*
选项
论据是空值
,返回值为空值
.如果选项
*参数无效,发生错误以说明原因。如果 SRID 参数引用未定义的空间参考系统 (SRS),则
ER_SRS_NOT_FOUND
(opens new window)发生错误。对于地理 SRS 几何参数,如果任何参数的经度或纬度超出范围,则会发生错误:
如果经度值不在 (−180, 180] 范围内,则
ER_LONGITUDE_OUT_OF_RANGE
(opens new window)发生错误。如果纬度值不在范围内[−90, 90], 一个
ER_LATITUDE_OUT_OF_RANGE
(opens new window)发生错误。显示的范围以度为单位。如果 SRS 使用另一个单位,则范围使用其单位中的相应值。由于浮点运算,确切的范围限制略有偏差。
这些函数可用于从 WKB 值创建几何图形:
-
ST_GeomColFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
,ST_GeometryCollectionFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
构造一个
几何集合
值使用它的 WKB 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。
-
ST_GeomFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
,ST_GeometryFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
使用其 WKB 表示和 SRID 构造任何类型的几何值。
这些函数处理它们的参数,如本节介绍中所述。
-
ST_LineFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
,ST_LineStringFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
构造一个
线串
值使用它的 WKB 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。
-
ST_MLineFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
,ST_MultiLineStringFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
构造一个
多行字符串
值使用它的 WKB 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。
-
ST_MPointFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
,ST_MultiPointFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
构造一个
多点
值使用它的 WKB 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。
-
ST_MPolyFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
,ST_MultiPolygonFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
构造一个
多多边形
值使用它的 WKB 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。
-
ST_PointFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
构造一个
观点
值使用它的 WKB 表示和 SRID。ST_PointFromWKB()
如本节介绍中所述处理其参数。 -
ST_PolyFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
,ST_PolygonFromWKB(*
wkb* [, *
斯里德* [, *
选项*]])
构造一个
多边形
值使用它的 WKB 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。