ST_ConvexHull
ST_ConvexHull devuelve una geometría que representa la envolvente convexa de los puntos no vacíos que se incluyen en la geometría de entrada.
En el caso de una entrada vacía, la geometría resultante es la misma que la geometría de entrada. Para todas las entradas no vacías, la función opera en la proyección 2D de la geometría de entrada. No obstante, la dimensión de la geometría de salida depende de la dimensión de la geometría de entrada. Más específicamente, cuando la geometría de entrada es una geometría 3DM o 3D no vacía, se eliminan las coordenadas m
. Es decir, la dimensión de la geometría devuelta es 2D o 3DZ, respectivamente. Si la entrada es una geometría 2D o 3DZ no vacía, la geometría resultante tiene la misma dimensión.
Sintaxis
ST_ConvexHull(geom)
Argumentos
- geom
-
Un valor de tipo de datos
GEOMETRY
o una expresión que toma el valor de un tipoGEOMETRY
.
Tipo de retorno
GEOMETRY
El valor del identificador de sistema de referencia espacial (SRID) de la geometría devuelta es el valor SRID de la geometría de entrada.
Si geom es nulo, entonces se devuelve el valor nulo.
Los valores retornados son los siguientes.
Número de puntos en la envolvente convexa | Subtipo de geometría. |
---|---|
0 |
Se devuelve una copia de geom. |
1 |
Se devuelve un subtipo |
2 |
Se devuelve un subtipo |
3 o mayor |
Se devuelve un subtipo |
Ejemplos
El siguiente SQL devuelve la representación de texto conocida extendida (EWKT) de una cadena de línea. En este caso, la envolvente convexa devuelta es un polígono.
SELECT ST_AsEWKT(ST_ConvexHull(ST_GeomFromText('LINESTRING(0 0,1 0,0 1,1 1,0.5 0.5)'))) as output;
output
-------------
POLYGON((0 0,0 1,1 1,1 0,0 0))
El siguiente SQL devuelve la representación EWKT de una linestring. En este caso, la envolvente convexa devuelta es una cadena de línea.
SELECT ST_AsEWKT(ST_ConvexHull(ST_GeomFromText('LINESTRING(0 0,1 1,0.2 0.2,0.6 0.6,0.5 0.5)'))) as output;
output
-------------
LINESTRING(0 0,1 1)
El siguiente SQL devuelve la representación EWKT de un multipunto. En este caso, la envolvente convexa devuelta es un punto.
SELECT ST_AsEWKT(ST_ConvexHull(ST_GeomFromText('MULTIPOINT(0 0,0 0,0 0)'))) as output;
output
-------------
POINT(0 0)