Jaka jest różnica między predykatami przestrzennymi „Okładki” i „Zawiera”?

9

Staram się zrozumieć przestrzenne predykaty macierzy przecięcia DE-9IM. Nie dostaję różnicy między predykatami Okładki (odpowiednio CoveredBy ) i Zawiera (lub. Wewnątrz ).

Staram się wyciągnąć z geometrii WST topologii Suite , są zawsze Covers = True i Contains = True (lub oba są fałsz), ale nie udaje się im różne, tzn aby zobaczyć różnicę między Coversi Contains. Czy ktoś ma przykład (najlepiej WKT lub zdjęcie), który ilustruje różnicę?

Wernfried Domscheit
źródło

Odpowiedzi:

14

Spójrz na Martina Davisa (twórcę pakietu JTS Topology Suite ), Lin.ear th.inking: Dziwactwa predykatu przestrzennego „Zawiera”

  1. Geometria A zawiera geometrię B, jeśli żadne punkty B nie leżą na zewnątrz A, a co najmniej jeden punkt wnętrza B leży we wnętrzu A
  2. Geometria A obejmuje geometrię B, jeśli żadne punkty B nie leżą na zewnątrz A

Aby określić ten warunek, wystarczy wykonać proste porównanie ramki ograniczającej. Nie jest to możliwe z zawartością, ponieważ nawet jeśli obwiednia geometrii jest objęta prostokątem, wymagana jest dalsza kosztowna operacja, aby sprawdzić, czy geometria leży całkowicie na granicy prostokąta (w takim przypadku predykat zawodzi). Okładki „upraszczają” definicję zawartości, czyniąc ją bardziej ogólną (włącznie)

Jeśli spojrzysz na DE-9IM , zobaczysz, że zawiera (T*****FF*)on szczególny przypadek okładek(T*****FF*, *T****FF*, ***T**FF*)

Na przykład definicja zawiera sugeruje, że wielokąt nie zawiera swojej granicy, ale wielokąt pokrywa jego granicę.

wprowadź opis zdjęcia tutaj

gen
źródło