Functions in this section return properties of
        Polygon or MultiPolygon
        values.
      
Unless otherwise specified, functions in this section handle their geometry arguments as follows:
- If any argument is - NULLor any geometry argument is an empty geometry, the return value is- NULL.
- If any geometry argument is not a syntactically well-formed geometry, an - ER_GIS_INVALID_DATAerror occurs.
- If any geometry argument is a syntactically well-formed geometry in an undefined spatial reference system (SRS), an - ER_SRS_NOT_FOUNDerror occurs.
- For functions that take multiple geometry arguments, if those arguments are not in the same SRS, an - ER_GIS_DIFFERENT_SRIDSerror occurs.
- Otherwise, the return value is non- - NULL.
These functions are available for obtaining polygon properties:
- Returns a double-precision number indicating the area of the - Polygonor- MultiPolygonargument, as measured in its spatial reference system.- ST_Area()handles its arguments as described in the introduction to this section, with these exceptions:- If the geometry is geometrically invalid, either the result is an undefined area (that is, it can be any number), or an error occurs. 
- If the geometry is valid but is not a - Polygonor- MultiPolygonobject, an- ER_UNEXPECTED_GEOMETRY_TYPEerror occurs.
- If the geometry is a valid - Polygonin a Cartesian SRS, the result is the Cartesian area of the polygon.
- If the geometry is a valid - MultiPolygonin a Cartesian SRS, the result is the sum of the Cartesian area of the polygons.
- If the geometry is a valid - Polygonin a geographic SRS, the result is the geodetic area of the polygon in that SRS, in square meters.
- If the geometry is a valid - MultiPolygonin a geographic SRS, the result is the sum of geodetic area of the polygons in that SRS, in square meters.
- If an area computation results in - +inf, an- ER_DATA_OUT_OF_RANGEerror occurs.
- If the geometry has a geographic SRS with a longitude or latitude that is out of range, an error occurs: - If a longitude value is not in the range (−180, 180], an - ER_GEOMETRY_PARAM_LONGITUDE_OUT_OF_RANGEerror occurs.
- If a latitude value is not in the range [−90, 90], an - ER_GEOMETRY_PARAM_LATITUDE_OUT_OF_RANGEerror occurs.
 - Ranges shown are in degrees. The exact range limits deviate slightly due to floating-point arithmetic. 
 - 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 | +----------------------------------+
- Returns the mathematical centroid for the - Polygonor- MultiPolygonargument as a- Point. The result is not guaranteed to be on the- MultiPolygon.- This function processes geometry collections by computing the centroid point for components of highest dimension in the collection. Such components are extracted and made into a single - MultiPolygon,- MultiLineString, or- MultiPointfor centroid computation.- ST_Centroid()handles its arguments as described in the introduction to this section, with these exceptions:- The return value is - NULLfor the additional condition that the argument is an empty geometry collection.
- If the geometry has an SRID value for a geographic spatial reference system (SRS), an - ER_NOT_IMPLEMENTED_FOR_GEOGRAPHIC_SRSerror occurs.
 - 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) | +------------------------+--------------------------------------------+
- Returns the exterior ring of the - Polygonvalue- polyas a- LineString.- ST_ExteriorRing()handles its arguments as described in the introduction to this section.- 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) | +----------------------------------------------------+
- Returns the - N-th interior ring for the- Polygonvalue- polyas a- LineString. Rings are numbered beginning with 1.- ST_InteriorRingN()handles its arguments as described in the introduction to this section.- 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(,- poly)- ST_NumInteriorRings(- poly)- Returns the number of interior rings in the - Polygonvalue- poly.- ST_NumInteriorRing()and- ST_NuminteriorRings()handle their arguments as described in the introduction to this section.- 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 | +---------------------------------------------+