span8
span4
本文包含了一些写作地理数据库关系类的实例。它包括涵盖概念演示使用geodatabase关系类简介。实例包括1:M的关系,插入到M:N M:N或归因关系,和高级M:N的关系。
对于下面的例子,假设的关系已经在ArcGIS中创建。这是必需的,因为FME不能创建的关系,而仅仅是进行填充。
*本文中使用/提到的esri文件geodatabase reader/writer需要arcgis的许可版本。有关所需Arcgis许可级别的详细信息,请参阅fme geodatabase格式所需的arcgis许可证类型。这个sde和geodatabase中fme读写器的比较文章也可能有用。
注意:fme无法在目标地理数据库中创建关系类。在arcgis/arcpro中创建relationship类,或者使用 模板。
在这个例子中,一个1:M的关系类翻译将被证实。在以前的文章中提到,与围绕中心1关系类的问题时:M类,没有中间表来跟踪这些关系。这样的关系通过主键和外键相互结合。
台阶
1)打开提供工作区“One2ManyRelStart.fmwt”或打开一个空白的工作区,并添加一个“ESRI的文件地理数据库”阅读器。
如果你打开了工作区提供,跳到第3步。
2)对于ESRI的文件地理数据库读写器,导航到1ManyRelStart.gdb。选择它,然后单击确定。
再次单击确定。读者应该加入,当问及选择地块和社区功能types.The读者应该加入,当问及选择地块和社区特征类型。
3)AttributeCreator添加到每个要素类,与新的属性是
“geodb_feature_has_relationships”并且是“是”的价值。
4)为相同的“AttributeCreator”。重命名“对象ID”到“geodb_oid”的始发地和目的地要素类。这样做是为了告诉哪些功能相关的作家。你必须确保该geodb_oid是源表的ID。例如:建立包裹和邻里之间的关系使用OBJECTID(源表)和NeighbourID(目标表)。
属性创建者参数
5)现在是时候笔者添加到工作区。作家>添加作家。选择“ESRI的文件地理数据库”作为格式。
选择文件夹的位置,你想保存输出地理数据库,并给地理数据库的名称。
单击参数,并导入XML工作区模板设置为所提供的XML文档:“XMLWorkspaceTemplate.XML”。这将允许你使用模板,将提供架构(包括关系类)写入到一个新的地理数据库。
注意:除非每完成翻译后更改输出名称,删除XML模板初始转换后,允许现有的地理数据库的覆盖。
点击运行。工作区应成功完成。检查任何ArcGIS产品的地理数据库。你应该能够看到哪些功能,其使用ArcMap相关。下面是ParcelID一个例子:144。由此可以看出,作为关联的基斯兰奴邻里。
有时,在出发地和目的地的要素类的数据已经存在,你只是想的关系添加到关系表。如果你能做到这一点:
- 的关系为M:N或归因关系
- 关系类已经存在于地理数据库
要添加的关系,设置geodb_type到geodb_relationship或geodb_attributed关系(如果归结)和geodb_rel_origin_oid和geodb_rel_destination_oid各自OBJECTID的。这要求该FME读取其参与的关系,但不涉及重新写出来的要素类。只有关系表需要在这种情况下被写入。
台阶
通过观察工作区,你可以看到从地理数据库两个要素类被读入。在我们继续之前,让我们先来看看我们从阅读地理数据库。
2)打开ArcCatalog和导航到保持包含在所述地理数据库中的文件夹
FMWT文件。
从看地理数据库,我们可以看到2个表(结构和地址)以及一个关系类(Structure_to_Address_rel)。
检查arccatalog中的源数据
在这里,您可以看到关系类已创建。视图可以通过ArcGIS被访问,和打开的关系类的属性。右键单击关系类>属性。作为提醒,这是因为关系类必须在ArcGIS中创建,然后他们可以通过FME填充。
3)的事实,这是一个L:我们需要N的关系,以确保一些属性存储上的功能将被写入到关系类。
起点和终点的oid,指主键和外键上的各要素类。在这个例子中,我们使用的对象ID为新创建的起点/终点OID值。需要注意的是,这些新创造的价值,没有明确写入地理数据库,而是帮助FME过程的特征是如何与关系是非常重要的。为了这些功能存储每个要素类,我们需要添加每个要素类的AttributeManager。这允许用户创建前面提到的所需要的属性。
原始属性管理器参数(结构表):
目标属性管理器参数(地址表):
4)与主键和外键设置,现在我们可以合并使用FeatureMerger变压器的功能。这是怎么回事使用的是两个要素类之间共享的领域合并功能,在这种情况下,Structure.SiteID和Address.Remarks。
5)最后,需要另一个AttributeManager变压器,以确保特征被识别为一个要素类。这是通过设置geodb_type为“geodb_relationship”做,如果你处理的归属关系,该值将需要被设置为“geodb_attributed_relationship”。
6)最后,作家加入。正是在这里,我们直接写入关系表。为了正确地做到这一点,值我们之前设置:
Geodb_rel_origin_oid
Geodb_rel_destination_oid
Geodb_type
我们没有设置外键值(StructureEventID和AddressEventID),因为这些会由作家只要上述数值也作了相应的映射来填充。
7)运行的工作区。关系类现在应该与AddressEventID和StructureEventId外键值填充。
如果有2个要素类开始,你要插入一个关系类,1的组合一个新的地理数据库:M关系的工作空间和更新M:N的关系,工作区必须走出携带此任务。此外,应该注意的是,关系类需要在转换之前的目的地被创建,通过ArcGIS的。这样的工作空间的一个例子可以在“Many2ManyAdvanced”模板中看到。
©2019安全亚搏在线软件公司|法律