的属性多边形
或多个多边形
值。
除非另有说明,本节中的函数以如下方式处理它们的几何参数:
如果任何参数是
零
或者任意几何参数为空几何,返回值为零
.如果任何几何参数不是语法形式良好的几何,则
ER_GIS_INVALID_DATA
发生错误。如果任何几何参数在未定义的空间参考系统(SRS)中是语法格式良好的几何,则一个
ER_SRS_NOT_FOUND
发生错误。对于具有多个几何参数的函数,如果这些参数不在同一个SRS中,则使用
ER_GIS_DIFFERENT_SRIDS
发生错误。否则返回值为non-
零
.
这些函数可用于获取多边形属性:
对象的面积的双精度数字
多边形
或多个多边形
参数,用它的空间参照系统来测量。从MySQL 8.0.13开始,
ST_Area ()
像本节介绍中描述的那样处理它的参数,但有以下例外:如果几何图形在几何上无效,则结果是一个未定义的区域(也就是说,它可以是任何数字),或者发生错误。
如果几何是有效的,但不是
多边形
或多个多边形
对象,一个ER_UNEXPECTED_GEOMETRY_TYPE
发生错误。如果几何是有效的
多边形
在笛卡尔SRS中,结果是多边形的笛卡尔面积。如果几何是有效的
多个多边形
在笛卡尔SRS中,结果是多边形的笛卡尔面积之和。如果几何是有效的
多边形
在地理SRS中,结果是该SRS中多边形的大地面积,单位为平方米。如果几何是有效的
多个多边形
在地理SRS中,结果是该SRS中多边形的大地面积之和,单位为平方米。如果面积计算结果为
+正
,一个ER_DATA_OUT_OF_RANGE
发生错误。如果几何图形具有超出范围的经度或纬度的地理SRS,则会发生错误:
如果经度值不在(−180,180])范围内,则an
ER_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGE
发生错误(ER_LONGITUDE_OUT_OF_RANGE
在MySQL 8.0.12之前)。如果纬度值不在[- 90,90]范围内,则使用
ER_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGE
发生错误(ER_LATITUDE_OUT_OF_RANGE
在MySQL 8.0.12之前)。
范围以度为单位。由于浮点运算,精确的范围限制略有偏差。
在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 | +----------------------------------+
属性的数学质心
多边形
或多个多边形
参数作为点
.结果不保证就上了多个多边形
.这个函数通过计算集合中最高维数的组件的质心点来处理几何集合。这些成分被提取并制成单个
多个多边形
,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点 ) | +------------------------+--------------------------------------------+
对象的外环
多边形
价值聚
作为一个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 ) | +----------------------------------------------------+
返回
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 | +---------------------------------------------+