一组几何操作转换器的应用

原文发布时间:2013-07-29

作者:跑

   概述

我们都知道,FME常用的属性关联转换器有Joiner和FeatureMerger。其中前者通过关联一个外部数据库或表实现,后者则运用于一个工作空间的任何位置,且存在两个输入端:REQUESTOR、SUPPLIER。那么,属性关联能否实现几何图形传递,或通常意义所说的图属关联呢。幸运的是,FME提供了现成的一组转换器:GeometryExtractor、GeometryReplacer。我们来看一下,这两个转换器的设置项。

一组几何操作转换器的应用

一组几何操作转换器的应用

第一个参数是几何编码规则,第二个参数为存储该几何图形的字段。如果前一个转换器的结果要被后面的转换器所引用,第一个参数即几何对象编码必须选择一致。

  
        案例

有一个数据包含两部分:项目台账(EXCEL表格)、地块图形,二者是通过一个字段关联的。有了这个前提,我们很容易联想到通过FeatureMerger转换器去实现。那么这里面会有一个疑问,怎么去匹配FeatureMerger的两个输入端?结合项目情况,这里补充几点要求:

1)  输出数据属性结构与台账保持一致;

2)  输出数据为图形,且与台账关系为一对一;

3)  数据本身存在两个问题,关联字段在台账及图形中均存在重复记录、关联字段相同的图形存在共边的多边形且不可执行类似Dissolver消除共享边界的操作。

综上所述,我们可以把项目台账作为REQUESTOR端,相应地把地块图形作为SUPPLIER,并且在图形连接SUPPLIER端之前先行执行Aggregator聚合同属性图形、以及GeometryExtractor提取几何,在随后的COMPLETE输出端GeometryReplacer替换几何。流程如下:

一组几何操作转换器的应用

引申

上例中讲到图属关联,是几何图形向非几何表格的传递,实际应用中可能涉及几何图形之间的传递,此时为避免几何解析错误,可使用GeometryRemover移除其中一个几何。

此外,GeometryExtractor提取几何字段,还可被用于判断图形是否存在重叠。对于单点,这个判断是可靠的;对于线、多边形,这个判断受制于节点连接方向,不是可靠的。