- Categorias:
ST_PERIMETER¶
Retorna o comprimento do perímetro do(s) polígono(s) em um objeto GEOGRAPHY ou GEOMETRY.
Sintaxe¶
ST_PERIMETER( <geography_or_geometry_expression> )
Argumentos¶
geography_or_geometry_expression
O argumento deve ser do tipo GEOGRAPHY ou GEOMETRY.
Retornos¶
Retorna um valor REAL, que representa o comprimento:
Para objetos GEOGRAPHY, o comprimento é em metros.
Para objetos GEOMETRY, o comprimento é computado com a mesma unidade usada para definir as coordenadas.
Notas de uso¶
Se
geography_or_geometry_expression
não for um polígono, MultiPolygon ou um GeometryCollection contendo polígonos, ST_PERIMETER retorna 0.Se
geography_or_geometry_expression
for um GeometryCollection, ST_PERIMETER retorna a soma dos perímetros dos polígonos da coleção.Use essa função (em vez de ST_LENGTH) para obter o perímetro de um polígono.
Exemplos¶
Exemplos GEOGRAPHY¶
Isso calcula o comprimento do perímetro de um polígono que é um grau de arco em cada borda e tem uma borda no equador:
SELECT ST_PERIMETER(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); +------------------------------------------------------------------+ | ST_PERIMETER(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) | |------------------------------------------------------------------| | 444763.468727621 | +------------------------------------------------------------------+
Exemplos GEOMETRY¶
Os exemplos a seguir demonstram como utilizar a função ST_PERIMETER.
SELECT ST_PERIMETER(g), ST_ASWKT(g) FROM (SELECT TO_GEOMETRY(column1) AS g FROM VALUES ('POINT(1 1)'), ('LINESTRING(0 0, 1 1)'), ('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'));+-----------------+--------------------------------+ | ST_PERIMETER(G) | ST_ASWKT(G) | |-----------------+--------------------------------| | 0 | POINT(1 1) | | 0 | LINESTRING(0 0,1 1) | | 4 | POLYGON((0 0,0 1,1 1,1 0,0 0)) | +-----------------+--------------------------------+