10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册摘录

12.17.7.3 LineString和MultiLineString属性函数

一个LineString值。你可以提取a的特定点LineString,计算它包含的点数,或获得它的长度。

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

除非另有说明,本节中的函数处理其几何参数的方式如下:

  • 如果有任何争论或任何几何参数为空几何,返回值为

  • 如果任何几何参数不是一个语法结构良好的几何,则ER_GIS_INVALID_DATA发生错误。

  • 如果任何几何参数是未定义空间参考系统(SRS)中的语法良好的几何,则ER_SRS_NOT_FOUND发生错误。

  • 否则,返回值为non-

这些函数可用于获取linestring属性:

  • ST_EndPoint (ls

    返回这是LineString价值ls

    ST_EndPoint ()如本节介绍中所述处理其参数。

    mysql> SET @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 ) | +----------------------------------------------+
  • ST_IsClosed (ls

    对于一个LineString价值lsST_IsClosed ()返回1,如果ls是关门的吗ST_StartPoint ()ST_EndPoint ()价值观是一样的)。

    对于一个MultiLineString价值lsST_IsClosed ()返回1,如果ls是闭合的(即ST_StartPoint ()ST_EndPoint ()每个值都是相同的LineStringls).

    ST_IsClosed ()返回0,如果ls是不关门的,还有呢如果ls

    ST_IsClosed ()像本节介绍中描述的那样处理它的参数,但有以下例外:

    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 >选择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  | +------------------------------------+
  • ST_Length (ls(,单位])

    对象的长度返回一个双精度数字LineStringMultiLineString价值ls在相关的空间参考系统中。a的长度MultiLineStringValue等于其元素长度之和。

    ST_Length ()计算结果如下:

    • 如果几何是有效的LineString在笛卡儿SRS中,返回值是几何图形的笛卡儿长度。

    • 如果几何是有效的MultiLineString在笛卡儿SRS中,返回值是其元素的笛卡儿长度之和。

    • 如果几何是有效的LineString在地理SRS中,返回值是该SRS中几何图形的大地测量长度,单位为米。

    • 如果几何是有效的MultiLineString在地理SRS中,返回值是该SRS中各元素的大地长度之和,单位为米。

    ST_Length ()如本节介绍所述处理其参数,但有以下例外情况:

    • 如果几何不是aLineStringMultiLineString,返回值为

    • 如果几何图形在几何上无效,要么结果是一个未定义的长度(也就是说,它可以是任何数字),要么就会发生错误。

    • 若长度计算结果为+正,一个ER_DATA_OUT_OF_RANGE发生错误。

    • 如果几何图形的地理SRS的经度或纬度超出范围,则会发生错误:

      范围以度数表示。由于浮点运算,确切的范围限制略有偏差。

    从MySQL 8.0.16开始,ST_Length ()允许一个可选的单位参数,该参数指定返回长度值的线性单位。这些规则适用:

    • 如果指定了一个单元,但MySQL不支持,则使用ER_UNIT_NOT_FOUND发生错误。

    • 如果指定了一个支持的线性单元,并且SRID为0,则ER_GEOMETRY_IN_UNKNOWN_LENGTH_UNIT发生错误。

    • 如果指定了一个支持的线性单元,并且SRID不为0,则结果将在该单元中。

    • 如果没有指定单位,则结果以几何的SRS为单位,无论是笛卡尔坐标还是地理坐标。目前,所有MySQL sss都用米表示。

    中找到的单元表示支持INFORMATION_SCHEMAST_UNITS_OF_MEASURE表格看到第26.3.37节,“INFORMATION_SCHEMA ST_UNITS_OF_MEASURE表”

    mysql> SET @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  | +------------------------+
  • ST_NumPoints (ls

    返回中的对象LineString价值ls

    ST_NumPoints ()如本节介绍中所述处理其参数。

    mysql> SET @ls = 'LineString(1 1,2 2,3 3)';mysql >选择ST_NumPoints (ST_GeomFromText (@ls));+------------------------------------+ | ST_NumPoints (ST_GeomFromText (@ls )) | +------------------------------------+ | 3  | +------------------------------------+
  • ST_PointN (lsN

    返回NthLinestring价值ls.点从1开始编号。

    ST_PointN ()如本节介绍中所述处理其参数。

    mysql> SET @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 ) | +----------------------------------------------+
  • ST_StartPoint (ls

    返回这是LineString价值ls

    ST_StartPoint ()如本节介绍中所述处理其参数。

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