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

本节中的函数返回PolygonMultiPolygon值的属性。

Area({poly|mpoly})

ST_Area()Area()是同义词。有关更多信息,请参见ST_Area()的描述。

Area()已过时,将在以后的 MySQL 版本中删除。请改用ST_Area()

Centroid({poly|mpoly})

ST_Centroid()Centroid()是同义词。有关更多信息,请参见ST_Centroid()的描述。

Centroid()已过时,将在以后的 MySQL 版本中删除。请改用ST_Centroid()

ExteriorRing(poly)

ST_ExteriorRing()ExteriorRing()是同义词。有关更多信息,请参见ST_ExteriorRing()的描述。

ExteriorRing()已过时,将在以后的 MySQL 版本中删除。请改用ST_ExteriorRing()

InteriorRingN(poly, N)

ST_InteriorRingN()InteriorRingN()是同义词。有关更多信息,请参见ST_InteriorRingN()的描述。

InteriorRingN()已过时,将在以后的 MySQL 版本中删除。请改用ST_InteriorRingN()

NumInteriorRings(poly)

ST_NumInteriorRings()NumInteriorRings()是同义词。有关更多信息,请参见ST_NumInteriorRings()的描述。

NumInteriorRings()已过时,将在以后的 MySQL 版本中删除。请改用ST_NumInteriorRings()

ST_Area({poly|mpoly})

返回一个双精度数字,该数字指示PolygonMultiPolygon参数的面积,以其空间参考系统为单位。对于维数为 0 或 1 的参数,结果为 0.如果参数为空几何,则返回值为 0.如果参数为NULL,则返回值为NULL

结果是几何集合中所有组件的面积值之和。如果几何图形集合为空,则其面积返回为 0.

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

mysql> SET @mpoly =
       'MultiPolygon(((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_Area()Area()是同义词。

ST_Centroid({poly|mpoly})

Point的形式返回PolygonMultiPolygon参数的 math 质心。结果不能保证在MultiPolygon上。如果参数为NULL或空的几何图形,则返回值为NULL

此函数通过计算集合中最大维度的组件的质心点来处理几何集合。提取这些分量并将其制成单个MultiPolygonMultiLineStringMultiPoint,以进行质心计算。如果参数为空的几何集合,则返回值为NULL

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))              |
+------------------------+--------------------------------------------+
| POLYGON                | POINT(4.958333333333333 4.958333333333333) |
+------------------------+--------------------------------------------+

ST_Centroid()Centroid()是同义词。

ST_ExteriorRing(poly)

LineString的形式返回Polygon值* poly *的外环。如果参数为NULL或空几何,则返回值为NULL

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_ExteriorRing()ExteriorRing()是同义词。

ST_InteriorRingN(poly, N)

返回Polygon值* poly N *-个内环作为LineString。环的编号从 1 开始。如果参数为NULL或空的几何图形,则返回值为NULL

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_InteriorRingN()InteriorRingN()是同义词。

ST_NumInteriorRing(poly), ST_NumInteriorRings(poly)

返回Polygon值* poly *中的内部环数。如果参数为NULL或空的几何图形,则返回值为NULL

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 |
+---------------------------------------------+

ST_NumInteriorRing()ST_NumInteriorRings()NumInteriorRings()是同义词。