¿Cuál es la diferencia entre los predicados espaciales "Cubiertas" y "Contiene"?

9

Intento comprender los predicados espaciales de la matriz de intersección DE-9IM. No obtengo la diferencia entre los predicados Cubiertas ( CoveredBy respectivo ) y Contiene (resp. Dentro ).

Intento dibujar geometrías con JTS Topology Suite , siempre son Covers = True y Contains = True (o ambos son falsos) pero no logro hacerlos diferentes, es decir, ver la diferencia entre Coversy Contains. ¿Alguien tiene un ejemplo (preferiblemente un WKT o una imagen) que ilustre la diferencia?

Wernfried Domscheit
fuente

Respuestas:

14

Mire a Martin Davis (creador de JTS Topology Suite ), Lin.ear th.inking: Quirks of the "Contains" Spatial Predicate

  1. La Geometría A contiene Geometría B si no hay puntos de B en el exterior de A, y al menos un punto del interior de B se encuentra en el interior de A
  2. La geometría A cubre la geometría B si no hay puntos de B en el exterior de A

Todo lo que es necesario para determinar esta condición es realizar una simple comparación de cuadro delimitador. Esto no es posible con contiene, porque incluso si el cuadro delimitador de Geometría está cubierto por el Rectángulo, se requiere una operación costosa adicional para probar si la Geometría se encuentra completamente en el límite del Rectángulo (en cuyo caso el predicado falla). Las cubiertas "simplifican" la definición de contiene al hacerla más general (inclusiva)

Si observa DE-9IM , puede ver que contiene (T*****FF*)es un caso particular de cubiertas(T*****FF*, *T****FF*, ***T**FF*)

Por ejemplo, la definición de contiene implica que un Polígono no contiene su límite, pero un Polígono cubre su límite.

ingrese la descripción de la imagen aquí

gene
fuente