Funciones de operación espacial de ST_Geometry

Las operaciones espaciales utilizan funciones de geometría para tomar datos espaciales como entrada, los analizan, y luego producen datos de salida que derivan del análisis realizado en los datos de entrada.

Las operaciones siguientes se pueden realizar para crear datos nuevos a partir de los datos de entrada.

Geometría de creación de zonas de influencia

La función ST_Buffer genera una geometría rodeando una geometría a una distancia determinada. Aparece como resultado un polígono único cuando se crea una zona de influencia para una geometría primaria, o cuando los polígonos de zona de influencia de un conjunto están lo suficientemente cerca entre sí como para superponerse. Cuando los elementos de un conjunto con de zona de influencia están lo suficientemente separados entré sí, cada una de las ST_Polygons de zona de influencia se transforma en una ST_MultiPolygon.

La función ST_Buffer acepta tanto distancias positivas como negativas, pero solamente las geometrías con una dimensión de 2 (ST_Polygon y ST_MultiPolygon) pueden aplicar una zona de influencia negativa. El valor absoluto de la distancia de zona de influencia se utiliza cuando la dimensión de la geometría de origen es menor que 2; en otras palabras, todas las geometrías que no son ni ST_Polygon ni ST_MultiPolygon. Generalmente hablando, las distancias de zona de influencia positivas generan anillos de polígonos que se encuentran alejados del centro de la geometría de origen y en dirección al centro cuando la distancia es negativa (para el anillo exterior de una ST_Polygon o una ST_MultiPolygon). Para los anillos interiores de una ST_Polygon o una ST_MultiPolygon, el anillo de zona de influencia se presenta en dirección al centro cuando la distancia de zona de influencia es positiva, y alejado del centro cuando es negativa. El proceso de creación de la zona de influencia fusiona los polígonos de zona de influencia que se superponen. Las distancias negativas mayores que la mitad del ancho máximo interior de un polígono dan como resultado una geometría vacía.

Zonas de influencia para varios tipos de geometrías (se muestran las zonas de influencia en rojo, o líneas exteriores más gruesas si están impresas en blanco y negro)

Consulte ST_Buffer para obtener información sobre la sintaxis y ver un ejemplo.

ConvexHull

La función ST_ConvexHull devuelve el polígono de envoltura convexa de cualquier geometría con al menos tres vértices que forman una envoltura convexa. Si los vértices de la geometría no forman una envoltura convexa, ST_ConvexHull devuelve un valor nulo. Por ejemplo, si utiliza ST_ConvexHull en una línea compuesta por dos vértices, el resultado será un valor nulo. De manera similar, la operación ST_ConvexHull en una entidad de punto devolverá un valor nulo. Frecuentemente, crear una envoltura convexa es el primer paso cuando se realiza la teselación de un conjunto de puntos para crear una red irregular de triángulos (TIN).

Consulte ST_ConvexHull para obtener información sobre la sintaxis y ver un ejemplo.

Diferencia de geometrías

La función ST_Difference devuelve la porción de la geometría primaria que no está intersecada por la geometría secundaria: el AND NOT lógico del espacio. La función ST_Difference solamente opera en geometrías de dimensión similar y devuelve un conjunto con la misma dimensión que las geometrías de origen. En el caso de que las geometrías de origen sean iguales, el resultado es una geometría vacía.

NotaNota:

En los próximos cuatro diagramas, las primeras geometrías de entrada son de color negro y las segundas geometrías de entrada son de color naranja.

ST_Difference devuelve la porción de la primera geometría que no está intersecada por la segunda.

Consulte ST_Difference para obtener información sobre la sintaxis y ver un ejemplo.

Intersección de geometrías

La función ST_Intersection devuelve el conjunto de intersección de dos geometrías. El conjunto de intersección siempre se devuelve como un conjunto que es la dimensión mínima de las geometrías de origen. Por ejemplo, para una ST_LineString que interseca una ST_Polygon, la función ST_Intersection devuelve la porción de ST_LineString común al interior y el límite de ST_Polygon como una ST_MultiLineString. La ST_MultiLineString contiene más de una ST_LineString si la ST_LineString de origen interseca la ST_Polygon con dos o más segmentos discontinuos. Si las geometrías no se intersecan o si la intersección crea una dimensión menor que ambas geometrías de origen, el resultado es una geometría vacía. La figura siguiente ilustra algunos ejemplos de la función ST_Intersection.

La función ST_Intersection devuelve el conjunto de intersecciones como la geometría que es la dimensión mínima de las geometrías de origen.
La función ST_Intersection devuelve el conjunto de intersecciones como la geometría que es la dimensión mínima de las geometrías de origen.
Consulte ST_Intersection para obtener información sobre la sintaxis y ver un ejemplo.

