Funciones de operación
Utilice funciones de operación para llevar a cabo operaciones en valores de tipos de datos de geometría. Por ejemplo, puede obtener los límites de un único tipo de datos geométrico; las intersecciones entre dos tipos de datos geométricos; la diferencia entre las geometrías izquierda y derecha, donde cada geometría es del mismo tipo de datos; o un búfer o anillo exterior en torno a un tipo de datos geométrico concreto.
geometry_union(array(geometry))
Devuelve una geometría que representa la unión del conjunto de puntos de las geometrías especificadas. Ejemplo:
SELECT geometry_union(ARRAY[ST_Point(-158.54, 61.56), ST_Point(-158.55, 61.56)])
ST_Boundary(geometry)
Toma como entrada uno de los tipos de datos geométricos y devuelve el tipo de datos geométrico boundary
.
Ejemplos:
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)
Toma como una entrada uno de los tipos de datos geométricos, como, por ejemplo, punto, línea, polígono, varias líneas o varios polígonos y una distancia como el tipo double
. Devuelve el tipo de datos geométricos delimitado por la distancia especificada (o radio). Ejemplo:
SELECT ST_Buffer(ST_Point(1, 2), 2.0)
En el siguiente ejemplo, las coordenadas del mapa se especifican en longitud y latitud, y el valor .072284
, que es la distancia del búfer, se especifica en unidades angulares como grados decimales:
SELECT ST_Buffer(ST_Point(-74.006801, 40.705220), .072284)
ST_Difference(geometry, geometry)
Devuelve una geometría de la diferencia entre la geometría izquierda y la geometría derecha. Ejemplo:
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)
Toma como entrada line
, polygon
, multiline
y tipos de datos geométricos multipolygon
. No admite el tipo de datos geométricos point
. Devuelve el sobre como una geometría, en la que el sobre es un rectángulo que rodea el tipo de datos geométricos especificado. Ejemplos:
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)
Devuelve una matriz de dos puntos que representan las esquinas inferior izquierda y superior derecha del polígono rectangular delimitador de una geometría. Devuelve un valor nulo si la geometría especificada está vacía. Ejemplo:
SELECT ST_EnvelopeAsPts(ST_Point(-158.54, 61.56))
ST_ExteriorRing(geometry)
Devuelve la geometría del anillo exterior del tipo de entrada polygon
. Desde la versión 2 del motor Athena, los polígonos son las únicas geometrías aceptadas como entradas. Ejemplos:
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)
Devuelve la geometría de la intersección de la geometría izquierda y la geometría derecha. Ejemplos:
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)
Devuelve la geometría de la diferencia geométricamente simétrica entre la geometría izquierda y la geometría derecha. Ejemplo:
SELECT ST_AsText(ST_SymDifference(ST_Line('linestring(0 2, 2 2)'), ST_Line('linestring(1 2, 3 2)')))
ST_Union(geometry,
geometry)
Devuelve un tipo de datos geométricos que representa la unión del conjunto de puntos de las geometrías especificadas. Ejemplo:
SELECT ST_Union(ST_Point(-158.54, 61.56),ST_LineString(array[ST_Point(1,2), ST_Point(3,4)]))