ST_MakePolygon - Amazon Redshift

ST_MakePolygon

ST_MakePolygon tiene dos variantes que devuelven un polígono. Una toma una sola geometría y la otra toma dos geometrías.

  • La entrada de la primera variante es una cadena de línea que define el anillo exterior del polígono de salida.

  • La entrada de la segunda variante es una cadena de línea y una cadena de varias líneas. Ambas están vacías o cerradas.

    El límite del anillo exterior del polígono de salida es la cadena de línea de entrada y los límites de los anillos interiores del polígono son las cadenas de líneas en la cadena de varias líneas de entrada. Si la cadena de línea de entrada está vacía, se devuelve un polígono vacío. Las cadenas de líneas vacías en la cadena de varias líneas no se tienen en cuenta. El identificador de sistema de referencia espacial (SRID) de la geometría resultante es el SRID en común de las geometrías de entrada.

La dimensión de la geometría devuelta es la misma que la de las geometrías de entrada. El anillo exterior y los anillos interiores deben tener la misma dimensión.

Sintaxis

ST_MakePolygon(geom1)
ST_MakePolygon(geom1, geom2)

Argumentos

geom1

Un valor de tipo de datos GEOMETRY o una expresión que toma el valor de un tipo GEOMETRY. El subtipo debe ser LINESTRING . El valor linestring debe ser cerrado o estar vacío.

geom2

Un valor de tipo de datos GEOMETRY o una expresión que toma el valor de un tipo GEOMETRY. El subtipo debe ser MULTILINESTRING .

Tipo de retorno

GEOMETRY del subtipo POLYGON.

El identificador de sistema de referencia espacial (SRID) de la geometría devuelta es igual al SRID de las entradas.

Si geom1 o geom2 son null, se devuelve el valor null.

Si geom1 no es una cadena de línea, se devuelve un error.

Si geom2 no es una cadena de varias líneas, se devuelve un error.

Si geom1 no está cerrado, se devuelve un error.

Si geom1 es un punto único o no está cerrado, se devuelve un error.

Si geom2 contiene al menos una cadena de línea que tiene un punto único o no está cerrada, se devuelve un error.

Si geom1 y geom2 tienen diferentes valores SRID, se devuelve un error.

Si geom1 y geom2 tienen diferentes dimensiones, se devuelve un error.

Ejemplos

El siguiente SQL devuelve un polígono a partir de un linestring de entrada de datos.

SELECT ST_AsText(ST_MakePolygon(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)')));
st_astext --------------- POLYGON((77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07))

El siguiente SQL crea un polígono a partir de una cadena de línea cerrada y una cadena de varias líneas cerrada. La cadena de línea se utiliza para el anillo exterior del polígono. Las cadenas de líneas en las cadenas de varias líneas se utilizan para los anillos interiores del polígono.

SELECT ST_AsEWKT(ST_MakePolygon(ST_GeomFromText('LINESTRING(0 0,10 0,10 10,0 10,0 0)'), ST_GeomFromText('MULTILINESTRING((1 1,1 2,2 1,1 1),(3 3,3 4,4 3,3 3))')));
st_astext ---------------------------------- POLYGON((0 0,10 0,10 10,0 10,0 0),(1 1,1 2,2 1,1 1),(3 3,3 4,4 3,3 3))