1. # 相交

缺前端控件截图

## 功能说明

获取两份输入数据,计算得到两份数据叠加后的结果

## 参数说明

参数名称

参数取值范围

默认值

参数描述

XY容差

浮点数

0.001

经纬度容差

输出要素属性

字符串

input

输出要素类型,默认传入input,可选line、point。若输入类型全为点要素,则不能选择line

连接属性

字符串

ALL

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

## 算法原理 输入-输出数据: .. image:: uploads/1636aa97929e58076b32c10577dc981b/图片8.png

  1. 获取两份输入数据的数据范围,取两份数据叠加后的最大范围作为格网划分范围

  2. 假设所有要素在格网划分范围中均匀分布,则格网划分范围总面积除以要素的个数,得到平均每个要素所占的范围面积a。ka为划分格网的面积大小。k大小可自定义,简单理解为期望单个格网中包含要素的个数。

  3. 分别对两份数据进行网格划分,输出KV对,K为所在格网,V为要素信息

  4. 通过CogroupBykey将同一网格中的两份数据划分到一起

  5. 计算同一网格中,两份要素的两两相交情况,若相交,则输出KV对,K为两相交要素的id拼接值,如AUB,V为相交的结果

  6. 最后,通过GroupBykey并输出group中的第一个参数,实现结果去重。 用户可自定义输出要素的类型、输出字段,需要依次去构造不同的schema,并对相交结果根据输出类型进行筛选

特殊情况处理: .. image:: uploads/d1e388eeaa5fe9b079f5176365e5c484/图片9.png .. image:: uploads/98f114784e76b14f3cde74f33349a3f2/图片10.png