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()

  • Centroid({poly|mpoly})

    ST_Centroid()并且 Centroid()是同义词。有关详细信息,请参阅 的说明 ST_Centroid()

  • ExteriorRing(poly)

    ST_ExteriorRing()并且 ExteriorRing()是同义词。有关详细信息,请参阅 的说明 ST_ExteriorRing()

  • InteriorRingN(poly, N)

    ST_InteriorRingN()并且 InteriorRingN()是同义词。有关详细信息,请参阅 的说明 ST_InteriorRingN()

  • NumInteriorRings(poly)

    ST_NumInteriorRings()并且 NumInteriorRings()是同义词。有关详细信息,请参阅 的说明 ST_NumInteriorRings()

  • ST_Area({poly|mpoly})

    返回一个双精度数字,指示 PolygonMultiPolygon参数的面积,如在其空间参考系统中测量的那样。对于维度 0 或 1 的参数,结果为 0。如果参数为空几何,则返回值为 0。如果参数为 NULL,则返回值为 NULL

    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

    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 GeometryType(@poly),ST_AsText(ST_Centroid(@poly));
    +---------------------+--------------------------------------------+
    | 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_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_NumInteriorRings()并且 NumInteriorRings()是同义词。