Operaciones espaciales
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.
Los datos derivados que puede obtener de una operación espacial incluyen:
- Un polígono que es una zona de influencia de una entidad de entrada
Una entidad simple que es el resultado del análisis realizado en un conjunto de geometrías
- Una entidad simple que es el resultado de una comparación para determinar la parte de una entidad que no ocupa el mismo espacio físico que otra entidad
- Una entidad única que es el resultado de una comparación para buscar las partes de una entidad que intersecan el espacio físico de otra entidad
- Una entidad multiparte que está compuesta por las partes de ambas entidades de entrada que no ocupan el mismo espacio físico de la otra
- Una entidad que es la combinación de dos geometrías
El análisis realizado en los datos de entrada devuelve las coordenadas o la representación textual de las geometrías resultantes. Puede usar esa información como parte de una consulta más grande para realizar más análisis, o puede utilizar los resultados como entrada de otra tabla.
Por ejemplo, puede incluir una operación de zona de influencia en la cláusula WHERE de una consulta de intersección para determinar si la geometría especificada interseca un área de tamaño específico alrededor de otra geometría.
Los ejemplos siguientes utilizan funciones ST_Geometry. Para las funciones específicas de geometría y la sintaxis utilizadas en otra base de datos y tipo de datos espaciales, lea la documentación específica de esa base de datos y tipo de datos.
En este ejemplo, las notificaciones tienen que enviarse a todos los propietarios dentro de los 1.000 pies del cierre de una calle. La cláusula WHERE genera una zona de influencia de 1.000 pies alrededor de la calle que se cerrará. A continuación, esa zona de influencia se compara con las propiedades del área para ver a cuáles interseca.
SELECT p.owner,p.address,s.stname FROM parcels p, streets s WHERE s.stname = 'Main' AND sde.st_intersects (p.shape, sde.st_buffer (s.shape, 1000)) = 't';
En este ejemplo, se elige una calle específica (Main) en la cláusula WHERE, se crea una zona de influencia alrededor de la calle y se compara con las entidades de la tabla de parcelas para determinar si se intersecan. *Se devuelve el nombre y el domicilio del propietario de la parcela para todas las parcelas intersecadas por la zona de influencia de la calle Main.
*El orden en el que se ejecutan las partes de la cláusula WHERE depende del optimizador de la base de datos.
A continuación se ofrece un ejemplo de la toma de los resultados de una operación espacial (combinación) realizada en tablas que contienen áreas vecinales y de distritos escolares, y de la inserción de las entidades resultantes en otra tabla:
INSERT INTO combo c (shape) VALUES ( (SELECT sde.st_union (n.shape,d.shape) FROM neighborhoods n, school_districts d),5);
Para obtener más información sobre cómo usar los operadores con ST_Geometry, consulte Funciones de operación espacial de ST_Geometry. Para obtener información sobre cómo utilizar operadores espaciales con los tipos espaciales IBM DB2, IBM Informix, Oracle Spatial, PostGIS o Microsoft SQL Server, consulte la documentación para esos sistemas de administración de bases de datos.