基于组和基于要素的转换FME 函数使用下面两种基本方法中一种对数据进行转换—基于要素或基于组。基于要素的转换在这种转换方法中,一个函数在要素的基础上转换数据。一次只处理一个单一的要素,并且转换结果不会影响到其它要素的转换结果。一般来说,相同数目的要素来自输入的函数。下面是有关基于要素的转换例子…? Measurements ——一次只计算一个要素的长度和面积,并且,不会影响到其它要素的长度和面积。? Line Generalization ——依次缩编每个线性要素,并且不必参考周围的要素。? Centre of Gravity Calculations ——FME 计算一个面积要素的“重心”(地理中心),并且,每个计算计算都是唯一的,不依赖于其他的要素。上图:重心的计算对于传统的计算法,一些缩编功能在对一个要素进行处理时,会影响到其它的要素,但是,FME 则只会减少点的数目。基于组的转换对于这种转换方法,函数会处理一组要素。在进行转换之前,所有的要素就会被合并为一组,并且每个要素都会直接影响到其它要素的转换结果。使用这种转换方法,转换后函数的要素数目很有可能不同于输入的要素数目。下面是有关基于组的转换的一些例子…? Polygon Creation – 当一组点组成一个封闭的形状时,FEM 就会创建一个多边形要素。线类要素就会合并,产生一个单一的面类要素。? Statistics Calculation –StatisticsCalculator 为一组要素计算属性的平均值,最大以及最小值。? Intersections – 计算一条线上的插入点一定要使用这种方法,这是因为每个输入要素都会影响到输出要素。上图:插入点的处理将要素概念/基于组的转换和几何/属性转换结合起来,就能创建一个矩形,来表示每种类型的转换 例如,AreaBuilder 就是一个有关基于组,几何转换的函数。浏览 Workbench Transformer Gallery ,就可以找到其他的例子。 进行成组操作默认地,一个基于组的函数会将所有经过它的要素编成一组,但是,许多情况下,要求有选择地将要素编成组。为了满足这一要求,许多函数都有一个选项—Group-By。Group-By 选项允许对数据的属性进行选择。在开始转换之前,首先将相同属性值得要素归为一组。 上图:使用 LineOnLineOverlayer 函数,将大量线性要素进行交叉。选择“name”作为 Group-By 属性。结果就是,每组中含有相同值“name”的要素被其他组所取代。有用的输出就是,只有同名的线类要素才会相交形成交叉线。 例 4:进行成组操作例 1,2...