一个LineString
由点
值。你可以提取特定的点LineString
,它包含计算点的数量,或获得它的长度。
一些功能在本节也工作MultiLineString
值。
除非另有说明,函数在这部分处理几何参数如下:
如果任何争论
零
或任何几何参数是一个空的几何,返回值零
。如果任何几何参数不是语法格式良好的几何图形,一个
ER_GIS_INVALID_DATA
发生错误。如果在一个未定义的几何参数是一个语法结构良好的几何空间引用系统(SRS),一个
ER_SRS_NOT_FOUND
发生错误。否则,返回值为非
零
。
这些函数可用于获取linestring属性:
返回
点
的端点LineString
价值ls
。ST_EndPoint ()
处理其所描述的参数作为本节的介绍。mysql >设置@ls = ' LineString (1 1 2 2 3 3)”;mysql >选择ST_AsText (ST_EndPoint (ST_GeomFromText (@ls)));+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | ST_AsText (ST_EndPoint (ST_GeomFromText (@ls))) | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +(3 3) | |点+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
对于一个
LineString
价值ls
,ST_IsClosed ()
返回1,如果ls
关闭(即它吗ST_StartPoint ()
和ST_EndPoint ()
值是相同的)。对于一个
MultiLineString
价值ls
,ST_IsClosed ()
返回1,如果ls
关闭(即ST_StartPoint ()
和ST_EndPoint ()
值是相同的LineString
在ls
)。ST_IsClosed ()
返回0,如果ls
不是封闭的,零
如果ls
是零
。ST_IsClosed ()
处理它的参数如介绍本节所述,这个异常:如果几何有SRID值地理空间引用系统(SRS),一个
ER_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS
发生错误。
mysql >设置@ls1 = ' LineString (1 1 2 2 3 3 2 2)”;mysql >设置@ls2 = ' LineString (1 1 2 2 3 3 1 1)”;mysql >选择ST_IsClosed (ST_GeomFromText (@ls1));+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | ST_IsClosed (ST_GeomFromText (@ls1)) | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | 0 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + mysql >选择ST_IsClosed (ST_GeomFromText (@ls2));+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | ST_IsClosed (ST_GeomFromText (@ls2)) | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | 1 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + mysql >设置@ls3 =“MultiLineString ((1 1 2 2 3 3), (4 4、5 5)”;mysql >选择ST_IsClosed (ST_GeomFromText (@ls3));+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | ST_IsClosed (ST_GeomFromText (@ls3)) | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | 0 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
返回一个双精度数表示的长度
LineString
或MultiLineString
价值ls
在其空间引用系统有关。的长度MultiLineString
价值等于它的元素的长度的总和。ST_Length ()
计算结果如下:如果几何是有效的
LineString
在笛卡尔SRS,返回值是笛卡尔几何长度。如果几何是有效的
MultiLineString
笛卡尔SRS,返回值是笛卡尔的长度之和的元素。如果几何是有效的
LineString
在一个地理SRS,返回值是SRS的大地的几何长度,在米。如果几何是有效的
MultiLineString
在地理SRS,返回值是大地的长度之和SRS的元素,在米。
ST_Length ()
处理它的参数如介绍本节所述,这些异常:如果几何不是一个
LineString
或MultiLineString
返回值零
。如果几何是几何无效,结果是未定义的长度(也就是说,它可以是任何数字),或发生错误。
如果长度计算结果
+正
,一个ER_DATA_OUT_OF_RANGE
发生错误。如果几何地理SRS经度或纬度的范围,出现错误:
如果一个经度值不在范围(180−180),一个
ER_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE
发生错误(ER_LONGITUDE_OUT_OF_RANGE
MySQL 8.0.12之前)。如果一个纬度值不在范围(90−90)
ER_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE
发生错误(ER_LATITUDE_OUT_OF_RANGE
MySQL 8.0.12之前)。
范围所示度。确切的范围限制由于浮点算术有所偏离。
MySQL 8.0.16,
ST_Length ()
允许一个可选的单位
参数指定的线性单元返回的长度值。这些规则适用:如果指定一个单位MySQL,但不支持的
ER_UNIT_NOT_FOUND
发生错误。如果指定一个支持线性单元和SRID = 0,
ER_GEOMETRY_IN_UNKNOWN_LENGTH_UNIT
发生错误。如果指定一个支持线性单元和SRID不是0,结果是单位。
如果没有指定单位,结果是在单位SRS的几何图形,无论是笛卡尔或地理。目前,所有MySQL srs在米表示。
支持一个单元中发现的
INFORMATION_SCHEMA
ST_UNITS_OF_MEASURE
表。看到部分26.3.37”INFORMATION_SCHEMA ST_UNITS_OF_MEASURE表”。mysql >设置@ls = ST_GeomFromText (“LineString (1 1 2 2 3 3) ');mysql >选择ST_Length (@ls);+ - - - - - - - - - - - - - - - - - - - - - - + | ST_Length (@ls) | + - - - - - - - - - - - - - - - - - - - - - - + | 2.8284271247461903 | + - - - - - - - - - - - - - - - - - - - - - - + mysql >设置@mls = ST_GeomFromText (“MultiLineString ((1 1 2 2 3 3), (4 4、5 5) ');mysql >选择ST_Length (@mls);+ - - - - - - - - - - - - - - - - - - - + | ST_Length (@mls) | + - - - - - - - - - - - - - - - - - - - + | 4.242640687119286 | + - - - - - - - - - - - - - - - - - - - + mysql >设置@ls = ST_GeomFromText (“LineString(1 1 2 2 3 3)”, 4326年);mysql >选择ST_Length (@ls);+ - - - - - - - - - - - - - - - - - - - + | ST_Length (@ls) | + - - - - - - - - - - - - - - - - - - - + | 313701.9623204328 | + - - - - - - - - - - - - - - - - - - - + mysql >选择ST_Length (@ls,“米”);+ - - - - - - - - - - - - - - - - - - - - - - - - - + | ST_Length (@ls,“米”)| + - - - - - - - - - - - - - - - - - - - - - - - - - + | 313701.9623204328 | + - - - - - - - - - - - - - - - - - - - - - - - - - + mysql >选择ST_Length (@ls,“脚”);+ - - - - - - - - - - - - - - - - - - - - - - - - + | ST_Length (@ls,“脚”)| + - - - - - - - - - - - - - - - - - - - - - - - - + | 1029205.9131247795 | + - - - - - - - - - - - - - - - - - - - - - - - - +
返回的数量
点
中的对象LineString
价值ls
。ST_NumPoints ()
处理其所描述的参数作为本节的介绍。mysql >设置@ls = ' LineString (1 1 2 2 3 3)”;mysql >选择ST_NumPoints (ST_GeomFromText (@ls));+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | ST_NumPoints (ST_GeomFromText (@ls)) | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | 3 | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
返回
N
th点
在Linestring
价值ls
。点从1开始编号。ST_PointN ()
处理其所描述的参数作为本节的介绍。mysql >设置@ls = ' LineString (1 1 2 2 3 3)”;mysql >选择ST_AsText (ST_PointN (ST_GeomFromText (@ls), 2));+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | ST_AsText (ST_PointN (ST_GeomFromText (@ls), 2)) | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +(2 2) | |点+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
返回
点
的起点LineString
价值ls
。ST_StartPoint ()
处理其所描述的参数作为本节的介绍。mysql >设置@ls = ' LineString (1 1 2 2 3 3)”;mysql >选择ST_AsText (ST_StartPoint (ST_GeomFromText (@ls)));+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + | ST_AsText (ST_StartPoint (ST_GeomFromText (@ls))) | + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +(1) | + |点- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +