成对相交工具使用成对比较技术计算两个要素图层或要素类中要素之间的交集。 工具输出两个输入所共有的要素或要素的一部分。
相交和成对相交工具比较
使用成对相交工具,第一个输入中的一个要素与第二个输入中的每个单独要素相交。 这与相交工具的工作方式根本不同。 使用相交工具,所有要素都会相交,无论该要素属于哪个输入。
相交工具用于执行以下操作:
- 与多个要素图层或要素类相交
- 查找所有输入要素的交集,无论它们属于哪个输入,创建表示所有要素几何交集的拓扑结构
成对相交工具用于执行以下操作:
- 仅接受两个要素图层或要素类作为输入
- 从第一个输入中获取要素,并将它们与第二个输入中的每个要素逐个相交,创建代表其交集的新要素
相交工具
所有要素之间的所有交集都会被计算,无论它们属于什么输入。 由于所有交集都经过计算,因此输出所包含的要素数量可能比所有输入要素的总数量多得多。 例如,两个输入包含数万个要素,由于所有要素之间存在复杂的重叠,因此可能会产生数亿个要素的输出。
例如,下面显示了两个要素图层;第一个包含 10 个要素,第二个包含 1 个要素。


下图显示了使用两个输入的相交工具的结果。 无论是哪个输入,都会计算所有要素的交点。 这可以产生比输入中发现的更多的要素。 在这种情况下,输出中的要素 (167) 比两个输入中的要素 (11) 更多。

“成对相交”工具
成对相交工具可创建更简单的输出。 工具不会计算同一输入内要素的交集;仅计算不同输入中要素之间的交集。
下图显示了使用两个输入的成对相交工具的结果。 输出仅包括 10 个要素。

面输入和点输出
下图显示当输出类型参数设置为点时两个输入面要素图层的结果。
相交工具可创建点要素,其中任一输入的面都有一个顶点与另一输入的面多边形的边界相交,在某一点处它们相切或边界相交。

成对相交工具可创建点要素,其中一个输入的面具有与另一个输入的面边界相切的顶点。

面输入与线和点输出完全重叠
当输出类型参数设置为点或线时,相交和成对相交工具对于完全重叠的输入面要素返回不同的结果。
下图显示了使用相交工具对两个面要素图层进行相交的结果,其中输出类型参数首先设置为点选项(紫色输出点要素),然后设置为线选项(红色输出线要素)。 两个输入的面完全重叠,其中一组面也在边界上相交,另一组面在一个点上相交。

使用输出类型参数的点选项,由于黄色面要素接触蓝色面边界的边界,相交工具将输出紫色点要素(紫色)。 这种接触相交关系将导致输出点,而不管面是否完全重叠。
使用输出类型参数的线选项,由于黄色面要素与蓝色面共享边界,相交工具将输出红色线要素。 这种共享边界的相交关系将导致输出线要素,而不管面是否完全重叠。
对于这两种情况,成对相交工具都会返回一个空输出。 完全重叠的面将导致只有区域重叠关系有效,并且低阶相交关系均不被视为有效。
处理期间的差异
成对相交和相交工具在处理过程中具有以下差异。
性能
当对大量重叠要素进行相交时,成对相交工具的性能可能会比相交工具显著提高。 当重叠量较小时,可能不会有性能提升。
注:
这两种工具的输出可能有很大差异。 使用小部分数据进行实验,以分析输出并确定哪种工具最合适。
相交工具可识别输入中所有要素之间的唯一重叠事件。 考虑到此类操作的复杂性,相交工具非常高效且可扩展。 如果您需要查找输入中所有要素之间的唯一重叠事件,请使用相交工具。
X,y 分辨率
x,y 分辨率是用于存储 x,y 坐标值的数值精度。 成对工具中的所有计算均使用浮点执行。 坐标以双精度浮点格式(也称为双精度)存储。 这与“相交”工具(大多数非成对工具)等工具不同,这些工具在内部使用整数作为坐标,将值存储在整型格网上。
x,y 容差应用方式的差异
x,y 容差定义了在简化和拓扑操作等操作中处理几何时坐标之间的最小距离。 术语“裂化和聚类”用于描述分割相交段和捕捉点的过程。 裂化过程是指段在与其他段或点的交叉点处裂化的过程。 聚类过程是将靠近的顶点拼接在一起,因为它们被认为是相等的。 有关详细信息,请参阅了解几何处理。
请注意,点表示独立点(例如多点中的独立点)或线段的顶点。
使用非成对工具的裂化和聚类
在相交工具裂化过程中,如果从点到线段内部的最近距离小于或等于 sqrt(2) * 容差,则假定该点位于该线段上。 在这种情况下,将对线段进行分割,并将新端点捕捉到该点。
使用相交工具执行聚类过程时,当两个点之间的距离小于或等于 2 * sqrt(2) * 容差时,它们将被捕捉在一起。 由于聚类算法是迭代算法,因此坐标位置的平移距离有时会大于此距离。
当两个点捕捉在一起或当点捕捉到线段时,线段会移动一点 可能会发生新的相交事件,因为移动的线段可能变得比与另一个顶点的 sqrt(2) * 容差更近。
捕捉到的顶点或线段的交点的坐标将存储在整型格网中。 因此,它们被计算到分辨率精度,并且四舍五入到整型格网会导致新顶点稍微移动。 因此,裂化和聚类过程会重复进行,直到不再发生新的裂化和聚类事件。
成对工具的裂化和聚类
成对工具使用浮点值进行所有计算。 非成对工具必须认为处理结果是干净的(不需要修复)。 也就是说,当一组几何由非成对工具处理时,结果将是所有非成对工具都找不到任何新的线段交叉点或应该裂化或聚类但实际上并未裂化或聚类的点。
简化和拓扑运算符
在成对裂化过程中,如果某个点到线段内部的最近距离小于或等于 1.01 * sqrt(2) * (容差 + 2 * 分辨率),则假定该点位于该线段上。
当成对工具执行聚类时,当两个点之间的距离小于或等于 1.01 * sqrt(2) * (2 * 容差 + 2 * 分辨率) 时,两个点将被捕捉在一起。 由于聚类算法是迭代算法,因此坐标位置的平移距离有时会大于此距离。
将使用值 1.01 来增大原始值 1% 以确保稳定性。
使用哪种工具
根据性能需求和分析所需的输出类型选择工具。 如果相交工具在合理的时间内完成并创建适合分析的输出,请继续使用。
但是,如果相交工具执行以下任一操作,且其创建的输出适合您的分析,请考虑使用成对相交工具。
- 工具的运行时间较长。
- 工具因缺乏资源而失败。
- 与输入要素的数量相比,工具创建了大量的输出要素。