1. # 相交¶
缺前端控件截图
## 功能说明
获取两份输入数据,计算得到两份数据叠加后的结果
## 参数说明
参数名称 |
参数取值范围 |
默认值 |
参数描述 |
XY容差 |
浮点数 |
0.001 |
经纬度容差 |
输出要素属性 |
字符串 |
input |
输出要素类型,默认传入input,可选line、point。若输入类型全为点要素,则不能选择line |
连接属性 |
字符串 |
ALL |
连接属性,默认ALL,可选ONLY_FID |
## 算法原理 输入-输出数据: .. image:: uploads/1636aa97929e58076b32c10577dc981b/图片8.png
获取两份输入数据的数据范围,取两份数据叠加后的最大范围作为格网划分范围
假设所有要素在格网划分范围中均匀分布,则格网划分范围总面积除以要素的个数,得到平均每个要素所占的范围面积a。ka为划分格网的面积大小。k大小可自定义,简单理解为期望单个格网中包含要素的个数。
分别对两份数据进行网格划分,输出KV对,K为所在格网,V为要素信息
通过CogroupBykey将同一网格中的两份数据划分到一起
计算同一网格中,两份要素的两两相交情况,若相交,则输出KV对,K为两相交要素的id拼接值,如AUB,V为相交的结果
最后,通过GroupBykey并输出group中的第一个参数,实现结果去重。 用户可自定义输出要素的类型、输出字段,需要依次去构造不同的schema,并对相交结果根据输出类型进行筛选
特殊情况处理: .. image:: uploads/d1e388eeaa5fe9b079f5176365e5c484/图片9.png .. image:: uploads/98f114784e76b14f3cde74f33349a3f2/图片10.png