FeatureMerger
从一个特性(或多个特性)复制和合并属性/几何图形到另一个特性(或多个特性)。包含所需属性/几何图形的要素通过供应商端口和功能,将接收的属性/几何通过连接请求者端口。
当请求者找到供应商时,来自供应商的属性将与请求者合并。如果请求者已经拥有了供应商也拥有的属性,则可以根据参数设置保留或重写该属性的请求者的原始值。一个供应商可以被许多请求者使用。许多供应商可以合并到单个请求者上。
任何合并的几何图形都保留圆弧、椭圆和文本。
当属性名称冲突,您可以选择是否请求方或供应商的属性值是通过使用维护冲突解决参数,NULL值是否通过使用遵循同样的行为忽略空值参数。
注:在2013年和之前的FME中,合并时,请求者属性总是比供应商属性占主导地位,除了空属性值(用缺失的属性值表示),空属性值总是不那么占主导地位。
注:在FME 2014中,请求者属性在合并时总是比供应商属性更占主导地位,包括空属性值(在FME 2014中添加了空支持)。为了使空值不那么占主导地位,建议使用NullAttributeMapper。
注:在FME 2015及以后的版本中,用户现在可以通过参数选择是请求者属性还是供应商属性更为重要冲突解决。用户现在还可以通过参数选择空值是否像其他属性值一样占主导地位忽略空值。
当在指定的每对密钥(其支持表达式)请求者设有匹配供应商的特征加入在表对于请求者和提供者特性都具有相同的值。
输入端口
接收来自连接到所述的特征的新的属性/几何供应商端口。
通过请求者端口。
注意,通过设置处理重复供应商到是,一个以上的供应商可能会合并为每个请求。这些供应商可能会来自不同的来源(如不同的数据库表)。查看关系DatabaseJoiner本文件末尾的章节。
输出端口
匹配一个供应商的请求者(或者可能的多个供应商,如果处理重复供应商设定为是)。
请求者是做不匹配任何供应商。如果一个加入在关键是空或缺少请求程序的功能,该功能是输出到这个端口。
由至少一个请求者找到供应商。
注:即使供应商的所有属性都没有合并,也可以通过此端口输出。这可能是因为所有属性都已经存在于请求者中,或者是由以前的供应商提供的。
供应商说做不匹配任何请求者。如果一个加入在关键是空或丢失对供应商的功能,该功能是输出到这个端口。
如果处理重复供应商是不,然后重复的供应商将被拒绝。如果拒绝空键和缺少的键是是,则将拒绝无键功能。
参数
变压器
输入特性可以通过通过...分组参数。如果你有选择的话通过...分组属性,那么功能之间的引用,如果它们共享所选属性的共同的价值才会得到解决。
如果你不选择通过...分组属性,所有特征一起处理。
如果你有一个以上的读者,一个典型应用是通过reader_id组,以确保引用正确的功能集内解决。
启用此选项时,转换器将假定所有供应商都将在任何请求者之前进入转换器。一旦第一个请求者到达,它将在请求者进入时处理和输出它们。供应商将在处理完所有请求者后输出。
注:确保所有供应商在请求者之前到达是用户的责任。当启用此选项时,transformer将在收到第一个请求者时停止接受供应商。
加入在
从请求者功能中指定一个表达式以与供应商功能表达式匹配。表达式可以是常量、属性值、函数或混合物。将从计算表达式中修剪前导和尾随空格字符。当所有请求者表达式的修剪值等于其对应的供应商表达式的修剪值时,将进行匹配。
通常,所有的供应商都有导致与请求者唯一匹配的表达式,任何重复的供应商都会被转换器忽略。然而,如果处理重复供应商参数设置为是,则表达式与其对应的请求者表达式匹配的所有供应商都将合并到该请求者上。
这个比较模式列指定如何执行请求者和供应商属性值之间的比较。如果自动或数字被指定,将尝试进行比较之前对属性值转换为数字。
合并参数
此参数指定要合并到完成的功能部件上的内容。的选择是:
- 当。。。的时候合并类型参数是属性只,则供应商属性将被连接到请求者特性的属性。
- 当。。。的时候合并类型参数是几何,那么供应商是包含几何特征。请注意,请求方将失去其原来的几何形状。
- 当。。。的时候合并类型参数是属性和几何,然后将来自供应商的几何图形和属性连接到请求者特征。请求者上的任何几何体都将被覆盖。
如果找到一个给定的请求者不止一个供应商,并处理重复供应商是不,然后第一个供应商通过<拒绝>端口,只有第一个供应商将与一个请求者匹配。
如果设置为是,则重复的供应商都与相应的请求者匹配,并基于属性积累模式,并且可选地输出作为请求程序的属性列表,使用指定的列表名称. 使用指定的几何合并类型。
如果将此参数设置为是,包含空或丢失的任何请求或供应商的功能连接键会通过立即输出<拒绝>端口。
如果将此参数设置为不,空键和丢失的键被视为空字符串。
指定如何重复的供应商合并到请求者。它仅适用功能合并类型指定合并几何图形。的选择是:
- 构建多边形:如果供应商仅仅由多边形和圆环面要素,任何共同边界段将被删除。如果供应商含有至少一个非环形或非多边形特征,则该变压器将形成从供应商的多边形和甜甜圈和将加入供应商连接线段设定请求程序特征的几何形状之前的功能。在这种情况下,几何形状可以是集合如果创建了几个不相交的几何形状。
- 构建骨料:变压器将创建的供应商特征的几何形状的集合。(如果只有一个供应商的特征,则该请求者几何形状将是与一个元件的集合体。)
- 从点构建线:变压器将供应商特征点连接成线。注意,在构建行时,所引用的任何非点特性都将被忽略。
当在2D(忽略Z)观察时,(其可以定义多边形的边界)的路径可能似乎被封闭,示于下面的左图。此相同的路径,在三维观看时,可能会出现如下面右图是打开的。
指定如何(和如果)路径应在三维被关闭,选择所列出的模式中的一个。
模式 | 描述 | 例子 |
---|---|---|
延伸 | 曲线进行扩展,使得所有的顶点在其原始位置离开。 | |
平均 | 未连接但共享x和y值的后续顶点将合并为一个顶点,其Z值是原始两个顶点的平均值。 | |
第一场胜利 | 未连接,而是共享的x和y值的后续顶点被组合成一个顶点,其Z值从第一个遇到的顶点采取。 | |
最后的胜利 | 未连接但共享x和y值的后续顶点合并为一个顶点,其Z值取自最后遇到的顶点。 | |
忽视 | 忽略Z值。节点的连接方式没有改变。 |
定义一个属性,该属性将存储与该请求者匹配的供应商数量。
属性积累
如果供应商和请求者特征上的属性共享相同的名称,但不是以fme_,则它们被视为冲突。
合并供应商:请求者功能将保留自己所有的未发生冲突的属性,而将另外获得任何未冲突的属性,该供应商的功能了。这种模式将处理基础上的冲突属性冲突解决参数。
供应商的前缀:请求程序功能将保留其自身的所有属性。此外,请求者将获取反映供应商特性属性的属性,名称以前缀参数。
仅使用供应商:除了以fme_. 然后,来自一个(任意)供应商特性的所有属性都将被放置到请求者上。
使用请求者:如果发生冲突,将维护请求者值。
使用供应商:如果发生冲突,供应商的值将被转印到请求者。
不:把空的属性值像其他的属性值。
是:将空属性值视为比其他属性值更不重要的值。当空值与非空值合并时,无论冲突解决设置为。
注:空值和其他属性值总是比丢失的属性值占主导地位。也就是说,当一个属性值与一个丢失的属性值合并时,无论忽略空值和冲突解决设置。
为了防止被忽略,因为请求者属性已经存在一个供应商的属性,可以选择指定时,它被添加给请求将被应用到每个供应商属性的前缀。
当一个请求者特征有多个供应商特征时,多个供应商属性值将合并到同一个前缀属性中。当多个供应商特性具有相同的属性时,通常从这些特性的最后一个中获取结果属性值。但是,此过程由忽略空值参数。
生成列表
如果有重复的供应商和a列表名称被指定,那么相结合,与请求程序的任何供应商将纷纷加入到对请求者指定列表及其属性。
注:列表属性不从工作台的输出模式访问的,除非它们正在使用对它们进行操作的变压器,例如第一处理监听器或ListConcatenator. 所有列表属性transformers都显示在Transformer帮助的目录窗格中清单. 或者,属性Exposer可以使用。
使用注意事项
与…的关系InlineQuerier
InlineQuerier是FeatureMerger的强大近亲。FeatureMerger连接两个数据集,并使用简单的单个属性键来匹配特性,而InlineQuerier则允许合并任意数量的输入数据集,使用SQL跨任意数量的表和列。此外,InlineQuerier允许其输入数据在单个转换器中多次重用,而如果要使用一个FeatureMerger进行多个连接,则必须使用多个FeatureMerger,并向每个转换器发送特性的副本。另一方面,对于InlineQuerier来说,加载底层SQLite数据库会有一些开销。使用一个InlineQuerier而不是几个FeatureMergers也可以简化工作空间。
除非工作流中只需要一个特性合并,否则内联查询器可能是更好的选择。具有多个级联特性合并的旧工作区可能会亚搏在线通过使用单个正确配置的InlineQuerier替换特性合并来体验性能改进。
与…的关系SQLCreator/SQLExecutor
如果要查询的所有数据已经存在于一个支持sql的数据源中,那么使用SQLCreator或SQLExecutor总是更有效,因为这允许数据库在数据进入FME环境之前直接执行查询和过滤。
与…的关系DatabaseJoiner
所述DatabaseJoiner合并输入功能特征从单个其他源。由于多个连接,可向FeatureMerger的进行供应商港口,供应商可以来自不同的来源,有不同的归属,并通过设置处理重复供应商到是,FeatureMerger基本上可以用于执行多表联接。
该FeatureMerger也能使用在呼入功能进行一定的几何操作其合并类型参数。FeatureMerger确实在内存中的所有连接,以便它可以比DatabaseJoiner更快,如果你有相同的数据不止一个关系。
与…的关系ListBasedFeature合并
该ListBasedFeatureMerger是FeatureMerger的指定使用情况。如果你想加入请求者的列表属性,它也应该使用。
与…的关系匹配器
匹配器,通过其单配输出端口,能够以几何图形为键进行多特征合并。这是对FeatureMerger的补充,后者只接受属性,而不接受作为键的几何图形。
例子
编辑变压器参数
使用一组菜单选项,可以通过引用工作区中的其他元素来指定变压器参数。一些转换器中还提供了更高级的功能,如高级编辑器和算术编辑器。要访问这些选项的菜单,请单击在适用参数旁边。有关详细信息,请参见变压器参数菜单选项。
变压器类别
搜索FME知识中心
搜索样品和有关该变压器的FME知识中心。
标签关键词:连接外键标记交叉引用“交叉引用”功能合并引用求解器