西班牙
斯潘4
域是定义属性允许值的一组规则。它们用于约束数据值,以确保数据完整性。域在geodatabase中定义为唯一实体,可以应用于geodatabase中包含域定义的任何要素类中的任何属性。
鉴于域定义的复杂性,强烈建议使用ArcGIS定义其地理数据库域。但是,如果您提供了域定义尚未被应用到GEODATABASE而替代存在于查找表中的数据,会发生什么情况?下面的练习将演示如何使用包含域代码和值的geodatabase表来使用fme创建编码域定义。
街道要素类(ESRI地理数据库 - 文件地理数据库)
在上面的图片中,我们看到了source streets特性类的可视化。可以在streetCategory属性中看到受目标地理数据库域定义约束的值。
StreetCategory地理数据库表(ESRI地理数据库 - 文件地理数据库)
在上面的图片中,我们看到了源streetcategory地理数据库表的可视化。此表中的值将提供geodatabase域定义的值。需要注意的是,geodatabase表的名称对应于将受编码域定义约束的属性。
1。阅读源数据
组成编码域定义的信息将使用ESRIGeodatabase(文件GEODB)读取器从独立的Geodatabase表中读取,而街道特征几何图形和数据的基础架构将使用FeatureReader Transformer从街道特征类中读取。这将允许我们根据geodatabase表中包含的信息执行创建域定义所需的底层模式操作。添加FeatureReader Transformer时,打开参数对话框并确保设置类似于以下屏幕截图:
此外,将FeatureReader添加到画布后,添加Creator Transformer并将Creator连接到FeatureReader上的启动器输入端口。创建者确保FeatureReader将在工作区运行时触发。
2。建立字符串表编码域定义
FME写入使用特定的语法,然后将其施加到地理数据库的底层模式的编码结构域 - coded_domain(
coded_domain(StreetType:整数:1:动脉:2:次要的:3:住宅:4:收集器:5:个人:6:NonCity:7:其它:99:未知)
要获得包含在地理数据库表到格式的数据上面提到的,我们需要做一些字符串操作。所述StringConcatenator用于创建和保存个人代码:值对(即1:动脉)进入的属性称为StreetCategoryKeys。
所述ListBuilder创建不同于传入代码的列表:值对,而ListConcatenator合并这些代码:值对成一个字符串的属性(StreetCategoryConcate),其中所述的代码:值对由冒号分隔(即1:动脉:2:二次)。
一个AttributeCreator用于创建,将持有的地理数据库表的fme_feature_type的值的属性(在这种情况下,该表的名字 - StreetCategory)。这创造属性的值将使我们能够搜索和改变功能模式的工作流程后的数据类型。亚搏在线
3。合并查表要素模式
该FeatureMerger变压器用于新创建的域定义代码合并:值列表到源街要素类的架构。的经编码的域定义将充当在FeatureMerger供应商的数据,同时从所述FeatureReader架构端口将提供请求者输入源。一旦FeatureMerger已添加到画布上,并输入连接后,打开变压器的参数对话,确保参数如下所示:
4。搜索模式
既然代码:值列表已经被应用到该功能模式,我们需要现在就告诉架构,这将是一个编码域数据类型。首先,我们将以此来回报,这将是受我们的编码域的特征属性的索引号使用ListSearcher通过模式列表中进行搜索。一旦我们有了索引号,我们将能够改变从字符串到一个编码区的该属性的基础本地数据类型(见步骤5)。
5。创建编码的域名&手柄属性
一个AttributeCreator用于改变将受到编码域定义的特征属性的数据类型。为了这样做,我们从上面的步骤中的指标值,并将其应用到下面的本机数据类型属性(属性{}。native.data.type),用于把编码域特征属性。这种数据类型属性将被分配彻底结束语法,其包括编码域定义 - coded_domain(StreetType:整数:@Value(StreetCategoryConcate))。
与此同时,该AttributeCreator将被用于创建将在以后的工作流程可用于控制在我们的特色和模式达到文件地理作家的顺序排序属性。亚搏在线
现在我们已经处理了我们的编码域的定义和要素模式操作,我们现在可以处理来自FeatureReader未来的功能。一个AttibuteManager用于映射包含在我们的功能来新定义的编码域值的StreetCategory属性的属性值。这是通过施加一个条件值定义(如下所示)的属性StreetCategory完成。
正如你可以在上面拍的,在我们映射StreetCategory属性我们编码域定义,同时屏幕注意到,我们也创造了排序属性,并将其值设置为2。
6。排序模式/功能与写域动态
在前面两个步骤中创建的排序属性将用于确保改变架构已应用于后我们的功能将被写入到目标地理数据库。分类器变压器被用于控制工作流的这个部分。亚搏在线
最后,ESRI的地理数据库(文件地理数据库)作家设置为一个动态表定义将修改后的方案,并将其应用到目标地理数据库。模式已被应用之后,从源街道的特征的特征类然后将与施加到StreetCategory属性编码域定义写入。
?2019安全亚搏在线软件公司|合法的