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

12.17.7.4多边形和多多边形属性函数

的属性多边形多个多边形值。

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

  • 如果任何参数是或者任意几何参数为空几何,返回值为

  • 如果任何几何参数不是语法形式良好的几何,则ER_GIS_INVALID_DATA发生错误。

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

  • 对于具有多个几何参数的函数,如果这些参数不在同一个SRS中,则使用ER_GIS_DIFFERENT_SRIDS发生错误。

  • 否则返回值为non-

这些函数可用于获取多边形属性:

  • ST_Area ({|mpo})

    对象的面积的双精度数字多边形多个多边形参数,用它的空间参照系统来测量。

    从MySQL 8.0.13开始,ST_Area ()像本节介绍中描述的那样处理它的参数,但有以下例外:

    • 如果几何图形在几何上无效,则结果是一个未定义的区域(也就是说,它可以是任何数字),或者发生错误。

    • 如果几何是有效的,但不是多边形多个多边形对象,一个ER_UNEXPECTED_GEOMETRY_TYPE发生错误。

    • 如果几何是有效的多边形在笛卡尔SRS中,结果是多边形的笛卡尔面积。

    • 如果几何是有效的多个多边形在笛卡尔SRS中,结果是多边形的笛卡尔面积之和。

    • 如果几何是有效的多边形在地理SRS中,结果是该SRS中多边形的大地面积,单位为平方米。

    • 如果几何是有效的多个多边形在地理SRS中,结果是该SRS中多边形的大地面积之和,单位为平方米。

    • 如果面积计算结果为+正,一个ER_DATA_OUT_OF_RANGE发生错误。

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

      范围以度为单位。由于浮点运算,精确的范围限制略有偏差。

    在MySQL 8.0.13之前,ST_Area ()像本节介绍中描述的那样处理它的参数,但有以下例外:

    • 对于维度为0或1的参数,结果为0。

    • 如果几何图形为空,则返回值为0而不是

    • 对于几何集合,结果是所有组件的面积值之和。如果几何集合为空,则其面积返回为0。

    • 如果几何图形具有地理空间参考系统(SRS)的SRID值,则为ER_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS发生错误。

    mysql> SET @poly = 'Polygon((0 0,0 3,3 0,0),(1 1,1 2,2 1,1 1))';mysql> SELECT ST_Area(ST_GeomFromText(@poly));+---------------------------------+ | ST_Area (ST_GeomFromText (@poly )) | +---------------------------------+ | 4  | +---------------------------------+ mysql >设置@mpoly = '多个多边形(((0 0 0 3 3 3 3 0 0 0)、(1 1 1 2 2 2 2 1 1 1)))”;mysql> SELECT ST_Area(ST_GeomFromText(@mpoly));+----------------------------------+ | ST_Area (ST_GeomFromText (@mpoly )) | +----------------------------------+ | 8  | +----------------------------------+
  • ST_Centroid ({|mpo})

    属性的数学质心多边形多个多边形参数作为.结果不保证就上了多个多边形

    这个函数通过计算集合中最高维数的组件的质心点来处理几何集合。这些成分被提取并制成单个多个多边形MultiLineString,或多点用于质心计算。

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

    • 返回值为对于参数是空几何集合的附加条件。

    • 如果几何图形具有地理空间参考系统(SRS)的SRID值,则为ER_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRS发生错误。

    mysql> SET @poly = ST_GeomFromText('POLYGON((0 0,10 0,10 10,0 10,0 0),(5 5,7 5,7 7,5 7,5 5))');mysql> SELECT ST_GeometryType(@poly),ST_AsText(ST_Centroid(@poly));+------------------------+--------------------------------------------+ | ST_GeometryType (@poly) | ST_AsText (ST_Centroid (@poly )) | +------------------------+--------------------------------------------+ | 多边形|(4.958333333333333 - 4.958333333333333点 ) | +------------------------+--------------------------------------------+
  • ST_ExteriorRing (

    对象的外环多边形价值作为一个LineString

    ST_ExteriorRing ()按照本节介绍中的描述处理其参数。

    mysql> SET @poly = 'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))';mysql> SELECT ST_AsText(ST_ExteriorRing(ST_GeomFromText(@poly)));+----------------------------------------------------+ | ST_AsText (ST_ExteriorRing (ST_GeomFromText (@poly ))) | +----------------------------------------------------+ | LINESTRING (0 0 0 3 3 3 3 0 0 0 ) | +----------------------------------------------------+
  • ST_InteriorRingN (N

    返回N-内环为多边形价值作为一个LineString.环从1开始编号。

    ST_InteriorRingN ()按照本节介绍中的描述处理其参数。

    mysql> SET @poly = 'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))';mysql> SELECT ST_AsText(ST_InteriorRingN(ST_GeomFromText(@poly),1));+-------------------------------------------------------+ | ST_AsText (ST_InteriorRingN (ST_GeomFromText (@poly), 1 )) | +-------------------------------------------------------+ | LINESTRING (1 1 1 2 2 2 2 1 1 1 ) | +-------------------------------------------------------+
  • ST_NumInteriorRing (ST_NumInteriorRings (

    对象中的内环数多边形价值

    ST_NumInteriorRing ()而且ST_NuminteriorRings ()按照本节介绍中的描述处理它们的参数。

    mysql> SET @poly = 'Polygon((0 0,0 3,3 3,3 0,0 0),(1 1,1 2,2 2,2 1,1 1))';mysql> SELECT ST_NumInteriorRings(ST_GeomFromText(@poly));+---------------------------------------------+ | ST_NumInteriorRings (ST_GeomFromText (@poly )) | +---------------------------------------------+ | 1  | +---------------------------------------------+