FME中KML文件组织结构的设置

原文发布时间:2014-05-21

翻译文章链接:https://knowledge.safe.com/articles/221/kml-folders.html

翻译:毛毛虫

模板下载

本文介绍下FME中如何组织KML的文件组织结构,并给出示例具体说明。

下面先对KML的文件组织结构稍作介绍。

KML文件采用XML文件的语法和文件结构,该文件基于tag(标签)的表达式,tag<tag>开头,</tag>结尾,中间是tag的值。KML文件是很多tag结构的集合。tag之间的关系主要包含并列和包含两种方式。

Google Earth中的tag具有明显的层次结构,最上层的是kml,用来表明该文件是一个KML文件,KML文件的下层主要包括FolderDocument,其中Folder用来创建文件夹,Document用来创建一个目录。FolderDocument的下层包含很多Tag,其中最重要的是Placemark

使用Folder对其他要素(包括FoldersPlacemarksNetworkLinksOverlays)进行树形的分类管理。这种组织方式,不但有利于地名分类,也有利于目录内容显示/折叠,有利于地标查找和修改。在KML中,“目录”(Folder)可以定义其内部元素的共同属性。

下面说下FMEDocuments Folders表达描述。

KML读模块和写模块被设计为可以在相同的转换中同时处理多个KML文件。默认的,KML写模块假设每个要素发送到写模块,应该被写入到根文件(file/document)。为了将要素写入到另一个document,要素必须有一个kml_document属性,包含了目标文件(file/document)的文件名。

KML读模块读取一个KML文件的属性而不是根文件,会添加一个kml_document属性到这个要素,指定源文件的名称。另外,因为读模块可能用相同的文件名读取两个文件,不过文件路径不同,KML读模块会添加kml_document_pathkml_document_href作为每个元素的唯一源文件标识。

每个写入KML写模块的要素可以使用kml_parent格式属性来指定包含要素的<Folder>元素。kml_parent格式属性的值应该与文件夹的id相同。如果必要,KML读模块也会添加<Folder>属性。

kml_documentkml_parent格式属性被设计为彼此关联。也就是,为了添加一个Placemark要素到文件 "other.kml"中的文件夹"A",要素需要有下面的属性:kml_document="other.kml" kml_parent="A"

 

下面举例说明在FME中如何创建嵌套的KML文件夹结构。

FME使用两种方法来创建KML文件夹结构:

1、  要素类型扇出方法

默认的,当使用要素类扇出时,写模块创建一个图层的文件夹结构。为了避免一个较长的要素列表,可以考虑通过一些有用的分类属性进行聚合。

2、  KML ID方法(kml_parent and kml_id)

如果需要直接控制文件夹名称、父子关系和文件夹级别来定义一个自定义文件夹的分层结构,需要创建文件夹元素和和文件夹中相关的所有元素。为了实现这个功能,需要在相同的称为FolderKML文档中创建一个目标元素类型。使用Creator创建一个KML数据集名称。对嵌套文件夹创建一个文件夹要素,添加一个kml_parent来设置父文件夹名称。为了指定几何要素到这些文件夹,只要设置kml_parent到上面创建的文件夹名上。

KML的相关属性设置如图:


 详细设置看示例(分别用上述两种方法设置了KML的文件组织结构)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值