FME2016.1新特性:Junctions和Tunnels

原文发布时间:2017/1/6  10:59:48

嗨,FME的用户们,
        我知道你们对fme2016.1的新功能有很多的期待,现在我希望你们能够下载试用它。
        在界面中,最重要的新增项就是:junctions和hidden connections(又名 tunnels)。
        在World Tour和社交媒体上我们已经谈论了很多这两个添加项的内容,它们的设计是如此简单,即使是刚开始接触FME的用户也能使用它们。但是,这里我要再次阐述它们。因为,可能有些人找不到这些应用,并且,有些特定的应用案例还没有涉及到。此外,还需要解释的一点是,“hidden connection(隐藏连接)”和“tunnels(隧道)”并不完全相同。

junctions
        Junctions非常简单。一个junction就是一个迷你转换器,它不实现任何操作,只是将散乱的连接线合并到一起。
也就是,比如,我有如下的工作空间:
 FME2016.1新特性:Junctions和Tunnels
 
        注意,连接到转换器AffineWarper:Observed端口的连接线相互压盖,非常难看。我们可以把转换器AffineWarper往画布下方移动,此时,进入Control端口的连接线也会变得同样地凌乱。如果我使用一个junction,就可以轻松解决上述问题:
 FME2016.1新特性:Junctions和Tunnels
 
        如我所说,这是将散乱的连接线组织到一起的一个方式。但是,要如何添加这个神奇的junction呢?其实非常简单。因为一个junction就是一个转换器(虽然它比较小),你可以通过快速添加或转换器库来添加它。
 FME2016.1新特性:Junctions和Tunnels
 
        此外,你可以右键点击一个已有的连接,选择“插入Junction”:
 FME2016.1新特性:Junctions和Tunnels
 
        还有一个快捷键(Ctrl+Shift+J)可以添加该转换器。通过添加junction,我们就不用再担心出现压盖的连接线了。后面我们会看到,即使不可避免地出现压盖的连接线,我们也可以通过隐藏连接(hidden connections),使界面变得整洁。

Hidden Connections
        我们都曾有过这样的工作空间:一个或多个长连接线穿越画布中心。通常,在模板中,一个部分会作为其他多个部分的输入,比如:
 FME2016.1新特性:Junctions和Tunnels
 
       对于这种结构,我们无法通过重新组织转换器,来避免连接线的压盖。在2016.1里,当我们无法避免连接线压盖的情况时,可以通过隐藏连接线来整理工作空间:
FME2016.1新特性:Junctions和Tunnels
  
       实现上述功能,仅需要右击连接线,选择“Hide”选项。然后连接线就变得不可见了。但是,如何知道这里有一个连接线,以及如何把它们显示出来呢?
       好了,你可以根据连接线端点处的小标志 来识别:
 FME2016.1新特性:Junctions和Tunnels
 
        点击转换器(或要素类),就可以看见隐藏的连接线:
 FME2016.1新特性:Junctions和Tunnels
 
       右击转换器(或要素类),选择“Show Connections”,就又可以将所有的连接线显示出来。
       因此,现在你可以使用junction来处理压盖的连接线,然后隐藏那些无法避免压盖的连接线。同时,我们有必要讨论一下“tunnels”,它是上述两个功能的集合体。

Tunnels
        隐藏连接线的问题是,即使给了小标志来做标识,也不容易将这些连接线找到。并且,如果你不将它们显示出来,就无法操作或编辑它们。因此,我们将hidden connections和junctions结合起来,形成一个名为tunnel的工具。
       如你所见,连接线不仅有Hide的选项,也有创建tunnel的选项:
 FME2016.1新特性:Junctions和Tunnels
 
       什么是tunnel呢?如下:
 FME2016.1新特性:Junctions和Tunnels
 
        一个tunnel就是Junction/Hidden-Connection/Junction的组合!
        注意,上图中有一个隐藏的连接线,连接线的端点处都有一个junction。现在,我可以移动junction来操作隐藏的连接线,并且,junction和注释能够更好地将连接线的起始位置表示出来。
         你可以选择只隐藏连接线,或者通过tunnels隐藏。在某些情况下,可能两者都需要使用。

具体使用案例
        首先,看一个简单的使用案例:将工作空间中的所有错误指向一个单一的输出。如下:
 FME2016.1新特性:Junctions和Tunnels
 
       错误发生的位置可能会在界面的各个地方。如果我直接将这些错误连接到一个Logger转换器上,也就是工作空间的右下角,那么,连接线将穿过整个屏幕。为解决此问题,我可以将所有的连接线隐藏起来,然后将Logger转换器放在我想要放置的地方:
 FME2016.1新特性:Junctions和Tunnels
 
       在这个例子中,无论我使用tunnels还是hidden connections,都没有太大的差别。但是,当有多个连接线出现在同一个端口时,就有所不同了。看下面的例子:
 FME2016.1新特性:Junctions和Tunnels
 
       这里,我将连接线隐藏了起来,但是,该连接线是什么并不清楚。当我使用tunnel时,情况就变得清晰了:
 FME2016.1新特性:Junctions和Tunnels
 
        所以,就我而言,你需要把hidden connections和tunnels作为不同的方法,然后考虑哪种是你需要的。

总结
        上面所述就是junctions和tunnels。顺便说一句,我们确实在某一刻有考虑将它们称为“虫洞”(或某位用户建议的“Einstein-Rosen桥”),但是我们意识到并不是每个FME用户都是广义相对论的迷弟或迷妹。
        无论如何,如果你已经阅读了这篇文章,谢谢你,也感谢你阅读我的文章。这是我的第一百五十篇博客,我希望这些文章能够对你们有所帮助。
 FME2016.1新特性:Junctions和Tunnels

原文地址:http://blog.safe.com/2016/05/fmeevangelist150/