这些函数将 Well-Known Binary (WKB) 表示形式的 BLOB
作为参数,并且可选地指定空间参考系统标识符 (SRID)。它们返回相应的几何体。有关 WKB 格式的描述,请参阅 Well-Known Binary (WKB) 格式。
本节中的函数可以检测 Cartesian 或地理空间参考系统 (SRS) 中的参数,并返回相应的结果。
ST_GeomFromWKB()
接受任何几何类型的 WKB 值作为其第一个参数。其他函数提供了每种几何类型的特定构造函数,以构建相应的几何值。
在 MySQL 8.3 之前,这些函数也接受了由 第 14.16.5 节“MySQL 特定函数 That Create Geometry Values” 中的函数返回的几何对象作为参数。几何参数不再被允许,并将产生错误。要将使用几何参数的调用迁移到使用 WKB 参数,按照以下指南进行:
-
重写构造,如
ST_GeomFromWKB(Point(0, 0))
,重写为Point(0, 0)
。 -
重写构造,如
ST_GeomFromWKB(Point(0, 0), 4326)
,重写为ST_SRID(Point(0, 0), 4326)
或ST_GeomFromWKB(ST_AsWKB(Point(0, 0)), 4326)
。
除非另有说明,本节中的函数将其几何参数处理如下:
-
如果 WKB 或 SRID 参数为
NULL
,则返回值为NULL
。 -
默认情况下,地理坐标(纬度、经度)按照几何参数的空间参考系统的顺序解释。可选的
options
参数可以用来覆盖默认的轴顺序。options
由逗号分隔的
组成。唯一允许的key
=value
key
值是axis-order
,其允许值为lat-long
、long-lat
和srid-defined
(默认值)。如果
options
参数为NULL
,则返回值为NULL
。如果options
参数无效,将发生错误以指示原因。 -
如果 SRID 参数引用了未定义的空间参考系统 (SRS),将发生
ER_SRS_NOT_FOUND
错误。 -
对于地理 SRS 几何参数,如果任何参数的经度或纬度超出范围,将发生错误:
-
如果经度值不在范围 (−180, 180] 内,将发生
ER_LONGITUDE_OUT_OF_RANGE
错误。 -
如果纬度值不在范围 [−90, 90] 内,将发生
ER_LATITUDE_OUT_OF_RANGE
错误。
所示范围以度为单位。如果 SRS 使用其他单位,则范围使用相应的值。在浮点算术中,精确的范围限制略有偏差。
-
以下函数可用于从 WKB 值创建几何值:
-
ST_GeomCollFromWKB(
,wkb
[,srid
[,options
]])ST_GeometryCollectionFromWKB(
wkb
[,srid
[,options
]])使用 WKB 表示形式和 SRID 构建
GeometryCollection
值。这些函数按照本节的介绍处理其参数。
-
ST_GeomFromWKB(
,wkb
[,srid
[,options
]])ST_GeometryFromWKB(
wkb
[,srid
[,options
]])使用 WKB 表示和 SRID 构建任意类型的几何值。
这些函数按照本节的介绍处理其参数。
-
ST_LineFromWKB(
,wkb
[,srid
[,options
]])ST_LineStringFromWKB(
wkb
[,srid
[,options
]])使用 WKB 表示和 SRID 构建 LineString 值。
这些函数按照本节的介绍处理其参数。
-
ST_MLineFromWKB(
,wkb
[,srid
[,options
]])ST_MultiLineStringFromWKB(
wkb
[,srid
[,options
]])使用 WKB 表示和 SRID 构建 MultiLineString 值。
这些函数按照本节的介绍处理其参数。
-
ST_MPointFromWKB(
,wkb
[,srid
[,options
]])ST_MultiPointFromWKB(
wkb
[,srid
[,options
]])使用 WKB 表示和 SRID 构建 MultiPoint 值。
这些函数按照本节的介绍处理其参数。
-
ST_MPolyFromWKB(
,wkb
[,srid
[,options
]])ST_MultiPolygonFromWKB(
wkb
[,srid
[,options
]])使用 WKB 表示和 SRID 构建 MultiPolygon 值。
这些函数按照本节的介绍处理其参数。
-
ST_PointFromWKB(
wkb
[,srid
[,options
]])使用 WKB 表示和 SRID 构建 Point 值。
ST_PointFromWKB()
按照本节的介绍处理其参数。 -
ST_PolyFromWKB(
,wkb
[,srid
[,options
]])ST_PolygonFromWKB(
wkb
[,srid
[,options
]])使用 WKB 表示和 SRID 构建 Polygon 值。
这些函数按照本节的介绍处理其参数。