这些函数将Well-Known Text(WKT)表示形式和可选的空间参考系统标识符(SRID)作为参数,并返回相应的几何体。有关WKT格式的描述,请参见Well-Known Text (WKT) Format。
本节中的函数可以检测Cartesian或地理空间参考系统(SRSs)中的参数,并返回适合SRS的结果。
ST_GeomFromText()
接受任何几何类型的WKT值作为其第一个参数。其他函数提供了每种几何类型的特定构造函数,以构建相应的几何值。
函数如ST_MPointFromText()
和ST_GeomFromText()
,它们接受WKT格式的MultiPoint值,允许值中的每个点被括号括起来。例如,以下两个函数调用都是有效的:
ST_MPointFromText('MULTIPOINT (1 1, 2 2, 3 3)')
ST_MPointFromText('MULTIPOINT ((1 1), (2 2), (3 3))')
函数如ST_GeomFromText()
,它们接受WKT几何集合参数,理解OpenGIS 'GEOMETRYCOLLECTION EMPTY'
标准语法和MySQL 'GEOMETRYCOLLECTION()'
非标准语法。函数如ST_AsWKT()
,它们生成WKT值,生成'GEOMETRYCOLLECTION EMPTY'
标准语法:
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参数为空,则返回值为空。
-
默认情况下,地理坐标(纬度、经度)按照几何参数的空间参考系统指定的顺序解释。可选的
options
参数可以覆盖默认轴顺序。options
由逗号分隔的
列表组成。唯一允许的key
=value
key
值是axis-order
,其允许值为lat-long
、long-lat
和srid-defined
(默认)。如果
options
参数为空,则返回值为空。如果options
参数无效,将发生错误以指示为什么。 -
如果SRID参数引用了未定义的空间参考系统(SRS),将发生
ER_SRS_NOT_FOUND
错误。 -
对于地理SRS几何参数,如果任何参数的经度或纬度超出范围,将发生错误:
-
如果经度值不在(−180,180]范围内,将发生
ER_LONGITUDE_OUT_OF_RANGE
错误。 -
如果纬度值不在[−90,90]范围内,将发生
ER_LATITUDE_OUT_OF_RANGE
错误。
显示的范围以度为单位。如果SRS使用其他单位,范围将使用该单位的相应值。由于浮点算术的原因,实际范围限制略有偏差。
-
以下函数可用于从WKT值创建几何体:
-
ST_GeomCollFromText(
,wkt
[,srid
[,options
]])ST_GeometryCollectionFromText(
,wkt
[,srid
[,options
]])ST_GeomCollFromTxt(
wkt
[,srid
[,options
]])使用其 WKT 表示形式和 SRID 构建一个
GeometryCollection
值。这些函数处理它们的参数,如本节的介绍中所述。
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(
,wkt
[,srid
[,options
]])ST_GeometryFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示形式和 SRID 构建任意类型的几何值。
这些函数处理它们的参数,如本节的介绍中所述。
-
ST_LineFromText(
,wkt
[,srid
[,options
]])ST_LineStringFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示形式和 SRID 构建一个
LineString
值。这些函数处理它们的参数,如本节的介绍中所述。
-
ST_MLineFromText(
,wkt
[,srid
[,options
]])ST_MultiLineStringFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示形式和 SRID 构建一个
MultiLineString
值。这些函数处理它们的参数,如本节的介绍中所述。
-
ST_MPointFromText(
,wkt
[,srid
[,options
]])ST_MultiPointFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示形式和 SRID 构建一个
MultiPoint
值。这些函数处理它们的参数,如本节的介绍中所述。
-
ST_MPolyFromText(
,wkt
[,srid
[,options
]])ST_MultiPolygonFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示形式和 SRID 构建一个
MultiPolygon
值。这些函数处理它们的参数,如本节的介绍中所述。
-
ST_PointFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示形式和 SRID 构建一个
Point
值。ST_PointFromText()
处理其参数,如本节的介绍中所述。 -
ST_PolyFromText(
,wkt
[,srid
[,options
]])ST_PolygonFromText(
wkt
[,srid
[,options
]])使用其 WKT 表示形式和 SRID 构建一个
Polygon
值。这些函数处理它们的参数,如本节的介绍中所述。