Diferencia simétrica de geometrías

La función ST_SymmetricDiff devuelve la diferencia simétrica de dos geometrías: el XOR lógico del espacio. Las geometrías de origen deben tener la misma dimensión. Si las geometrías son iguales, la función ST_SymmetricDiff devuelve una geometría vacía; de otra manera, la función devuelve el resultado como un conjunto.

ST_SymmetricDiff devuelve las porciones de las geometrías de origen que no son parte del conjunto de intersección. Las geometrías de origen deben tener la misma dimensión.
ST_SymmetricDiff devuelve las porciones de las geometrías de origen que no son parte del conjunto de intersección. Las geometrías de origen deben tener la misma dimensión.

Consulte ST_SymmetricDiff para obtener información sobre la sintaxis y ver un ejemplo.

Combinación de geometrías

La función ST_Union devuelve el conjunto de combinaciones de dos geometrías: el OR lógico booleano del espacio. Las geometrías de origen deben tener la misma dimensión. ST_Union siempre devuelve el resultado como un conjunto.

La función ST_Union devuelve el conjunto de uniones de dos geometrías
La función ST_Union devuelve el conjunto de uniones de dos geometrías

Consulte ST_Union para obtener información sobre la sintaxis y ver un ejemplo.

Distancia mínima

La funciones previas devolvieron geometrías nuevas. La función ST_Distance toma dos entidades como entrada y devuelve la distancia mínima entre las dos. La distancia mínima que separa las entidades representa la distancia más corta entre dos ubicaciones (en línea recta). Por ejemplo, esta no es la distancia que debería recorrer si condujera de un lugar a otro, sino la distancia que calcularía si trazara una línea recta entre dos ubicaciones en un mapa. La función ST_Distance informa la distancia mínima que separa dos geometrías inconexas. Si las geometrías no son inconexas (en otras palabras, son coincidentes), la función informa una distancia mínima de cero.

Distancia mínima entre dos puntos

Agregados

Las operaciones agregadas le devuelven a una geometría única el resultado de un análisis realizado en un conjunto de geometrías. La función ST_Aggr_ConvexHull devuelve el multipolígono compuesto por los polígonos de envoltura convexa de cada una de las geometrías de entrada. Toda geometría de entrada que no tenga una envoltura convexa (que sería cualquier geometría de entrada con menos de tres vértices) no tendrá una envoltura convexa. Si todas las geometrías de entrada tienen menos de tres vértices, ST_Aggr_ConvexHull devuelve un valor nulo.

La función ST_Aggr_Intersection devuelve una geometría única que es un agregado de las intersecciones de todas las geometrías de entrada. Una consulta puede descubrir muchas entidades que se intersecan. Si usó el operador ST_Intersection, se deberían devolver varias entidades que representan la intersección de cada conjunto de geometrías. Por ejemplo, si realizó una intersección de una línea y una clase de entidad de punto, una geometría ST_Point debería devolverse para cada intersección.

Si, en cambio, utiliza ST_Aggr_Intersection, obtendrá un conjunto de geometrías. Por ejemplo, si desea una geometría que represente la intersección de las clases de entidad de línea y de punto mencionadas anteriormente, ST_Aggr_Intersection devuelve una geometría ST_MultiPoint compuesta por todos los puntos de la intersección. Si, sin embargo, solamente se intersecan una línea y un punto, obtendrá una geometría ST_Point.

ST_Aggr_Intersection le permite encontrar la intersección de varias geometrías; mientras que ST_Intersection solamente busca la intersección entre dos geometrías. Por ejemplo, si quiere encontrar una propiedad con diferentes servicios específicos, tales como un distrito escolar en particular, un servicio telefónico, un proveedor de Internet de alta velocidad, y representada por una persona específica del concejo municipal, debe encontrar la intersección de todas esas áreas. Encontrar la intersección de sólo dos de esas áreas no devolvería toda la información que necesita, de modo que debería usar la función sde.ST_Aggr_Intersection para que todas las áreas se puedan evaluar en la misma consulta.

La función ST_Aggr_Union devuelve una geometría que es la combinación de todas las geometrías provistas. Las geometrías de entrada deben ser del mismo tipo, por ejemplo, puede combinar ST_LineStrings con ST_LineStrings, o puede combinar ST_Polygons con ST_Polygons, pero no puede combinar una clase de entidad ST_LineString con una clase de entidad ST_Polygon. La geometría que resulta de la combinación agregada es normalmente un conjunto. Por ejemplo, si quiere que la combinación agregada de todas las parcelas vacantes de menos de medio acre, la geometría devuelta será un multipolígono, a menos que todas las parcelas que coincidan con esos criterios sean contiguas, en cuyo caso se devolverá un solo polígono.

Temas relacionados


3/6/2012