Categorias:

Funções geoespaciais

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

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 |
+------------------------------------------------------------------+
Copy

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))'));
Copy
+-----------------+--------------------------------+
| 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)) |
+-----------------+--------------------------------+
Copy