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

SQL Anywhere 12.0.0 (中文) » SQL Anywhere 服务器 - 空间数据支持 » 空间数据入门 » 空间数据简介

 

使用 ST_Equals 和 ST_OrderingEquals 比较几何

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

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

  • ST_OrderingEquals   使用 ST_OrderingEquals 时,点的指定顺序很重要,且进行点比较时不会考虑公差。也就是说,被比较的点必须完全相同,包括点的指定顺序也必须完全相同,这样几何才会被视为相等。

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

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