12.16.7.3 LineString 和 MultiLineString 属性函数

LineStringPoint个值组成。您可以提取LineString的特定点,计算其包含的点数,或获取其长度。

本节中的某些功能也适用于MultiLineString值。

EndPoint(ls)

ST_EndPoint()EndPoint()是同义词。有关更多信息,请参见ST_EndPoint()的描述。

EndPoint()已过时,将在以后的 MySQL 版本中删除。请改用ST_EndPoint()

GLength(ls)

GLength()是非标准名称。它对应于 OpenGIS ST_Length()函数。 (有一个现有的 SQL 函数Length()计算字符串值的长度。)

GLength()已过时,将在以后的 MySQL 版本中删除。请改用ST_Length()

IsClosed(ls)

ST_IsClosed()IsClosed()是同义词。有关更多信息,请参见ST_IsClosed()的描述。

IsClosed()已过时,将在以后的 MySQL 版本中删除。请改用ST_IsClosed()

NumPoints(ls)

ST_NumPoints()NumPoints()是同义词。有关更多信息,请参见ST_NumPoints()的描述。

NumPoints()已过时,将在以后的 MySQL 版本中删除。请改用ST_NumPoints()

PointN(ls, N)

ST_PointN()PointN()是同义词。有关更多信息,请参见ST_PointN()的描述。

PointN()已过时,将在以后的 MySQL 版本中删除。请改用ST_PointN()

ST_EndPoint(ls)

返回Point,它是LineString值* ls *的端点。如果参数为NULL或空几何,则返回值为NULL

mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
mysql> SELECT ST_AsText(ST_EndPoint(ST_GeomFromText(@ls)));
+----------------------------------------------+
| ST_AsText(ST_EndPoint(ST_GeomFromText(@ls))) |
+----------------------------------------------+
| POINT(3 3)                                   |
+----------------------------------------------+

ST_EndPoint()EndPoint()是同义词。

ST_IsClosed(ls)

对于LineString值* ls ,如果 ls *是闭合的(即,其ST_StartPoint()ST_EndPoint()值相同),则ST_IsClosed()返回 1.如果参数为NULL或空的几何,则返回值为NULL

对于MultiLineString值* ls ,如果 ls *是闭合的,则ST_IsClosed()返回 1(也就是说,对于ls *中的每个LineStringST_StartPoint()ST_EndPoint()值都相同)。

如果* ls *未关闭,则ST_IsClosed()返回 0.

mysql> SET @ls1 = 'LineString(1 1,2 2,3 3,2 2)';
mysql> SET @ls2 = 'LineString(1 1,2 2,3 3,1 1)';

mysql> SELECT ST_IsClosed(ST_GeomFromText(@ls1));
+------------------------------------+
| ST_IsClosed(ST_GeomFromText(@ls1)) |
+------------------------------------+
|                                  0 |
+------------------------------------+

mysql> SELECT ST_IsClosed(ST_GeomFromText(@ls2));
+------------------------------------+
| ST_IsClosed(ST_GeomFromText(@ls2)) |
+------------------------------------+
|                                  1 |
+------------------------------------+

mysql> SET @ls3 = 'MultiLineString((1 1,2 2,3 3),(4 4,5 5))';

mysql> SELECT ST_IsClosed(ST_GeomFromText(@ls3));
+------------------------------------+
| ST_IsClosed(ST_GeomFromText(@ls3)) |
+------------------------------------+
|                                  0 |
+------------------------------------+

ST_IsClosed()IsClosed()是同义词。

ST_Length(ls)

返回一个双精度数字,该数字指示其关联的空间参考系统中LineStringMultiLineString值* ls *的长度。 MultiLineString值的长度等于其元素的长度之和。如果参数为NULL或空的几何图形,则返回值为NULL

mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
mysql> SELECT ST_Length(ST_GeomFromText(@ls));
+---------------------------------+
| ST_Length(ST_GeomFromText(@ls)) |
+---------------------------------+
|              2.8284271247461903 |
+---------------------------------+

mysql> SET @mls = 'MultiLineString((1 1,2 2,3 3),(4 4,5 5))';
mysql> SELECT ST_Length(ST_GeomFromText(@mls));
+----------------------------------+
| ST_Length(ST_GeomFromText(@mls)) |
+----------------------------------+
|                4.242640687119286 |
+----------------------------------+

ST_Length()应该优先使用GLength(),后者具有非标准名称。

ST_NumPoints(ls)

返回LineString值* ls *中Point个对象的数量。如果参数为NULL或空几何,则返回值为NULL

mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
mysql> SELECT ST_NumPoints(ST_GeomFromText(@ls));
+------------------------------------+
| ST_NumPoints(ST_GeomFromText(@ls)) |
+------------------------------------+
|                                  3 |
+------------------------------------+

ST_NumPoints()NumPoints()是同义词。

ST_PointN(ls, N)

返回Linestring值* ls 中的 N * -th Point。点从 1 开始编号。如果任何参数为NULL或 geometry 参数为空几何,则返回值为NULL

mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
mysql> SELECT ST_AsText(ST_PointN(ST_GeomFromText(@ls),2));
+----------------------------------------------+
| ST_AsText(ST_PointN(ST_GeomFromText(@ls),2)) |
+----------------------------------------------+
| POINT(2 2)                                   |
+----------------------------------------------+

ST_PointN()PointN()是同义词。

ST_StartPoint(ls)

返回Point,即LineString值* ls *的起点。如果参数为NULL或空几何,则返回值为NULL

mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
mysql> SELECT ST_AsText(ST_StartPoint(ST_GeomFromText(@ls)));
+------------------------------------------------+
| ST_AsText(ST_StartPoint(ST_GeomFromText(@ls))) |
+------------------------------------------------+
| POINT(1 1)                                     |
+------------------------------------------------+

ST_StartPoint()StartPoint()是同义词。

StartPoint(ls)

ST_StartPoint()StartPoint()是同义词。有关更多信息,请参见ST_StartPoint()的描述。

StartPoint()已过时,将在以后的 MySQL 版本中删除。请改用ST_StartPoint()