特色合并
将属性/几何图形从一个要素(或多个要素)复制并合并到另一个要素(或多个要素)。包含所需属性/几何图形的要素通过供应商端口,将接收属性/几何图形的功能通过请求者港口。
当请求者找到供应商时,来自供应商的属性将与请求者合并。如果请求者已经拥有了供应商也拥有的属性,则可以根据参数设置保留或重写该属性的请求者的原始值。一个供应商可以被许多请求者使用。许多供应商可以合并到单个请求者上。
任何合并的几何图形都保留圆弧、椭圆和文本。
当属性名发生冲突时,可以使用冲突解决参数,以及空值是否遵循相同的行为,方法是使用忽略空值参数。
注意:版本说明:在FME 2013和之前的版本中,合并时请求者属性总是比供应商属性更占优势,除了空属性值(由缺少的属性值表示)总是不占优势。
注意:在FME 2014中,请求者属性在合并时总是比供应商属性更占主导地位,包括空属性值(在FME 2014中添加了空支持)。为了使空值不那么占主导地位,建议使用空属性映射器.
注意:在FME 2015及以后的版本中,用户现在可以通过参数选择是请求者属性还是供应商属性更为重要冲突解决.用户现在还可以通过参数选择空值是否与其他属性值一样占主导地位忽略空值.
当在加入表对于请求者和提供者特性都具有相同的值。
输入端口
从连接到供应商港口。
输出端口
与供应商匹配的请求者(或可能的多个供应商,如果处理重复供应商设置为是的)
这样做的请求者不匹配任何供应商。如果加入键为空或缺少请求程序功能,该功能将输出到此端口。
至少由一个请求者找到的供应商。
注意:即使供应商的所有属性都没有合并,也可以通过此端口输出。这可能是因为所有属性都已经存在于请求者中,或者是由以前的供应商提供的。
供应商不匹配任何请求者。如果加入供应商功能上的键为空或丢失,该功能将输出到此端口。
供应商特征相同加入表达式值作为较早的供应商功能。注意,只有当处理重复供应商设置为没有.如果处理重复供应商设置为是的,则将通过参考港口。
参数
变压器
输入特性可以由分组依据参数。如果你有选择的话分组依据属性,则只有当要素共享选定属性的公共值时,才会解析要素之间的引用。
如果你不选择分组依据属性,所有特征一起处理。
如果您有多个读卡器,典型的用法是按读卡器id分组,以确保在正确的功能集中解析引用。
启用此选项时,转换器将假定所有供应商都将在任何请求者之前进入转换器。一旦第一个请求者到达,它将在请求者进入时处理和输出它们。供应商将在处理完所有请求者后输出。
注意:用户有责任确保所有供应商在请求者之前到达。启用此选项时,转换器将在收到其第一个请求者后停止接受供应商。
加入
从请求者功能中指定一个表达式以与供应商功能表达式匹配。表达式可以是常量、属性值、函数或混合物。将从计算表达式中修剪前导和尾随空格字符。当所有请求者表达式的修剪值等于其对应的供应商表达式的修剪值时,将进行匹配。
通常,供应商都有导致与请求者唯一匹配的表达式,任何重复的供应商都会被转换器忽略。但是,如果处理重复供应商参数设置为是的,则表达式与其对应的请求者表达式匹配的所有供应商都将合并到该请求者上。
这个比较模式列指定如何执行请求者和供应商属性值之间的比较。如果自动或数字如果已指定,则将尝试在比较属性值之前将其转换为数字。
合并参数
此参数指定要合并到已完成要素上的内容。选择包括:
- 当合并类型参数是属性只,则供应商属性将被连接到请求者特性的属性。
- 当合并类型参数是几何,则供应商是包含几何图形的特性。请注意,请求者将丢失它以前的几何图形。
- 当合并类型参数是属性和几何,然后来自供应商的几何图形和属性都被连接到请求者特性。请求者上的任何几何图形都将被覆盖。
如果为给定的请求者找到多个供应商,并且处理重复供应商是没有,然后第一个供应商通过重复供应商端口,只有第一个供应商将与请求者匹配。
如果设置为是的,然后根据属性积累模式,并可以选择使用指定的列表名称.使用指定的几何合并类型.
如果此参数设置为是的,任何包含空或缺少联接键的请求程序功能都将立即输出到未合并港口。类似地,任何包含null或丢失连接键的供应商特性都将立即输出到未引用港口。
如果此参数设置为没有,空键和丢失的键被视为空字符串。
指定如何将重复的供应商合并到请求者。它只适用于要素合并类型指定合并几何图形。选择包括:
- 构建多边形:如果供应商只包含多边形和甜甜圈多边形特征,任何共同的边界段将被删除。如果供应商包含至少一个非甜甜圈或非多边形特征,则转换器将从供应商处形成多边形和甜甜圈,并在设置请求者特征的几何形状之前连接供应商特征的连接线段。在这种情况下,如果创建了多个不相交的几何图形,则几何图形可能是一个聚合。
- 构建总量:transformer将创建供应商特性的几何图形的聚合。(如果只有一个供应商特性,那么请求者的几何形状将是一个包含一个元素的聚合。)
- 从点构建线:变压器将供应商的特征点连接成线。注意,在构建行时,所引用的任何非点特性都将被忽略。
当在2D中查看时(忽略Z),一个路径(可能定义一个多边形的边界)可能看起来是关闭的,如下图所示。同样的路径,当在3D中查看时,可能会显示为打开,如下图所示。
要指定如何(以及是否)在3D中关闭路径,请选择列出的模式之一。
模式 | 描述 | 例子 |
---|---|---|
扩展 | 对曲线进行扩展,使所有顶点都保留在其原始位置。 | |
平均 | 没有连接但共享x和y值的后续顶点合并为一个顶点,其Z值为原始两个顶点的平均值。 | |
第一次赢了 | 没有连接但共享x和y值的后续顶点合并为一个顶点,其Z值取自第一个遇到的顶点。 | |
最后赢了 | 没有连接但共享x和y值的后续顶点合并为一个顶点,其Z值取自最后遇到的顶点。 | |
忽略 | Z值被忽略。没有对节点连接的方式进行任何更改。 |
定义一个属性,该属性将存储与该请求者匹配的供应商数量。
属性积累
如果供应商和请求者特征上的属性共享相同的名称,但不是以口蹄疫_,则它们被视为冲突。
合并供应商:请求者特性将保留其自身所有未冲突的属性,并将额外获得供应商特性具有的所有未冲突的属性。此模式将处理基于。的冲突属性冲突解决参数。
前缀供应商:请求者特性将保留它自己的所有属性。此外,请求者将获取反映供应商特性属性的属性,名称前面加上前缀参数。
只使用供应商: requestor特性将删除除几何属性之外的所有属性口蹄疫_.然后,来自一个(任意的)供应商特性的所有属性将被放置到请求者上。
使用请求者:如果发生冲突,将维护请求者的值。
使用供应商:如果发生冲突,供应商的价值将转移到请求者。
没有:像对待其他属性值一样对待空属性值。
是的:将空属性值视为不重要的属性值。当一个空值与一个非空值合并时,不管发生什么情况,非空值都将占上风冲突解决设置为。
注意:注意:空值和其他属性值总是比丢失的属性值占主导地位。即当属性值与丢失的属性值合并时,无论忽略空值和冲突解决设置。
为了防止由于Requestor属性已经存在而忽略Supplier属性,您可以选择指定一个前缀,在将每个Supplier属性添加到Requestor时应用该前缀。
当一个请求者特性有多个供应商特性时,多个供应商属性值被合并到同一个带前缀的属性中。当多个供应商特性具有相同的属性时,通常从这些特性的最后一个特性中获取结果属性值。但是,此过程受忽略空值参数。
生成列表
如果有重复的供应商和a列表名称指定,则与请求者组合的任何供应商都将将其属性添加到请求者的指定列表中。
注意:属性列表不能从Workbench中的输出模式访问,除非首先使用对其进行操作的转换器(例如)对其进行处理ListExploder或ListConcatenator.所有属性列表转换器都显示在“转换器帮助”下的“内容”窗格中列表.另外,AttributeExposer可以使用。
使用说明
与…的关系内联查询器
除非工作流中只需要一个特性合并,否则内联查询器可能是更好的选择。亚搏在线具有多个级联特性合并的旧工作区可能会通过使用单个正确配置的inlinequerier替换特性合并来体验性能改进。
与…的关系sqlcreator/SqlExecutor执行器
如果要查询的所有数据已经存在于SQL能力的数据源中,使用SQLC造饰者或SQLExcExtuor总是更有效,因为这允许数据的查询和过滤在数据库进入FME环境之前由数据库直接执行。
与…的关系细木工
Joiner将输入特性合并到来自单个其他源的特性。因为不止一个连接可以与FeatureMerger的供应商港口,供应商可以来自不同的来源,有不同的归属,并通过设置处理重复供应商到是的,FeatureMerger基本上可以用于执行多表联接。
FeatureMerger还可以使用其合并类型参数。featuremerger在内存中执行所有连接,因此如果在同一数据上有多个关系,那么它可以比joiner更快。
与…的关系ListBasedFeature合并
listbasedfeaturemerge是featuremerge的一个指定用例。如果要加入请求者的列表属性,则应使用它。
与…的关系匹配器
火柴,通过它单配输出端口,能够以几何图形为关键进行多特征合并。这补充了featuremerger,它只接受属性而不接受几何体作为键。
例子
编辑变压器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来指定变压器参数。一些转换器中还提供了更高级的功能,如高级编辑器和算术编辑器。要访问这些选项的菜单,请单击在适用参数旁边。有关详细信息,请参见变压器参数菜单选项.
变压器类别
搜索FME知识中心
在上搜索有关此转换器的示例和信息FME知识中心.
标签关键词:连接外键标记交叉引用“交叉引用”功能合并引用求解器