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 服务器 - 空间数据支持 » 使用空间数据 » 高级空间主题

 

对齐网格和公差如何影响空间计算

对齐网格是一种几何定位操作,用于使几何中的点与网格上的交叉点对齐。使点与网格对齐时,X 和 Y 值会有少量变化 - 类似于舍入。在空间数据的上下文中,网格是放置于空间参照系的二维表示上的线框。SQL Anywhere 使用方形网格。

作为一个简化的对齐网格示例,如果网格大小为 0.2,则从点 ( 14.2321, 28.3262 ) 到点 ( 15.3721, 27.1128 ) 的线将与从点 ( 14.2, 28.4 ) 到点 ( 15.4, 27.2 ) 的线相对齐。网格大小通常比此简化示例小得多,所以精度损失也会小得多。

缺省情况下,SQL Anywhere 自动设置网格大小,以便可以为空间参照系的 X 和 Y 界限内的每个点存储 12 位有效数字。例如,如果 X 的取值范围为 -180 到 180,Y 的取值范围为 -90 到 90,则数据库服务器会将网格大小设置为 1e-9 (0.000000001)。也就是说,水平和垂直网格线间的距离均为 1e-9。网格线的交叉点表示可以在空间参照系中表示的所有点。创建或装载几何时,各点的 X 坐标和 Y 坐标对齐到网格上最近的点。

公差定义一个距离,处于此距离之内的两点或几何部分被视为重合。这可以设想为:所有几何都表示为使用粗头划线工具绘制的点和线,其中线的粗度等于公差。使用粗头划线工具绘制时相接触的任何部分均视为在公差范围内相等。如果两点间的距离恰好等于公差,则认为在该公差范围二者不重合。

举个简单的公差示例,如果公差为 0.5,则点 ( 14.2, 28.4 ) 与点 ( 14.4, 28.2 ) 将被视为相等。因为这两点之间的距离(其单位与 X 和 Y 相同)约为 0.283,小于公差。但是,公差通常比此简化示例小得多。

请注意,公差可能会导致极小的几何变为无效。长度小于公差的线无效(因为其上的点均被视为相同)。同样,由所有在公差内相同的点构成的多边形也被视为无效。

对齐网格和公差是在空间参照系上设置,并始终以与 X 和 Y(或经度和纬度)坐标相同的单位进行指定。对齐网格和公差共同作用,以克服不精确算术和不精确数据所导致的问题。但是应当注意其行为对空间操作结果的影响。

注意

对于平面空间参照系,建议不要将网格大小设置为 0,因为这会导致空间操作的结果不正确。对于球形地球空间参照系,网格大小和公差必须设置为 0。当执行球形地球操作时,SQL Anywhere 会对内部投影使用固定的网格大小和公差。

以下各示例说明了网格大小和公差设置对空间计算的影响。

 示例 1:对齐网格影响相交结果
 示例 2:公差影响相交结果
 示例 3:公差和传递性
 示例 4:网格和公差设置对不精确数据的影响
 另请参见