Qual é a diferença entre os predicados espaciais "Capas" e "Contém"?

9

Eu tento entender os predicados espaciais da matriz de interseção DE-9IM. Eu não entendo a diferença entre os predicados Covers (respectivo CoveredBy ) e Contains (resp. Within ).

Eu tento desenhar geometrias com o JTS Topology Suite , elas são sempre Covers = True e Contains = True (ou ambas são falsas), mas não consigo diferenciá-las, ou seja, ver a diferença entre Coverse Contains. Alguém tem um exemplo (de preferência um WKT ou uma imagem) que ilustra a diferença?

Wernfried Domscheit
fonte

Respostas:

14

Veja Martin Davis (criador do JTS Topology Suite ), Lin.ear th.inking: peculiaridades do predicado espacial "Contém"

  1. A geometria A contém a geometria B se nenhum ponto de B estiver no exterior de A e pelo menos um ponto do interior de B estiver no interior de A
  2. A geometria A cobre a geometria B se nenhum ponto de B estiver no exterior de A

Tudo o que é necessário para determinar essa condição é executar uma comparação simples de caixa delimitadora. Isso não é possível com contains, porque mesmo que a caixa delimitadora de Geometry seja coberta pelo retângulo, uma operação cara e adicional é necessária para testar se a geometria está totalmente no limite do retângulo (nesse caso, o predicado falha). Abrange "simplifica" a definição de contém, tornando-a mais geral (inclusive)

Se você observar o DE-9IM , poderá ver que esse (T*****FF*)é um caso específico de capas(T*****FF*, *T****FF*, ***T**FF*)

Por exemplo, a definição de contém implica que um polígono não contém seu limite, mas um polígono cobre seu limite.

insira a descrição da imagem aqui

gene
fonte