空间谓词“ Covers”和“ Contains”有什么区别?


9

我尝试了解DE-9IM交集矩阵的空间谓词。我不明白谓语之间的区别封面(各自CoveredBy)和包含(相应地,)。

我试着用画几何JTS拓扑套件,他们总是Covers = True Contains = True(或两者都是假),但我不管理,使他们不同,即看到的区别CoversContains。是否有人举例说明了差异(最好是WKT或图片)?

Answers:


14

看一下Lin.ear.inking的 Martin Davis(JTS拓扑套件的创建者):“包含”空间谓词的怪癖

  1. 如果B的点不位于A的外部,并且B的内部的至少一个点位于A的内部,则几何A 包含几何B。
  2. 如果几何B的点不在A的外部,则几何A 覆盖几何B

确定此条件所需要做的只是执行简单的边界框比较。对于contains,这是不可能的,因为即使Geometry的边界框被Rectangle覆盖,也需要进行进一步的昂贵操作才能测试Geometry是否完全位于Rectangle的边界内(在这种情况下,谓词将失败)。通过使其更通用(包括)来“简化”包含的定义

如果看一下DE-9IM,您会发现其中包含(T*****FF*)一个特殊的保护套(T*****FF*, *T****FF*, ***T**FF*)

例如,包含的定义意味着多边形不包含其边界,但多边形覆盖了其边界。

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.