Objetivos
Conocer la definición de las relaciones espaciales de SFA
Manejas las relaciones espaciales en PostGIS
Relaciones espaciales
Verifican el cumplimiento de determinados predicados geográficos entre dos geometrías distintas. Los predicados geográficos toman dos geometrías como argumento, y devuelven un valor booleano que indica si ambas geometrías cumplen o no una determinada relación espacial.
relaciones espaciales
Las principales relaciones espaciales contempladas son:
equals
disjoint
intersects
touches
crosses
within
contains
overlaps
Matriz DE-9IM
El DE-9IM es un enfoque matemático que define la relación espacial entre
un par de geometrías de diferentes tipos y dimensiones.
jts test builder
Permite editar y/o crear de forma gráfica y aplicar diferentes operadores espaciales viendo también de forma gráfica también los resultados
matriz de-9im
Reglas:
Los valores de las celdas podrán ser:
0,1,2 valor de la dimensión
F el conjunto vacio
matriz de-9im
Se trata de encontrar las posibles dimensiones de las geometrías. Estás construcciones responden a un patrón en función de la relación que cumplan
Se muestran las relaciones de AB y BA
matriz de-9im
PostGIS permite el uso de estos patrones mediante la función
ST_Relate(geom, geom, patron)
st_relate
ST_Relate me permite el uso de patrones personalizados:
T puede ser igual a 0,1,2
* puede ser igual a 0,1,2 o F
st_Relate
El patrón T******** me indica que los interiores de las geometrías tienen que tener alguna dimensión, por lo tanto deben intersecar
relaciones espaciales
Mediante el uso de ST_Relate y los patrones podemos encontrar las relaciones de las geometrías. Es tedioso el uso de los patrones.
PostGIS define operaciones que son particularizaciones del uso de los patrones.
Estas operaciones deben cumplir la definición de la relación impuesta por los estándares
equals
Las geometrías son iguales desde un punto de vista topológico, es decir si su contorno, interior y exterior son iguales, sin tener en cuenta el número de vertices, ni el sentido ni como están compuestos los elementos incluso si se tratan de geometrías multi
ST_Equals(geom, geom)
Disjoint
Las geometrías no tendrán ningún punto en común
ST_Disjoint(geom, geom)
Intersects
Opuesto del anterior, indica que las geometrías tiene algún punto en común
ST_Intersects(geom, geom)
touches
Devuelve TRUE si cualquiera de los contornos de las geometrías se cruzan o si sólo uno de los interiores de la geometría se cruza el contorno del otro.
ST_Touches(geom, geom)
Crosses
Se cumple esta relación si el resultado de la intersección de dos geometrías es de dimensión menor que la mayor de las dimensiones de las dos geometrías y además esta intersección está en el interior de ambas.
ST_Crosses(geom, geom)
Overlaps
Compara dos geometrías de la misma dimensión y devuelve TRUE si su intersección resulta una geometría diferente de ambas pero de la misma dimensión
ST_Overlaps(geom, geom)
Within
Se cumple si la geometría A está completamente dentro de la geometría B.
ST_Within(geom A, geom B)
Contains
Se cumple si la geometría A está contenida completamente dentro de la geometría B.
ST_Contains(geom A, geom B)
Covers y CoveredBy
Estas al igual que las anteriores son opuestas:
ST_Covers(geom A, geom B) = ST_CoveredBy(geom B, geom A)
Covers y CoveredBy
Devuelve verdadero en el caso de que una geometría se encuentra completamente contenida en la otra, ningún punto debe caer en el exterior, pudiendo estar en el interior o en el contorno o en ambos.
En el caso anterior, si la geometría caé en el contorno los predicados devolverán falso. (Estos últimos son los que pertenecen al estandar OGC)
Spatial JOIN
Permite combinar información de diferentes tablas usando relaciones espaciales como clave dentro del JOIN.
# SELECT campos
FROM tabla as a
JOIN otra_tabla as b
ON ST_Contains(a.geom, b.geom)
WHERE condiciones;