Documentation Home
MySQL 8.0 参考手册  / 第 12 章函数和运算符  / 12.17空间分析函数  / 12.17.7 几何属性函数  /  12.17.7.3 LineString 和 MultiLineString 属性函数

12.17.7.3 LineString 和 MultiLineString 属性函数

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

本节中的一些函数也适用于 MultiLineString值。

  • EndPoint(ls)

    ST_EndPoint()并且 EndPoint()是同义词。有关详细信息,请参阅 的说明 ST_EndPoint()

  • GLength(ls)

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

    mysql> SET @ls = 'LineString(1 1,2 2,3 3)';
    mysql> SELECT GLength(GeomFromText(@ls));
    +----------------------------+
    | GLength(GeomFromText(@ls)) |
    +----------------------------+
    |         2.8284271247461903 |
    +----------------------------+
    
    mysql> SET @mls = 'MultiLineString((1 1,2 2,3 3),(4 4,5 5))';
    mysql> SELECT GLength(GeomFromText(@mls));
    +-----------------------------+
    | GLength(GeomFromText(@mls)) |
    +-----------------------------+
    |           4.242640687119286 |
    +-----------------------------+

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

  • IsClosed(ls)

    ST_IsClosed()并且 IsClosed()是同义词。有关详细信息,请参阅 的说明 ST_IsClosed()

  • NumPoints(ls)

    ST_NumPoints()并且 NumPoints()是同义词。有关详细信息,请参阅 的说明 ST_NumPoints()

  • PointN(ls, N)

    ST_PointN()并且 PointN()是同义词。有关详细信息,请参阅 的说明 ST_PointN()

  • ST_EndPoint(ls)

    返回值 Point的端点。如果参数是 或 空几何,则返回值为。 LineStringlsNULLNULL

    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)

    对于LineStringvalue lsST_IsClosed()如果闭合则返回 1 ls(即它 ST_StartPoint()ST_EndPoint()值相同)。如果参数是NULL或 空几何,则返回值为NULL

    对于MultiLineStringvalue lsST_IsClosed()如果关闭则返回 1 ls(也就是说, 对于每个in , theST_StartPoint()和 的ST_EndPoint()值都相同)。 LineStringls

    ST_IsClosed()ls如果未关闭 则返回 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_NumPoints(ls)

    返回 value 中的对象 Point数。如果参数是 或 空几何,则返回值为。 LineStringlsNULLNULL

    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)

    返回value 中 的N第 -th 个 。点从 1 开始编号。如果任何参数是或几何参数是空几何,则返回值为 。 PointLinestringlsNULLNULL

    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的起点。如果参数是 或 空几何,则返回值为。 LineStringlsNULLNULL

    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()