如何动态设置属性进行扇出

原文发布时间:2014-11-27 09:23:22

原创:小新

工作空间以及数据下载

邮箱:[email protected]

扇出是FME中很常用的一个功能,尤其在批量输出图层或数据文件时,能够根据用户的设置自动生成对应的图层或文件。通常我们是根据固定的属性进行扇出,得到需要的结果,如果希望扇出的时候,可以选择属性进行扇出,如何实现呢?

好像是从FME2013开始在发布参数类型中增加了“Attribute Name”这个类型,平时用得很少,遇到这个问题的时候,想着也许用它能实现,也确实做到了,分享一下这个过程。

数据情况:Park.tab。这个数据包含一些属性,如DogPark,ParkID等,制作一个模板,将这个文件按照用户选择的属性进行扇出,满足用户不同时间段的需求。

1、 添加读模块,读取数据:

2、 创建一个“Attribute Name”类型的发布参数,命名为fanout_name:

3、 在工作空间中,使用ParameterFetcher,获取参数fanout_name的值

注意:fanout_name参数中存储的是字段名称,所以通过ParameterFetcher后,在attributename这个属性中存储的值是字段名称,而不是这个字段对应的值,所以需要把这个字段中存储的值取得才能正确的扇出。

这里用文字描述有一点费劲,建议大家做到这步输出到viewer中看看attributename这个属性的值就明白了。

             4.使用AttributeDereferencer取值,参数设置如下:

经过这个步骤后,attributevalue的值就是用户选择的字段对应的值了。

             5.添加写模块,根据attributevalue进行扇出,别忘了copy源数据的属性。

6、 保存模板后运行,可以选择扇出的属性:

(1).选择DogPark,将根据DogPark的值进行扇出,结果路径下生成的文件如下:

(2) 选择ParkID,将根据ParkID的值进行扇出,结果路线下生成的文件如下:

这样就实现了动态设置扇出属性的目的。

这是我想到的方法,你是否有更好的方法呢。

若对文章有疑问,可发送邮件至[email protected]提问或讨论。

猜你喜欢

转载自blog.csdn.net/fmechina/article/details/81353266