这些函数将包含 Well-Known Binary (WKB) 表示的 BLOB
作为其参数,以及可选的空間參考系識別碼 (SRID)。它们返回相应的几何形状。有关 WKB 格式的说明,请参见 Well-Known Binary (WKB) 格式。
本节中的函数会检测笛卡尔或地理空间参考系统 (SRS) 中的参数,并返回与 SRS 相符的结果。
ST_GeomFromWKB()
接受任何几何类型的 WKB 值作为其第一个参数。其他函数为每种几何类型的几何值构造提供类型特定的构造函数。
在 MySQL 8.4 之前,这些函数还接受 第 14.16.5 节,“创建几何值的 MySQL 特定函数” 中函数返回的几何对象。不再允许几何参数,并会产生错误。要将调用从使用几何参数迁移到使用 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
值。这些函数处理其参数的方式如本节开头所述。