Spec-Zone.ru › MySQL 5.7

12.16.7.3 Функции свойств LineString и MultiLineString

Значение типа LineString состоит из Point значений. Можно извлечь определенные точки 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() — это синонимы.

END_OF_DOCUMENT_MARKER
  • ST_IsClosed(ls)

    Для значения LineString ls, ST_IsClosed() возвращает 1, если ls замкнуто (то есть, его значения ST_StartPoint() и ST_EndPoint() совпадают). Если аргумент является NULL или пустой геометрией, возвращаемое значение равно NULL.

    Для значения MultiLineString ls, ST_IsClosed() возвращает 1, если ls замкнуто (то есть, значения ST_StartPoint() и ST_EndPoint() совпадают для каждого LineString в ls).

    ST_IsClosed() возвращает 0, если ls не замкнуто.

    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)

    Возвращает число двойной точности, обозначающее длину 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(), которое имеет нестандартное имя.

  • ST_NumPoints(ls)

    Возвращает количество объектов Point в значении LineString ls. Если аргумент является 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)

    Возвращает N-й объект Point в значении Linestring ls. Точки нумеруются, начиная с 1. Если любой аргумент является NULL или геометрический аргумент является пустой геометрией, возвращаемое значение равно 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() вместо него.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/gis-linestring-property-functions.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API