12.16.7.3 LineString 和 MultiLineString 属性函数
LineString
由Point
个值组成。您可以提取LineString
的特定点,计算其包含的点数,或获取其长度。
本节中的某些功能也适用于MultiLineString
值。
ST_EndPoint()和EndPoint()是同义词。有关更多信息,请参见ST_EndPoint()的描述。
EndPoint()已过时,将在以后的 MySQL 版本中删除。请改用ST_EndPoint()。
GLength()是非标准名称。它对应于 OpenGIS ST_Length()函数。 (有一个现有的 SQL 函数Length()计算字符串值的长度。)
GLength()已过时,将在以后的 MySQL 版本中删除。请改用ST_Length()。
ST_IsClosed()和IsClosed()是同义词。有关更多信息,请参见ST_IsClosed()的描述。
IsClosed()已过时,将在以后的 MySQL 版本中删除。请改用ST_IsClosed()。
ST_NumPoints()和NumPoints()是同义词。有关更多信息,请参见ST_NumPoints()的描述。
NumPoints()已过时,将在以后的 MySQL 版本中删除。请改用ST_NumPoints()。
ST_PointN()和PointN()是同义词。有关更多信息,请参见ST_PointN()的描述。
PointN()已过时,将在以后的 MySQL 版本中删除。请改用ST_PointN()。
返回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()是同义词。
对于LineString
值* ls
,如果 ls
*是闭合的(即,其ST_StartPoint()和ST_EndPoint()值相同),则ST_IsClosed()返回 1.如果参数为NULL
或空的几何,则返回值为NULL
。
对于MultiLineString
值* ls
,如果 ls
*是闭合的,则ST_IsClosed()返回 1(也就是说,对于ls
*中的每个LineString
,ST_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()是同义词。
返回一个双精度数字,该数字指示其关联的空间参考系统中LineString
或MultiLineString
值* 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(),后者具有非标准名称。
返回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()是同义词。
返回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()是同义词。
返回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()是同义词。
ST_StartPoint()和StartPoint()是同义词。有关更多信息,请参见ST_StartPoint()的描述。
StartPoint()已过时,将在以后的 MySQL 版本中删除。请改用ST_StartPoint()。