2. # 交集取反

缺前端控件截图

## 功能说明 对两份输入数据进行格网划分计算,求出两份数据所有要素求差集的结果

2.1. ## 参数说明

参数名称

参数取值范围

默认值

参数描述

XY容差

浮点数

0.001

经纬度容差

连接属性

字符串

ALL

连接属性,默认ALL,可选ONLY_FID

## 算法原理 输入数据: .. image:: uploads/9c7c95b8d675ea13cf07001f8cb21f58/图片2.png

  1. 对两份输入数据进行格网划分,并将同一网格中的数据划分到一起

  2. 若网格中只含有某一份输入数据的要素,直接输出该元素。此时Key值为该要素的表名+要素id,并且几何信息为空要素。若网格存在两图层的要素,则需进一步判断两图层要素的相交情况。若要素不相交或面要素相交为点、线或线要素相交为点,输出KV值同前面;若面要素相交为面或线要素相交为线,则输出Key值为:A要素gid+inters+B要素gid,几何为相交结果

  3. 对结果进行去重。进行groupbykey,获取迭代器中的第一个元素,若Key中包含inter,则输出两次,新的key值分别为A要素gid+A表名与B要素gid+表名,几何均为相交结果。若Key不包含inter,则输出一次,要素gid+要素表名

  4. 进行groupbykey,单个要素与其他所有要素的相交几何组合到迭代器,逐个进行union,求并集。最后,要素本身与并集求差集,即得到该要素与所有要素交集取反的结果。

输出结果: .. image:: uploads/5241882ae10d387e11b36e3896f5a9b7/图片1.png