ST_Perimeter
Con respecto a una geometría de área de entrada, ST_Perimeter devuelve el perímetro cartesiano (longitud del límite) de la proyección 2D. Las unidades perimetrales son las mismas que las unidades en las que se expresan las coordenadas de la geometría de entrada. La función devuelve cero (0) para geometrías de puntos, multipuntos y lineales. Cuando la entrada es una colección de geometría, la función devuelve la suma de los perímetros de las geometrías de la colección.
Con respecto a una geografía de entrada, ST_Perimeter devuelve el perímetro geodésico (longitud del límite) de la proyección 2D de una geografía de área de entrada calculada sobre el esferoide que determina el SRID. La unidad de perímetro se expresa en metros. La función devuelve un valor cero (0) para las geografías de puntos, multipuntos y lineales. Cuando la entrada es una colección de geometría, la función devuelve la suma de los perímetros de las geografías de la colección.
Sintaxis
ST_Perimeter(geo)
Argumentos
- geo
-
Un valor de tipo de datos
GEOMETRY
oGEOGRAPHY
, o una expresión que toma el valor de un tipoGEOMETRY
oGEOGRAPHY
.
Tipo de retorno
DOUBLE PRECISION
Si geo es nulo, entonces se devuelve el valor nulo.
Si no se encuentra el valor del SRID, se devuelve un error.
Ejemplos
El siguiente SQL devuelve el perímetro cartesiano de un 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
El siguiente SQL devuelve el perímetro cartesiano de un 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
El siguiente SQL devuelve el perímetro de un polígono en una geografía.
SELECT ST_Perimeter(ST_GeogFromText('SRID=4326;POLYGON((0 0,1 0,0 1,0 0))'));
st_perimeter
------------------
378790.428393693
El siguiente SQL devuelve el perímetro de una cadena de líneas en una geografía.
SELECT ST_Perimeter(ST_GeogFromText('SRID=4326;LINESTRING(5 0,10 0)'));
st_perimeter
--------------
0