ST_MakePolygon - Amazon Redshift

ST_MakePolygon

ST_MakePolygon tem duas variantes que retornam um polígono. Um leva uma única geometria, e outro leva duas geometrias.

  • A entrada da primeira variante é uma linestring que define o anel externo do polígono de saída.

  • A entrada da segunda variante é uma linestring e uma multilinestring. Ambas estão vazias ou fechadas.

    O limite do anel exterior do polígono de saída é a linestring de entrada, e os limites dos anéis interiores do polígono são as linestrings na entrada multilinestring. Se a linestring estiver vazia, um polígono vazio será retornado. Linestrings vazias na multilinestring são ignoradas. O valor do identificador do sistema de referência espacial (SRID - spatial reference system identifier) da geometria resultante é o SRID comum das duas geometrias de entrada.

A dimensão da geometria retornada é a mesma das geometrias de entrada. O anel exterior e os anéis interiores devem ter a mesma dimensão.

Sintaxe

ST_MakePolygon(geom1)
ST_MakePolygon(geom1, geom2)

Argumentos

geom1

Um valor de tipo de dados GEOMETRY ou uma expressão que é avaliada como um tipo GEOMETRY. O subtipo deve ser LINESTRING. O valor de linestring deve ser fechado ou vazio.

geom2

Um valor de tipo de dados GEOMETRY ou uma expressão que é avaliada como um tipo GEOMETRY. O subtipo deve ser MULTILINESTRING.

Tipo de retorno

GEOMETRY de subtipo POLYGON.

O identificador do sistema de referência espacial (SRID - spatial reference system identifier) da geometria retornada é igual ao SRID das entradas.

Se geom1 ou geom2 for nulo, null será retornado.

Se geom1 não for uma linestring, será retornado um erro.

Se geom2 não for uma multilinestring, será retornado um erro.

Se geom1 não for fechado, será retornado um erro.

Se geom1 for um único ponto ou não estiver fechado, será retornado um erro.

Se geom2 contém pelo menos uma linestring com um único ponto ou não for fechada, será retornado um erro.

Um erro será retornado se geom1 e geom2 tiverem valores de SRIDs diferentes.

Se geom1 e geom2 tiverem dimensões diferentes, um erro será retornado.

Exemplos

O SQL a seguir retorna um polígono de uma linestring de entrada.

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

O SQL a seguir cria um polígono a partir de uma linestring fechada e uma multilinestring fechada. O linestring é usado para o anel externo do polígono. As linestrings nas multilinestrings são usadas para os anéis interiores do 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))