FeatureMerger转换器使用介绍

时间:2024-03-23 09:10:51

原文发布时间:2010-08-17

作者:毛毛虫

FeatureMerger转换器的功能是把一个要素的属性合并到另一个要素上。通过SUPPLIER端口进入到转换器的要素用来作为通过REQUESTOR端口输入的要素的新的属性。当连接属性具有相同的值时,REQUESTOR要素被连接到SUPPLIER要素。

当一个REQUESTOR找到一个SUPPLIER,来自SUPPLIER的属性被合并到REQUESTOR。如果REQUESTOR已经有了SUPPLIER的属性,保持REQUESTOR原有的属性。一个SUPPLIER可能用于多个REQUESTOR

REQUESTOR找到一个SUPPLIER,并在COMPLETE端口输出。

REQUESTOR没有找到一个SUPPLIER,并在INCOMPLETE端口输出。

至少找到一个与REQUESTOR匹配的SUPPLIERREFERENCED端口输出,没有跟任何一个REQUESTOR匹配的SUPPLIERUNREFERENCED端口输出。 

把属性/几何移动到另一个要素。包含了需要的属性/几何的要素可以通过SUPPLIER端口输入,接受属性/几何的要素通过REQUESTOR端口输入。 

Requestor端口找到一个Supplier端口匹配的要素,从Supplier端口的属性会被合并到Requestor的相应要素。如果Requestor已经有了Supplier端口要素相应的属性,Requestor的对这个属性的原始值会被保留。单个Supplier可能用于许多Requestors端口的要素。

当他们接受Join属性有相同的值是,Requestor 要素被连接到Supplier要素。各个端口的关系是:

REFERENCED+ UNREFERENCED+ DUPLICATE_SUPPLIER = Suppliers

COMPLETE+INCOMPLETE+EMPTY= REQUESTOR


转换器属性如下:

FeatureMerger转换器使用介绍

FeatureMerger转换器使用介绍

为了说明各个选项的含义,下面举例说明:

原始图形Suppliers端口(共七个图形,其中两个图形位于其他图形内部,是重叠但没有构成洞):

FeatureMerger转换器使用介绍

REQUESTOR端口的输入图形(共39个要素):

图片已丢失


当转换器设置如下时:

FeatureMerger转换器使用介绍


其中Suppliers_count 值从06REQUESTOR_count038,执行后的输出如下:

FeatureMerger转换器使用介绍


COMPLETE端口输出的图形是REQUESTOR输入的与SUPPLIER匹配的图形,除了保持了原来的属性外,又增加了原来没有的SUPPLIER的属性(如果原有属性与SUPPLIER有相同的,保留原属性)。
如果转换器设置如下(其中Supplierslayer值都为1REQUESTOR_count038):
FeatureMerger转换器使用介绍

运行后的输出如下:

FeatureMerger转换器使用介绍

如果Process Duplicate Suppliers设置为Yes,则输出如下:

FeatureMerger转换器使用介绍

输出的REQUESTOR端口的输入的_count值为1的要素会包含所有SUPPLIER输入的要素的它自身没有的属性,如果与SUPPLIER输入的要素属性重复,则保留自身的属性。

当一个REQUESTOR对应多个SUPPLIER时,如果List Name设置了值,则输出一个含有所有SUPPLIER输入的要素属性的列表,并且不管Process Duplicate Suppliers是否设置了值,都自动按设置为Yes处理。

如果把Build Incomplete Requestors 设置为Yes,同时把Process Duplicate Suppliers设置为Yes,则输出如下图所示:

FeatureMerger转换器使用介绍


不管Requestor是否找到匹配要素,都在COMPLETE端口输出。

上面的设置是把与从Supplier端口输入的要素的属性添加到匹配的Requestor要素的属性上。

如果把Merge Type设置为Build PolygonsBuild Aggregates,则在COMPLETE端口输出的几何图形变为与Requestor端口输入匹配的几何图形。如果REQUESTOR端口的输入一个要素与多个SUPPLIER输入的要素的属性匹配,并且Process Duplicate Suppliers设置为Yes,这两个Merge Type选项都会把COMPLETE端口输出的一对多的图形自动聚合。这两个选项的区别是:当设置为Build Polygons,会自动生成洞,如图:

FeatureMerger转换器使用介绍


当设置为Build Aggregates,则不会自动生成洞,保留原图形,如图:

FeatureMerger转换器使用介绍


Merge Type设置为Build Incomplete Requestors,如果Supplier端口输入的是点,会在COMPLETE输出端口把匹配同一REQUESTOR要素的点连接成线。

如图:输入到Supplier的要素如下图:

FeatureMerger转换器使用介绍


COMPLETE输出端口的输出结果如下图:

FeatureMerger转换器使用介绍


Merge Type的下面几个Attributes and Geometry选项,是上面提到的Attributes Geometry的组合。

 

注意:如果在输入Supplier端口没有数据Join Attribute属性的要素不输出。