Documentation Home
MySQL 8.0 参考手册  / 第 12 章函数和运算符  / 12.17空间分析函数  / 12.17.7 几何属性函数  /  12.17.7.4 多边形和多边形属性函数

12.17.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})

    Polygon将或 MultiPolygon参数 的数学质心作为 返回 Point。结果不保证在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)

    Polygon 返回值 的外环poly作为 a LineString。如果参数是 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)

    返回值为 a 的N第 - 个内环。环从 1 开始编号。如果参数是或 空几何,则返回值为。 PolygonpolyLineStringNULLNULL

    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)

    Returns the number of interior rings in the Polygon value poly. If the argument is NULL or an empty geometry, the return value is 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(), and NumInteriorRings() are synonyms.