A função ST_MAKEPOLYGON constrói um objeto geográfico do tipo polígono a partir de um contorno externo especificado e zero ou mais buracos.
Sintaxe
GEOGRAPHY ST_MAKEPOLYGON(GEOGRAPHY <shell>[, ARRAY<GEOGRAPHY> <holes>])
Parâmetros
shell: Obrigatório. Um objeto geográfico do tipo
linestring.holes: Opcional. Um
ARRAYde objetos geográficos do tipolinestring.
Use a função ST_MAKELINE para construir objetos geográficos do tipo linestring. Observe as seguintes regras:
Uma
linestringdeve conter pelo menos três vértices distintos.A
linestringdeve ser fechada, ou seja, o primeiro e o último vértice devem ser idênticos. Caso contrário, a função fecha automaticamente alinestringao adicionar um segmento do último vértice ao primeiro.
Valor retornado
Retorna um objeto geográfico do tipo polygon. Aplicam-se as seguintes regras:
Se algum argumento de entrada for
NULLou se o array de buracos contiver um elementoNULL, a função retornaráNULL.Se algum objeto geográfico de entrada estiver vazio, a função retornará um erro.
Limitações de precisão da S2 Geometry Library podem causar pequenas diferenças entre a entrada e a saída.
Exemplos
-- Create a polygon from a shell without any holes
SELECT ST_MAKEPOLYGON(ST_GEOGFROMTEXT('LINESTRING(0 0, 1 0, 1 1)'));
-- Result:
+--------------------------------+
| _c0 |
+--------------------------------+
| POLYGON ((0 0, 1 0, 1 1, 0 0)) |
+--------------------------------+
-- Create a polygon with both a shell and a hole
SELECT ST_MAKEPOLYGON(ST_GEOGFROMTEXT('LINESTRING(0 0, 10 0, 10 10, 0 10, 0 0)'), ARRAY(ST_GEOGFROMTEXT('LINESTRING(2 2, 2 4, 4 4, 4 2, 2 2)')));
-- Result:
+--------------------------------------------------------------------+
| _c0 |
+--------------------------------------------------------------------+
| POLYGON ((0 0, 10 0, 10 10, 0 10, 0 0), (4 2, 4 4, 2 4, 2 2, 4 2)) |
+--------------------------------------------------------------------+