Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 » SQL Anywhere 服务器 - 空间数据支持 » 使用空间数据 » 高级空间主题

 

空间比较的工作原理

您可通过两种方法来测试两个几何是否相等:ST_Equals 和 ST_OrderingEquals。这两种方法执行比较的方式不同,返回的结果也不同。

  • ST_Equals   点的指定顺序并不重要,且进行点比较时会考虑公差。如果被比较的几何在公差范围内占用相同的空间,则将被视为相等几何。例如,如果两个线串占用相同的空间,即使其中一个使用较多的点进行定义,则它们仍被视为相等。

  • ST_OrderingEquals   使用 ST_OrderingEquals 时,ST_OrderingEquals 下被视为相等的两个几何必须包含相同的对象层次,其中的点必须完全相同且按同一顺序排列。也就是说,这两个几何必须完全相同。

为了说明 ST_Equals 和 ST_OrderingEquals 在比较结果上的差异,我们将以下面的线为例。ST_Equals 会将这些线全部视为相等(假定线 C 在公差范围内)。而 ST_OrderingEquals 则会将这些线视为彼此不相等。

虽然线 A 和线 B 的两个端点相同,但它们的指定顺序不同。线 C 看起来与线 A 类似,但稍有倾斜。线 D 定义了三个点,但所占用的空间与线 A 和线 B 相同。
 SQL Anywhere 执行几何比较的方式