- 类别:
ST_CENTROID¶
返回表示 GEOGRAPHY 或 GEOMETRY 对象的几何中心的点。
语法¶
ST_CENTROID( <geography_or_geometry_expression> )
实参¶
geography_or_geometry_expression
实参必须是 GEOGRAPHY 或 GEOMETRY 类型的表达式。
返回¶
返回代表输入对象几何中心的点的 GEOGRAPHY 或 GEOMETRY 对象。
使用说明¶
如果输入为 NULL,则返回 NULL。
如果输入对象是包含不同类型对象(多边形、LineStrings 和点)的 GeometryCollection,则 ST_CENTROID 使用具有 最高维度 的类型来确定几何中心。例如:
如果 GeometryCollection 包含多边形、LineStrings 和点,则 ST_CENTROID 使用多边形,并忽略集合中的 LineStrings 和点。
如果 GeometryCollection 包含 LineStrings 和点,则 ST_CENTROID 使用 LineStrings,并忽略集合中的点。
对于 GEOMETRY 对象,返回的 GEOMETRY 对象的 SRID 与输入相同。
示例¶
GEOGRAPHY 示例¶
以下示例返回表示 LineString 几何中心的点。
SELECT ST_CENTROID( TO_GEOGRAPHY( 'LINESTRING(0 0, 0 -2)' ) ) as center_of_linestring; +----------------------+ | CENTER_OF_LINESTRING | |----------------------| | POINT(0 -1) | +----------------------+
以下示例返回表示多边形几何中心的点。
SELECT ST_CENTROID( TO_GEOGRAPHY( 'POLYGON((10 10, 10 20, 20 20, 20 10, 10 10))' ) ) as center_of_polygon; +------------------------+ | CENTER_OF_POLYGON | |------------------------| | POINT(15 15.014819855) | +------------------------+
以下示例返回表示 GeometryCollection 几何中心的点。此集合包含多边形、LineString 和点。ST_CENTROID 在确定几何中心时仅使用多边形(并忽略 LineString 和点)。
SELECT ST_CENTROID( TO_GEOGRAPHY( 'GEOMETRYCOLLECTION(POLYGON((10 10, 10 20, 20 20, 20 10, 10 10)), LINESTRING(0 0, 0 -2), POINT(50 -50))' ) ) as center_of_collection_with_polygons; +------------------------------------+ | CENTER_OF_COLLECTION_WITH_POLYGONS | |------------------------------------| | POINT(15 15.014819855) | +------------------------------------+
GEOMETRY 示例¶
以下示例计算简单矩形多边形的质心。注意结果与将 ST_CENTROID 与 GEOGRAPHY 对象一起使用时的结果有何不同
SELECT ST_CENTROID(TO_GEOMETRY('POLYGON((10 10, 10 20, 20 20, 20 10, 10 10))'));+--------------------------------------------------------------------------+ | ST_CENTROID(TO_GEOMETRY('POLYGON((10 10, 10 20, 20 20, 20 10, 10 10))')) | |--------------------------------------------------------------------------| | POINT(15 15) | +--------------------------------------------------------------------------+