# 12.17.3 从 WKT 值创建几何值的函数
这些函数将众所周知的文本 (WKT) 表示形式和可选的空间参考系统标识符 (SRID) 作为参数。它们返回相应的几何图形。有关 WKT 格式的说明,请参阅知名文本 (WKT) 格式.
本节中的函数检测笛卡尔或地理空间参考系统 (SRS) 中的参数,并返回适合 SRS 的结果。
ST_GeomFromText()
接受任何几何类型的 WKT 值作为其第一个参数。其他函数提供特定类型的构造函数,用于构造每种几何类型的几何值。
功能如ST_MPointFromText()
和ST_GeomFromText()
接受 WKT 格式的表示多点
values 允许值中的各个点用括号括起来。例如,以下两个函数调用都是有效的:
ST_MPointFromText('MULTIPOINT (1 1, 2 2, 3 3)')
ST_MPointFromText('MULTIPOINT ((1 1), (2 2), (3 3))')
功能如ST_GeomFromText()
接受 WKT 几何集合参数的人理解 OpenGIS'几何集合为空'
标准语法和 MySQL'几何集合()'
非标准语法。功能如ST_AsWKT()
产生 WKT 值的产生'几何集合为空'
标准语法:
mysql> SET @s1 = ST_GeomFromText('GEOMETRYCOLLECTION()');
mysql> SET @s2 = ST_GeomFromText('GEOMETRYCOLLECTION EMPTY');
mysql> SELECT ST_AsWKT(@s1), ST_AsWKT(@s2);
+--------------------------+--------------------------+
| ST_AsWKT(@s1) | ST_AsWKT(@s2) |
+--------------------------+--------------------------+
| GEOMETRYCOLLECTION EMPTY | GEOMETRYCOLLECTION EMPTY |
+--------------------------+--------------------------+
除非另有说明,本节中的函数按如下方式处理其几何参数:
如果任何几何参数是
空值
或者不是语法格式正确的几何,或者如果 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 使用另一个单位,则范围使用其单位中的相应值。由于浮点运算,确切的范围限制略有偏差。
这些函数可用于从 WKT 值创建几何图形:
-
ST_GeomColFromText(*
周转* [, *
斯里德* [, *
选项*]])
,ST_GeometryCollectionFromText(*
周转* [, *
斯里德* [, *
选项*]])
,ST_GeomColFromTxt(*
周转* [, *
斯里德* [, *
选项*]])
构造一个
几何集合
值使用其 WKT 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。
mysql> SET @g = "MULTILINESTRING((10 10, 11 11), (9 9, 10 10))"; mysql> SELECT ST_AsText(ST_GeomCollFromText(@g)); +--------------------------------------------+ | ST_AsText(ST_GeomCollFromText(@g)) | +--------------------------------------------+ | MULTILINESTRING((10 10,11 11),(9 9,10 10)) | +--------------------------------------------+
-
ST_GeomFromText(*
周转* [, *
斯里德* [, *
选项*]])
,ST_GeometryFromText(*
周转* [, *
斯里德* [, *
选项*]])
使用其 WKT 表示和 SRID 构造任何类型的几何值。
这些函数处理它们的参数,如本节介绍中所述。
-
ST_LineFromText(*
周转* [, *
斯里德* [, *
选项*]])
,ST_LineStringFromText(*
周转* [, *
斯里德* [, *
选项*]])
构造一个
线串
值使用其 WKT 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。
-
ST_MLineFromText(*
周转* [, *
斯里德* [, *
选项*]])
,ST_MultiLineStringFromText(*
周转* [, *
斯里德* [, *
选项*]])
构造一个
多行字符串
值使用其 WKT 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。
-
ST_MPointFromText(*
周转* [, *
斯里德* [, *
选项*]])
,ST_MultiPointFromText(*
周转* [, *
斯里德* [, *
选项*]])
构造一个
多点
值使用其 WKT 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。
-
ST_MPolyFromText(*
周转* [, *
斯里德* [, *
选项*]])
,ST_MultiPolygonFromText(*
周转* [, *
斯里德* [, *
选项*]])
构造一个
多多边形
值使用其 WKT 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。
-
ST_PointFromText(*
周转* [, *
斯里德* [, *
选项*]])
构造一个
观点
值使用其 WKT 表示和 SRID。ST_PointFromText()
如本节介绍中所述处理其参数。 -
ST_PolyFromText(*
周转* [, *
斯里德* [, *
选项*]])
,ST_PolygonFromText(*
周转* [, *
斯里德* [, *
选项*]])
构造一个
多边形
值使用其 WKT 表示和 SRID。这些函数处理它们的参数,如本节介绍中所述。