ST_Perimeter
Para uma geometria plana de entrada, ST_Perimeter retorna o perímetro cartesiano (comprimento do limite) da projeção 2D. As unidades de perímetro são as mesmas unidades em que as coordenadas da geometria de entrada são expressas. A função retorna zero (0) para pontos, multipontos e geometrias lineares. Quando a entrada for uma coleção de geometrias, a função retornará a soma dos perímetros das geometrias na coleção.
Para uma geografia de entrada, o ST_Perimeter retorna a área geodésica (comprimento do limite) da projeção 2D de uma geografia plana de entrada computada no esferoide determinado pelo SRID. A unidade de perímetro é o metro. A função retorna zero (0) para pontos, multipontos e geografias lineares. Quando a entrada for uma coleção de geometrias, a função retornará a soma dos perímetros das geografias da coleção.
Sintaxe
ST_Perimeter(geo)
Argumentos
- geo
-
Um valor de tipo de dados
GEOMETRY
ouGEOGRAPHY
ou uma expressão que é avaliada como tipoGEOMETRY
ouGEOGRAPHY
.
Tipo de retorno
DOUBLE PRECISION
Será retornado null, se geo for nulo.
Se o valor de SRID não for encontrado, será retornado um erro.
Exemplos
O SQL a seguir retorna o perímetro cartesiano de um multipolígono.
SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,0 10,0 0)),((10 0,20 0,20 10,10 0)))'));
st_perimeter
--------------------------------
68.2842712474619
O SQL a seguir retorna o perímetro cartesiano de um multipolígono.
SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,0 10,0 0)),((10 0,20 0,20 10,10 0)))'));
st_perimeter
--------------------------------
68.2842712474619
O SQL a seguir retorna o perímetro de um polígono em uma geografia.
SELECT ST_Perimeter(ST_GeogFromText('SRID=4326;POLYGON((0 0,1 0,0 1,0 0))'));
st_perimeter
------------------
378790.428393693
O SQL a seguir retorna o perímetro de uma linestring em uma geografia.
SELECT ST_Perimeter(ST_GeogFromText('SRID=4326;LINESTRING(5 0,10 0)'));
st_perimeter
--------------
0