span8
span4
域是一组定义允许值用于属性规则。它们被用来约束数据值,以保证数据的完整性。一个域可以在地理数据库中被定义为一种独特的实体,并且可以被应用到包含该域定义地理数据库内的任何要素类的任何属性。
鉴于域定义的复杂性,强烈推荐一个使用ArcGIS来定义自己的地理数据库域。但是,如果你提供的域中定义还没有被应用到地理数据库,并在查找表中,而不是存在的数据会发生什么?下面的练习将演示如何使用地理数据库表包含域代码和值创建使用FME编码域定义。
街道要素类(ESRI地理数据库 - 文件地理数据库)
另外,在上述图像中,我们看到源街道特征类的可视化。将受到目标地理数据库域定义的值可以在StreetCategory属性中可以看出。
StreetCategory地理数据库表(ESRI地理数据库 - 文件地理数据库)
另外,在上述图像中,我们看到源StreetCategory地理数据库表的可视化。此表中的值将为地理数据库域定义的值。需要注意的是重要的地理数据库表中对应于将受到编码域定义属性的名称。
1.读取源数据
信息将包含我们的编码域定义将使用由ESRI的地理数据库(文件地理数据库),读卡器,而街道的特征几何形状和数据的基础架构将从街道要素类使用FeatureReader变压器读一个独立的地理数据库表中读取。这将允许我们做的创建从包含在地理数据库表中的信息域定义所需的基础架构操作。当添加FeatureReader变压器,打开参数对话,并确保设置类似于下面的屏幕截图:
此外,一旦FeatureReader已添加到画布上,增加一个变压器的创造者和创造者连接到在FeatureReader发起者输入端口。造物主确保运行工作区时FeatureReader将触发。
2.编译字符串表编码域定义
FME写入使用被然后施加到地理数据库的底层模式特定的语法编码域 - coded_domain(<域名>:<数据类型>:代码:值:代码:值:.....)。对街的类别,我们将创建一个从我们的地理数据库表将显示如下一旦我们的工作区是完整的域名:
coded_domain(StreetType:整数:1:动脉:2:次要的:3:住宅:4:收集器:5:个人:6:NonCity:7:其它:99:未知)
要获得包含在地理数据库表到格式的数据上面提到的,我们需要做一些字符串操作。所述StringConcatenator用于创建和保存个人代码:值对(即,1:动脉)进入的属性称为StreetCategoryKeys。
The ListBuilder creates a list from those incoming code:value pairs, while the ListConcatenator merges those code:value pairs into a single string attribute (StreetCategoryConcate) wherein the code:value pairs are separated by a colon (i.e. 1:Arterial:2:Secondary).
一个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属性编码域定义写入。
©2020安全亚搏在线软件公司|法律