Categorias:

Funções geoespaciais

ST_MAKEPOLYGON , ST_POLYGON

Cria um objeto GEOGRAPHY ou GEOMETRY que representa um polígono sem furos. A função utiliza o LineString especificado como o loop externo.

Esta função corrige a orientação do loop para evitar a criação de polígonos que se estendem por mais da metade do globo. Em contraste, ST_MAKEPOLYGONORIENTED não tenta corrigir a orientação do loop.

Consulte também:

TO_GEOGRAPHY , TO_GEOMETRY , ST_MAKEPOLYGONORIENTED

Sintaxe

ST_MAKEPOLYGON( <geography_or_geometry_expression> )
Copy

Argumentos

geography_or_geometry_expression

Um objeto GEOGRAPHY ou GEOMETRY que representa um LineString em que o último ponto é o mesmo que o primeiro (ou seja, um loop).

Retornos

A função retorna um valor do tipo GEOGRAPHY ou GEOMETRY.

Notas de uso

  • As linhas do polígono devem formar um loop. Em outras palavras, o último ponto da sequência de pontos que definem o LineString deve ser o mesmo ponto que o primeiro da sequência.

  • ST_POLYGON é um alias para ST_MAKEPOLYGON.

  • Para objetos GEOMETRY, o objeto GEOMETRY retornado tem o mesmo SRID que a entrada.

Exemplos

Exemplos GEOGRAPHY

Isso mostra uma simples utilização da função ST_MAKEPOLYGON. A sequência de pontos abaixo define uma área retangular geodésica de 1 grau de largura e 2 graus de altura, com o canto inferior esquerdo do polígono começando no equador (latitude) e Greenwich (longitude). O último ponto da sequência é o mesmo que o primeiro, que completa o loop.

SELECT ST_MAKEPOLYGON(
   TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0, 1.0 2.0, 0.0 2.0, 0.0 0.0)')
   ) AS polygon1;
+--------------------------------+
| POLYGON1                       |
|--------------------------------|
| POLYGON((0 0,1 0,1 2,0 2,0 0)) |
+--------------------------------+
Copy

Exemplos GEOMETRY

Isso mostra uma simples utilização da função ST_MAKEPOLYGON.

SELECT ST_MAKEPOLYGON(
  TO_GEOMETRY('LINESTRING(0.0 0.0, 1.0 0.0, 1.0 2.0, 0.0 2.0, 0.0 0.0)')
  ) AS polygon;
Copy
+--------------------------------+
| POLYGON                        |
|--------------------------------|
| POLYGON((0 0,1 0,1 2,0 2,0 0)) |
+--------------------------------+
Copy