斯潘8
斯潘4
在上一个示例,我们学习了如何使用功能类型fanout创建文件夹。在这个例子中,我们将专注于通过使用kml id和kml父属性创建文件夹。这种方法最适合在需要对文件夹命名和父子关系进行直接控制的情况下,尽可能深地控制这些级别。换言之,此方法用于创建自定义文件夹层次结构。
不确定什么文件夹?没问题!kml文件夹定义了GoogleEarthPlaces窗格中的嵌套树结构。看看这篇文章按功能类型fanout创建kml文件夹为了一个完整的定义。
类似于特征类型扇出方法,这些创建文件夹的方法用于kml,而不是kmz(压缩的kml文件)。
我们可以通过kml id分两部分创建kml文件夹:通过创建文件夹结构,然后通过创建文件夹元素,并使用kml_父属性将我们的所有功能与其相应的文件夹关联起来。
对于这个例子,我们将使用温哥华快速中转站的csv文件。而不是在kml上有一个庞大的站点列表,将传奇放在谷歌地球上,我们想把它组织成一个文件夹层次结构。我们可以通过火车线将车站分隔开来,然后将市区车站与加拿大线分开,如下结构:
kml id使用三级文件夹设置文件夹。这是我们将在示例中使用的文件结构。父级为列车进路。它有三个孩子:联系,博览会,卡那达林。加拿大行有自己的子文件夹,市中心。
要创建空文件夹结构,我们将首先使用造物主Transformer以创建空几何体对象。删除创建实例属性“创建实例”。您可以将所有其他参数保留为默认值。
我们要用一个属性创建器Transformer创建每个文件夹。换句话说,如果我想要五个文件夹,我将使用五个属性创建器。每个attributeCreator都将连接到创建者。参考上述文件结构的图像,我们先创建父文件夹。用以下属性和值填写变压器参数:
新属性 | 属性值 |
KMLYID | 列车路线 |
KMLIN名称 | 列车进路 |
KMLL文档 | 运输 |
这是我们的父文件夹,我们将其命名为火车路线(kml_名称)。请注意,kml_id没有任何空格。我们这样做是为了减少以后在需要将数据关联到此文件夹时出错的可能性。我们将通过将数据与所需文件夹的kml_id关联,将数据放入这些文件夹中。我们需要知道空间和区分大小写因为如果我们有错误的ID,我们的数据就不会进入正确的文件夹!
这里最后要指出的是国民党的文件。通常,从数据集读取时,kml_文档默认设置为fme_basename(源数据文件名)。然而,使用创建者时,我们需要设置kml_文件。在这里,如果我们想将所有随后的attributeCreators写入相同的kml文件名,那么将其设置为相同的kml_文档名是非常重要的。kml_文档的名称也必须与您要写出的文件的名称相同。使用与文件名不同的文档名标记的文件夹和数据将不会写入该文件。
kml_文档在attributeCreator参数中命名为“transportation”。
稍后我们将连接一个编写器,并命名kml文件,“运输”。
高级用户注意:这意味着通过控制你所命名的kml_文件,您可以使用相同的工作区写出不同的kml文件。例如,如果我想要一份叫做土豆的外线文件,我会在属性创建器中命名kml_文件“土豆”,我会得到一个空文件夹,名为potates.kml,除了我在工作区写的内容。只需确保您的数据也被写入所需的文件夹和kml_文档名。
我们现在使用另外三个属性创建器创建下一级文件夹。我们要创建文件夹:connection,博览会,和加拿大线。好吧,你难住我了!对于你们这些熟悉温哥华的人,没有称为连接的线路。这只是我为海滨站划分的一个类别,它连接了这个数据集中的两条火车线。
让我们将一个新的attributeCreator连接到创建者。像下面的文件夹一样,填写第一个变压器,连接:
新属性 | 属性值 |
KML-亲本 | 列车路线 |
KMLYID | 连接 |
KMLIN名称 | 连接 |
KMLL文档 | 运输 |
注意,这里有一个新的属性,叫做kml_parent。这种分配父文件夹的方法就是创建层次结构的方法。将此attributeCreator复制两次(选择Transformer并单击ctrl-d),然后对其进行以下更改:
attributeCreator重复1:
attributeCreator重复2:
对于这些文件夹,kml_父级将保持不变,因为所有这些文件夹都处于同一级别。kml_文档也将保持不变,以便我们将整个文件夹层次结构写入相同的kml文件。将新的属性创建者连接到创建者。
复制最后一个attributeCreator并将其附加到创建者。这是文件夹加拿大行的子文件夹。对变压器参数进行以下更改:
属性kml_document将不会更改。
文件夹的参数,“闹市区”。此文件夹是Canadaline文件夹的子文件夹。
为Google KML格式添加一个编写器。设置数据集路径,并将“功能类型定义”设置为自动的.按OK,在下一个对话中,命名“功能类型名称”,文件夹.此功能类型必须命名为“文件夹”,以便Google Earth识别您的文件夹结构。单击确定。现在运行工作区并检查GoogleEarth中的输出,以查看您是否创建了所需的文件夹结构。
GoogleEarth中显示的输出文件夹结构放置图例。
已完成部分创建空文件夹结构的工作区。
既然我们有了文件夹结构,我们可以将数据添加到这些文件夹中。
在与A部分相同的工作区中,读取csv文件rapid_train_stations.csv。按“确定”之前,将坐标系设置为UTM84-10N。下一步,进入参数并将属性定义设置为手册.将X设置为X轴坐标,Y设置为Y轴坐标。
下一步,我们将使用测试过滤器要按火车线和最后一个文件夹过滤数据,属于加拿大线路的市中心车站。我们希望以设置文件夹的相同方式筛选数据,以便将数据与正确的文件夹相关联。如下表所示填写参数:
试验条件 | 输出端口 | |
如果 | 线路=连接 | 连接 |
否则 | 线=世博会 | 博览会 |
否则如果 | 工作站包含Vancouer或 | |
车站有雅勒敦 | 市中心 | |
否则 |
|
卡那达林 |
除了海滨,我们将其归类为联系,加拿大线上只有另外两个车站我们认为是市中心的一部分:雅勒敦圆屋和温哥华市中心车站。利用这些信息,我们正在筛选出市中心的站点,条件是站点名称包含我们要查找的部分站点(关键词:温哥华和亚勒敦)。
7。为每条列车线的车站设置父文件夹
将新的attributeCreator添加到testfilter的连接输出端口。在这一步骤中,我们正在将kml父文件夹设置为数据,并为站点提供一个默认情况下将在Google kml中显示的ID名称。
我们将把kml_父级设置到相应的文件夹(连接端口有kml_父级:连接,世博会有一个kml_的父母:世博会,市中心有一个国民党的家长:市中心,加拿大生产线有一个kml_的父母:Canadaline)。我们使用文件夹的kml_id作为kml_父级。记住,我们没有在kml_id中使用任何空格。下面是连接到testfilter的连接输出端口的attributeCreator的参数。
新属性 | 属性值 |
KML-亲本 | 连接 |
KMLYID | 车站 |
对于这里的国民党,我们在所有四个属性创建器中将其设置为属性“station”。此属性包含火车站名称。同样的做法也适用于与世博会和卡纳达林有关的自然资源创造者,使用各自的kml_父ID。
连接到testfilter的attributeCreator带有显示其各自参数的注释。
在我们工作区的这一点上,我们所有的文件夹现在都有数据。在这一步骤中,我们通过设置图标和图标颜色的可视化来设计我们的站点。添加四KMSTYSTER到工作区,并将一个附加到步骤7中的每个attributeCreator。
随意设置图标和图标颜色。我已选择使用图标名称:GME/GXRY钢轨以及连接的洋红色,黄色代表世博会,绿松石代表卡纳达林,市区的两个车站是橙色的。
如果我们现在运行工作区,我们会发现我们所有的电台都是用大写字母写的。为了让这个看起来更好,我们将把我们所有的KMLStyler连接到一个KML属性发送器变压器。在变压器参数中,在节导航树中打开“name”的文本编辑器。双击全酶在字符串函数和车站在FME特征属性中。我们的字符串应该如下所示:
@全文数据库(@value(station))
这个字符串函数将把我们的站点名转换成标题大小写。
最后,写下我们的KML,右键单击并插入一个编写器功能类型,并将其连接到kmlpropertySetter的输出端口。命名功能类型,地名标注.运行工作区。
KML结果显示在Google Earth中。火车站按文件夹进行颜色编码,并显示所代表的车站名称。
生成的文件夹显示在谷歌地球的“位置”面板中。
祝贺你!您已经成功学习了如何使用kml_id和kml_父属性创建自定义文件夹。这里的关键是首先使用创建者创建文件夹结构,然后将数据放入这些文件夹。与特征扇出法相比,此方法允许您直接控制创建所需的子文件夹。以下是在使用kml id方法时要记住的一些提示和技巧:
注:为了使用kml id方法来创建文件夹,可以使用更自动化的方法。请参见皮通卡勒变压器产品.
此处使用的数据源于温哥华市,不列颠哥伦比亚省。它包含根据开放政府许可证(温哥华)获得许可的信息。
?2019安全亚搏在线软件公司|合法的