原文发布时间:2014-11-27 09:23:22
原创:小新
邮箱:zhuxx@antu.com.cn
扇出是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的值进行扇出,结果路线下生成的文件如下:
这样就实现了动态设置扇出属性的目的。
这是我想到的方法,你是否有更好的方法呢。
若对文章有疑问,可发送邮件至zhuxx@antu.com.cn提问或讨论。