Funciones de operación - Amazon Athena

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