12.16.7.4 多边形和多多边形属性函数
本节中的函数返回Polygon
或MultiPolygon
值的属性。
ST_Area()和Area()是同义词。有关更多信息,请参见ST_Area()的描述。
Area()已过时,将在以后的 MySQL 版本中删除。请改用ST_Area()。
ST_Centroid()和Centroid()是同义词。有关更多信息,请参见ST_Centroid()的描述。
Centroid()已过时,将在以后的 MySQL 版本中删除。请改用ST_Centroid()。
ST_ExteriorRing()和ExteriorRing()是同义词。有关更多信息,请参见ST_ExteriorRing()的描述。
ExteriorRing()已过时,将在以后的 MySQL 版本中删除。请改用ST_ExteriorRing()。
ST_InteriorRingN()和InteriorRingN()是同义词。有关更多信息,请参见ST_InteriorRingN()的描述。
InteriorRingN()已过时,将在以后的 MySQL 版本中删除。请改用ST_InteriorRingN()。
ST_NumInteriorRings()和NumInteriorRings()是同义词。有关更多信息,请参见ST_NumInteriorRings()的描述。
NumInteriorRings()已过时,将在以后的 MySQL 版本中删除。请改用ST_NumInteriorRings()。
返回一个双精度数字,该数字指示Polygon
或MultiPolygon
参数的面积,以其空间参考系统为单位。对于维数为 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 |
+----------------------------------+
以Point
的形式返回Polygon
或MultiPolygon
参数的 math 质心。结果不能保证在MultiPolygon
上。如果参数为NULL
或空的几何图形,则返回值为NULL
。
此函数通过计算集合中最大维度的组件的质心点来处理几何集合。提取这些分量并将其制成单个MultiPolygon
,MultiLineString
或MultiPoint
,以进行质心计算。如果参数为空的几何集合,则返回值为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()是同义词。
以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()是同义词。
返回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()是同义词。