目录
@(FeatureMerger(要素合并))
通过相同的属性值或者表达式来合并两个数据源的属性或图形。
1、通过两个接口接收数据源,一个是Requestor,一个是Supplier:
2、通过相同的属性连接匹配。
通过参数窗口的 Join on 参数栏设置匹配属性。
假设我们有2个的表格,名字是主键,我们将通过名字进行关联。
+
=
将2个表格分别连接到Requetor和Supplier上,设置好输出表格(属性模式选择”自动“,会自动读取所有的属性字段),将输出表格连接到Merged输出端口。
| 输出端口 | 说明 |
| --- | --- |
| Merged | Requestor匹配上Supplier的记录会合并在一起然后输出 |
| UnmergedRequestor | 输出没有匹配上的Requestor的记录 |
| UsedSupplier | 输出被使用的Supplier记录 |
| UnusedSupplier | 输出没有被使用的Supplier记录 |
| Rejected | 输出被拒绝的记录,例如重复的记录 |
在 Join On 栏中设置Requestor和Supplier用于匹配的属性字段,可以是属性或者是表达式。
选择一个字段,将数据分组,然后Requestor和Supplier将根据相同的分组进行匹配,不会匹配到不同组的记录。
将数据进行分组后匹配能够提高转换器运行效率。
- Attributes Only: 只合并属性(根据在Attribute Accumulation中设定的属性合并规则合并)
- Geometry: 只合并图形(如果同一记录下Request和Supplier都有图形,将会被Supplier的图形替换)
- Attribute and Geometry: 合并属性和图形(属性根据Attribute Accumulation设定的规则合并,图形以Supplier为准)
如果不勾选,Requestor只会匹配到第一个匹配上的Supplier,其余重复的Supplier将会被拒绝,从Rejected端口输出。
如果勾选,重复的Supplier将会一起合并到Requestor中,但是属性任然只会使用第一个提供者的;多个提供者的图形则会以聚合或者重构的形式出现,用于替换请求者的图形。
PS:FME默认设置为遇到Rejected要素会中断运行,可以在导航栏中的Workspace Parameters>Translation>Rejected Feature Handing选项中切换Terminate Translation为Continue Translation,让FME遇到Rejectid要素会继续运行。
- Merge Supplier: 合并提供者,在该模式下可以选择Conflict Resolution(冲突解决模式)。Use Requestor或Use Supplier,即属性发生冲突时使用请求者或提供者的属性。
- Prefix Supplier: 前缀提供者,设置前缀后的提供者属性将与请求者的属性并列。
- Only Use Supplier: 只使用提供者,抛弃请求者的所有属性,只使用提供者的属性。
因为Merged端口只会输出Requestor端口输入的匹配记录,只会展示匹配到的第一条提供者信息,无法展示一对多的数据情况。如果存在一对多的对应关系,并且要将这种对应关系展示出来,那就需要生成列表。
勾选Generate List后需要指定列表名称,和生成列表的属性字段,可选All Attributes(全部字段)或Selected Attributes(选择字段)。
生成列表之后需要通过ListExploder(列表暴露)转换器将列表数据暴露出来。在ListExploder转换器中选择要暴露的列表名称,设置属性合并模式即可。
想了解更多关于FME信息的可以关注一下我的个人博客:蓝线白框
原文:https://www.cnblogs.com/blueline/p/11315831.html