2. # 交集取反¶
缺前端控件截图
## 功能说明 对两份输入数据进行格网划分计算,求出两份数据所有要素求差集的结果
2.1. ## 参数说明¶
参数名称 |
参数取值范围 |
默认值 |
参数描述 |
XY容差 |
浮点数 |
0.001 |
经纬度容差 |
连接属性 |
字符串 |
ALL |
连接属性,默认ALL,可选ONLY_FID |
## 算法原理 输入数据: .. image:: uploads/9c7c95b8d675ea13cf07001f8cb21f58/图片2.png
对两份输入数据进行格网划分,并将同一网格中的数据划分到一起
若网格中只含有某一份输入数据的要素,直接输出该元素。此时Key值为该要素的表名+要素id,并且几何信息为空要素。若网格存在两图层的要素,则需进一步判断两图层要素的相交情况。若要素不相交或面要素相交为点、线或线要素相交为点,输出KV值同前面;若面要素相交为面或线要素相交为线,则输出Key值为:A要素gid+inters+B要素gid,几何为相交结果
对结果进行去重。进行groupbykey,获取迭代器中的第一个元素,若Key中包含inter,则输出两次,新的key值分别为A要素gid+A表名与B要素gid+表名,几何均为相交结果。若Key不包含inter,则输出一次,要素gid+要素表名
进行groupbykey,单个要素与其他所有要素的相交几何组合到迭代器,逐个进行union,求并集。最后,要素本身与并集求差集,即得到该要素与所有要素交集取反的结果。
输出结果: .. image:: uploads/5241882ae10d387e11b36e3896f5a9b7/图片1.png