使用FME进行dwg数据处理,在输出数据时,需要设置dwg模板文件,才能正确保留图形样式。但是在进行批量处理时,如果没有一个涵盖所有dwg数据样式的模板文件时,会导致出现某些数据样式丢失的问题。本文给大家介绍使用WorkspaceRunner转换器来解决这个问题,下面先看实现效果。关注薇信工众号:“GIS工具乐园”,回复“FME”,获取模板及示例数据下载链接。
本文案例视频讲解及模板数据下载☛ :【视频教程】巧用WorkspaceRunner转换器
一、实现效果
1.原数据情况
我们先来看看原数据,这里准备了2个dwg数据,每个dwg中的图形是不一样的,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/6e449788a136726bb3f4648876f7514a.png)
图1 原数据情况
2.常规方法输出效果
通过下图可以看到,采用常规的输出方法,即在写模板中直接指定读模块的参数文件为模板文件(PS:设置方法见下文),运用此法,只实现其中一个dwg数据的样式保留,而另一个dwg数据的样式则丢失了,甚至点状符号直接看不见了。
![](https://i-blog.csdnimg.cn/blog_migrate/2f573081b1763762deb2c571194f72ec.png)
图2 常规方法输出效果
3.运用WorkspaceRunner转换器嵌套调用的输出效果
通过下图可以看到,运用WorkspaceRunner转换器之后,两个dwg均实现了样式还原保留,前面图2中“1.dwg”丢失的点状符号也出来了。
![](https://i-blog.csdnimg.cn/blog_migrate/69e9599c8dcc53bef47014f31aedb716.png)
图3 新方法输出效果
二、实现方法
1.常规方法
常规的输出dwg方法如下图,在写模块中指定dwg模板文件,可以直接指定模板文件路径或者使用dwg读模板的源数据路径参数。此方法的实现效果见图2,输出dwg后,部分数据会出现样式丢失,不能达到我们需要的理想效果。
![](https://i-blog.csdnimg.cn/blog_migrate/2a914d764cbe8bb3d5a945eebcadaf58.png)
图4 常规方法
2.运用WorkspaceRunner转换器进行嵌套调用方法
使用嵌套调用方法,首先要按照步骤1的常规方法,制作一个“执行子模板”,然后新建一个母模板,在母模板中使用WorkspaceRunner转换器去调用“执行子模板”,即套一个壳进行嵌套调用。使得每一个dwg单独执行一次,即调用的dwg模板文件与输出的dwg数据一 一对应,如下图所示。
![](https://i-blog.csdnimg.cn/blog_migrate/416da68f5e3544bd1cf71aab49d1129b.png)
图5 母模板嵌套调用方法
☛ 视频教程推荐 ☚
三、总结
在本案例中以dwg的批量处理为例,其他有类型情况的功能需求也可以参照本案例进行操作。关注微行公众号:“GIS工具乐园”,持续更新FME开发技巧分享哦。
☟ 往期推荐 ☟