Funções de operação
Use funções de operação para realizar operações nos valores do tipo de dados de geometria. Por exemplo, você pode obter os limites de um único tipo de dados de geometria, interseções entre dois tipos de dados de geometria, diferença entre geometrias à esquerda e à direita, em que cada um é do mesmo tipo de dados de geometria ou um buffer externo ou um anel em torno de um tipo de dados de geometria específico.
geometry_union(array(geometry))
Retorna uma geometria que representa a união do conjunto de pontos das geometrias especificadas. Exemplo:
SELECT geometry_union(ARRAY[ST_Point(-158.54, 61.56), ST_Point(-158.55, 61.56)])
ST_Boundary(geometry)
Usa como entrada um dos tipos de dados de geometria e retorna o tipo de dados de geometria boundary
.
Exemplos:
SELECT ST_Boundary(ST_Line('linestring(0 1, 1 0)')))
SELECT ST_Boundary(ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))
ST_Buffer(geometry,
double)
Usa como entrada um dos tipos de dados de geometria, como ponto, linha, polígono, multilinha ou multipolígono e uma distância como tipo double
). Retorna o tipo de dados de geometria armazenado em buffer pela distância especificada (ou raio). Exemplo:
SELECT ST_Buffer(ST_Point(1, 2), 2.0)
No seguinte exemplo, as coordenadas do mapa são especificadas em latitude e longitude, e o valor .072284
, que é a distância de folga, é especificado em unidades anguladas na forma de graus decimais:
SELECT ST_Buffer(ST_Point(-74.006801, 40.705220), .072284)
ST_Difference(geometry, geometry)
Retorna uma geometria da diferença entre a geometria à esquerda e a geometria à direita. Exemplo:
SELECT ST_AsText(ST_Difference(ST_Polygon('polygon((0 0, 0 10, 10 10, 10 0))'), ST_Polygon('polygon((0 0, 0 5, 5 5, 5 0))')))
ST_Envelope(geometry)
Recebe como entrada os tipos de dados de geometria line
, polygon
, multiline
e multipolygon
. Não oferece suporte ao tipo de dados de geometria point
. Retorna o envelope como uma geometria, em que o envelope é um retângulo em torno do tipo de dados de geometria especificado. Exemplos:
SELECT ST_Envelope(ST_Line('linestring(0 1, 1 0)'))
SELECT ST_Envelope(ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))
ST_EnvelopeAsPts(geometry)
Retorna um array de dois pontos que representam os cantos inferior esquerdo e superior direito do polígono retangular delimitador de uma geometria. Retorna nulo quando a geometria especificada está vazia. Exemplo:
SELECT ST_EnvelopeAsPts(ST_Point(-158.54, 61.56))
ST_ExteriorRing(geometry)
Retorna a geometria do anel externo do tipo de entrada polygon
. A partir do mecanismo Athena versão 2, os polígonos são as únicas geometrias aceitas como entradas. Exemplos:
SELECT ST_ExteriorRing(ST_Polygon(1,1, 1,4, 4,1))
SELECT ST_ExteriorRing(ST_Polygon('polygon ((0 0, 8 0, 0 8, 0 0), (1 1, 1 5, 5 1, 1 1))'))
ST_Intersection(geometry, geometry)
Retorna a geometria da interseção da geometria à esquerda e da geometria à direita. Exemplos:
SELECT ST_Intersection(ST_Point(1,1), ST_Point(1,1))
SELECT ST_Intersection(ST_Line('linestring(0 1, 1 0)'), ST_Polygon('polygon((1 1, 1 4, 4 4, 4 1))'))
SELECT ST_AsText(ST_Intersection(ST_Polygon('polygon((2 0, 2 3, 3 0))'), ST_Polygon('polygon((1 1, 4 1, 4 4, 1 4))')))
ST_SymDifference(geometry, geometry)
Retorna a geometria da diferença geometricamente simétrica entre a geometria à esquerda e a geometria à direita. Exemplo:
SELECT ST_AsText(ST_SymDifference(ST_Line('linestring(0 2, 2 2)'), ST_Line('linestring(1 2, 3 2)')))
ST_Union(geometry,
geometry)
Retorna um tipo de dados de geometria que representa a união do conjunto de pontos das geometrias especificadas. Exemplo:
SELECT ST_Union(ST_Point(-158.54, 61.56),ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))