斯潘8
斯潘4
以上视频涵盖了使用地理数据库关系类简介,以及本文中介绍的示例。
地理数据库附件是将附加信息以特定文件(即图像,一个PDF格式,或文本文档)。作为ARCGIS文件提到:
“例如,如果你有一个代表建筑物的特征,您可以使用附件添加从多个角度拍摄的建筑物的多张照片,以及包含建筑契约和税务信息的PDF文件。”
您可以将一个或多个文件附加到功能,然后使用ArcGIS中的查询工具检索信息。
*本文中使用/提到的ESRI文件geodatabase reader/writer需要获得许可的Arcgis版本。有关所需ArcGIS许可级别的更多信息,请看FME地理数据库格式所需的ARCGIS许可证类型。
附件和FME
因为附件是由关系类处理的,FME能够很容易地创建这种连接。然而,附件表已预先在Arcgis中创建。关键是读取要附加到属性中的文件内容,并将该属性写入附件表中的数据字段。关系类必须事先在Arcgis中创建。关键是读取要附加到属性中的文件内容,并将该属性写入附件表中的数据字段。
可以使用attributeFileReader转换器或数据文件读取器将文件的内容读取到属性中。对于数据文件阅读器,请确保将reader参数“立即读取整个文件”设置为“是”。reader可用于将文件的内容读取到属性中。对于数据文件阅读器,确保将读卡器参数“立即读取整个文件”设置为“是”。
接下来的练习将演示如何在添加附件时写入关系类。
附件
注意:下载中提供的模板文件将允许我们写入已经具有功能类的地理数据库,附件表,关系建立起来了。通常,这必须事先在Arcgis中设置。使用XML模板文件时,工作区只能运行一次,所有将来的翻译都需要从编写器中删除模板。
在下图中,我们看到了包含Fire Hall的源GML文件的可视化,亚搏国际在线官网社区中心,以及数据检查器中的库数据。
消防大厅,亚搏国际在线官网社区中心,地理标记语言库(GML)
在下图中,我们看到了系统路径的可视化,其中照片和PDF文件将用作附件。
指向PointsOfInterest文件夹中的照片和PDF文件附件的路径。
对于这个练习,已提供开始工作区,.
您将立即注意到工作区已部分设置。源和目标架构对象已经就位,可以进行读/写操作。还有一些转换器已经到位,可以映射读写器模式。唯一缺少的是建立关系所需的变形金刚——添加它们是本练习的主要任务。然而,我们将得到一些预定义的变压器的帮助,这些变压器已经设置并复制到书签中。
预定义的变压器
1。下载附件文件夹
如上所述,无法通过FME创建关系类。像这样的,在运行翻译之前,必须确定功能之间的关系。对于这个演示,已提供具有所需空功能类和已定义关系的目标地理数据库(请参阅下载部分中的attachments.zip)。下载并提取此zip文件夹,因为它不仅包含所需的目标地理数据库,它还包含必要的文件,这些文件将在工作流期间用作附件。亚搏在线
2。读取源数据
消防大厅,亚搏国际在线官网社区中心,使用GML阅读器从感兴趣的源点地理标记语言文件中读取库几何。
目录和文件路径名读取器用于读取将用作附件的图像和PDF文件的系统路径。虽然读卡器已经作为开始工作区的一部分添加,确保每个读卡器的源参数指向正确的数据集。
三。设置源属性以匹配目标架构
为了修改每个源数据集的属性,以便它们与目标模式匹配,还需要做一些额外的工作。
为了火炉,这意味着用attributeManager重命名以下属性:
输入属性 | 输出属性 | 属性值 | 行动 |
名字 | 描述 | 重命名 | |
号数 | 名字 | 重命名 | |
地址 | 街道 | 重命名 |
重命名Firehalls属性
为了亚搏国际在线官网社区中心,这意味着使用attributeManager修改以下属性:
输入属性 | 输出属性 | 属性值 | 行动 |
中心名称 | 名字 | 重命名 | |
中心服装 | 街道 | 重命名 | |
中心网址 | 网站 | 重命名 | |
文档名 | 描述 | 重命名 | |
邮政编码 | 未知的 | 设定值 |
重命名社区中心亚搏国际在线官网属性
为了图书馆,这意味着使用attributeManager修改以下属性:
输入属性 | 输出属性 |
属性值 | 行动 |
图书馆名称 | 名字 | 重命名 | |
图书馆地址 | 街道 | 重命名 | |
图书馆网址 | 网站 | 重命名 | |
文档名 | 描述 | 重命名 | |
邮政编码 | 未知的 | 设定值 |
重命名库属性
4。添加关系相关属性
需要告诉FME特性参与了一个关系类。要做到这一点,我们将使用一个属性创建器变压器。这个变压器可以在“Transformers to use”书签中找到。鉴于存在两个数据流(兴趣点和附件),需要两个attributeCreator实例。
将此变压器复制/移动到两个浅棕色书签(标题为“4”)中。添加关系相关属性”。对于兴趣点(消防厅,亚搏国际在线官网社区中心和图书馆的特征类型);将所有三个现有的attributeManager变压器连接到新的attributeCreator。对于附件文件的路径(路径功能类型),只需将目录和文件路径名读取器连接到第二个attributeCreator。
添加和连接预定义的attributeCreator后的工作区。
打开其中一个属性创建器的属性对话框,您将看到它所做的一切就是设置一个名为geodb_feature_has_relationships的格式属性。属性,geodb ou feature ou has ou relationships set to yes,是所有需要告诉FME这些特性参与关系。
属性geodb_feature_的_relationships设置为yes
每一组功能还需要一个ID号。假设一个不存在,我们可以用计数器变压器创建一个。再一次,每一组功能需要一个实例,“Transformers to use”书签中已经有一个预定义的Transformer。从书签中移动/复制计数器转换器,并在上一步的每个attributeCreator转换器之后连接一个实例。检查计数器参数,您会发现它正在创建一个名为geodb-oid的属性。
计数器创建ID属性,土拨鼠
5。连接模式
在这一点上,功能已准备好写入地理数据库,因此,可以创建从计数器变压器到现有属性名称变压器和兴趣点附加功能类型的连接。
完整的数据流
打开attributeranamer_-poitype变压器的参数对话框。这里我们需要将fme_feature_type属性重命名为poitype,确保功能名称的原因是源功能在属性中维护。在这种情况下,我们会有消防大厅,亚搏国际在线官网社区中心和图书馆仍然存在。参数设置如下:
6。添加关系相关属性
我们现在需要定义两组特性之间的关系,我们通过创建起点和终点ID号来实现这一点。再一次,每一组功能需要一个实例,我们已经可以使用两个预定义的变压器。移动两个属性名称变压器(即从“Transformers to use”(变压器使用)书签变为黄色,书签居中。从感兴趣的地方(消防厅,亚搏国际在线官网社区中心和图书馆的功能类型)与属性名称来源相对应,另一个从路径计数器到attributerenamer_目的地:
添加关系相关属性后的工作区。
检查每个属性名称的参数。您将看到每个人都将新创建的ID重命名为源ID或目标ID。这就是FME用来编写关系类的方法。
7。建立关系信息
添加FeatureMerge Transformer。这就是建立关系的方式。将源属性名称连接到请求者端口,将目标属性名称连接到供应商。打开功能合并的参数对话框。将requestor属性设置为name,将supplier属性设置为path_rootname。
这样做的结果是,在附件的文件名(路径_rootname)与感兴趣点功能(名称)的名称匹配的位置合并数据。
例如,如果我有一个兴趣点叫做“大高雕像”(来源ID=13),并且有一个文件名为“big tall machine.jpg”(目的ID=22),那么结果将是一个单独的功能(“大高雕像”,产地ID=13,目标ID=22),定义这些功能之间的关系。
在写这个给关系类时,它将定义PointsOfInterest和PointsOfInterest_附加表中这些功能之间的关系。
另一个需要注意的问题是,对于特定的兴趣点,存在多个附件。所以,在FeatureMerge参数对话框中,将“处理重复供应商”改为“是”,并输入单据作为要创建的列表。
特征合并参数
现在,当工作区运行时,对于具有多个附件的功能,多个文件存储在一个列表中,像这样:
docs 0.path _文件名
文档0.geodb_rel_destination_oid
docs 1.path _文件名
文档1.geodb_rel_destination_oid
我们现在需要做的是将这个列表分解成单独的特性——这样每个附件都有一个关系记录——这是通过一个列表分解器转换器完成的。在FeatureMerge之后插入一个ListExploder变压器,并将FeatureMerge的合并输出端口连接到ListExploder的输入。打开“列表分解器参数”对话框,选择“文档”作为要分解的列表:
ListExploder参数
发送给FME编写器的每个特性都应该有一个指示几何类型的属性。在大多数情况下,您——用户——不需要知道这个属性,也不需要设置它。然而,在这里,这些功能当前将标记为点功能(即我们需要告诉FME它们实际上是非几何的,关系特征。所以,在ListExploder之后添加一个attributeCreator转换器,并将attributeCreator连接到ListExploder的elements端口。
打开attributeCreator的参数对话框,并使用它创建一个名为geodb_type的新属性。应给出geodb_关系的值。这将告诉FME将这些作为关系特征写入地理数据库。
列表分解器后面的attributeCreator参数。
现在可以将attributeCreator_3连接到PointsOfInterest_uuAttachrel编写器功能类型。
8。设置附件表中的字段
现在我们正在写功能之间的关系,但是目标特性(附件)当前只是对文件的引用,不是文件本身。我们需要使用这些引用来读取附件文件的内容。工作区的一个预先定义的部分将为我们做到这一点。查找“在附件表中设置字段”书签。
检查这些变压器在做什么。attributeCopier正在进行一些基本的模式映射,而StringConcatenator正在设置一个属性来告诉Arcgis正在附加的文件类型。最后,attributeFileReader读取附件的内容,使用从原始路径读取器获取的文件名。
将此书签的内容连接到主工作区(即连接到附件计数器和编写器功能类型(PointsOfInterest_uuu Attach))之间。移除与兴趣点的任何现有连接。
9。写入关系数据和附件
在这一点上,我们应该(在导航器窗口中)检查事务类型是否设置为编辑会话。
注意:提供的模板文件将允许我们写入已经具有功能类的地理数据库,附件表,关系建立起来了。通常,这必须事先在Arcgis中设置。使用XML模板文件时,工作区只能运行一次,所有将来的翻译都需要从编写器中删除模板。
关系类必须在编辑会话中写入。现在保存并运行工作区(确保Arcgis和Data Inspector已关闭以避免任何数据锁定问题)。当您检查arcgis中的PointsOfInterest特性(记住它们在名为city的特性数据集中)时,使用HTML弹出工具查询它们。
使用HTML弹出工具查询arcgis中的PointsOfInterest功能
?2019安全亚搏在线软件公司|合法的