- Categorias:
ST_CENTROID¶
Retorna o ponto que representa o centro geométrico de um objeto GEOGRAPHY ou GEOMETRY.
Sintaxe¶
ST_CENTROID( <geography_or_geometry_expression> )
Argumentos¶
geography_or_geometry_expression
O argumento deve ser uma expressão do tipo GEOGRAPHY ou GEOMETRY.
Retornos¶
Retorna um objeto GEOGRAPHY ou GEOMETRY para o ponto que representa o centro geométrico do objeto de entrada.
Notas de uso¶
Retorna NULL se a entrada for NULL.
Se o objeto de entrada for um GeometryCollection que contém diferentes tipos de objetos (polígonos, LineStrings e pontos), ST_CENTROID usa o tipo com a dimensão mais alta para determinar o centro geométrico. Por exemplo:
Se GeometryCollection contiver polígonos, LineStrings e pontos, ST_CENTROID usa os polígonos e ignora os LineStrings e pontos da coleção.
Se GeometryCollection contiver LineStrings e pontos, ST_CENTROID usa o LineStrings e ignora os pontos da coleção.
Para objetos GEOMETRY, o objeto GEOMETRY retornado tem o mesmo SRID que a entrada.
Exemplos¶
Exemplos GEOGRAPHY¶
O seguinte exemplo retorna o ponto que representa o centro geométrico de um LineString.
SELECT ST_CENTROID( TO_GEOGRAPHY( 'LINESTRING(0 0, 0 -2)' ) ) as center_of_linestring; +----------------------+ | CENTER_OF_LINESTRING | |----------------------| | POINT(0 -1) | +----------------------+
O seguinte exemplo retorna o ponto que representa o centro geométrico de um polígono.
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) | +------------------------+
O seguinte exemplo retorna o ponto que representa o centro geométrico de um GeometryCollection. Esta coleção contém um polígono, LineString e ponto. ST_CENTROID só utiliza o polígono (e ignora o LineString e o ponto) ao determinar o centro geométrico.
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) | +------------------------------------+
Exemplos GEOMETRY¶
O exemplo a seguir calcula o centróide de um polígono retangular simples. Observe como o resultado difere do resultado ao usar ST_CENTROID com um objeto 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) | +--------------------------------------------------------------------------+