西班牙
斯潘4
教程:地理数据库转换|上一篇:使用Geodatabase域|下一页:关联要素的注记
子类型定义了与数据分类相关的地理数据库模式的各个方面。换句话说,子类型不是为一组要素创建不同的要素类,而是作为在单个地理数据库要素类中定义要素子集的方式发挥作用。要素类中的属性存储定义子类型的整数值,子类型表包含相应整数值的定义。例如,名为“Road”的表可能有一个名为“Condition”的属性字段,其值映射到包含good、mediate和bad值的子类型。
一般来说,每个表只能有一个子类型,所有代码都必须是唯一的、有效的整数,并且代码:描述对必须是唯一的。
应当指出的是,一个亚型是针对特定的要素类。因此,它不能由其他要素类在地理数据库中的域可以共享的方式共享。
当读取一个地理数据库,FME有一个选项“解决亚型”。
当这个选项被选中,格式属性geodb_subtype_name将使用子类型定义中包含的描述性值填充。
注意 :在创建子类型时,我们建议使用Geodatabase模板,如前所述这里.这是通常更容易比FME要素类型中定义亚型更加灵活。
由于事实亚型只能适用于单个要素类,它是不可能创建一个新表,并将其与现有的亚型关联。因此,写地理数据库亚型时,工作流程的要求将属于以下情形下:亚搏在线
上述情况主要由以下参数控制:
- 验证功能写参数:是/否
注:我们强烈建议使用XML工作空间文档或文件地理数据库(包含所需的子类型定义)与亚型工作时对地理数据库作家的模板。有关使用架构导入XML文档的详细信息,请参阅地理数据库作家文档.
方案1:书写含有现有亚型的现有表
使用现有子类型写入现有表不需要额外的工作。为了验证子类型值,甚至不需要设置writer参数“Validate Features to Write”。具有未定义的子类型值的功能仍将被拒绝,错误如下:
对于“
限制
在编写本文时,FME将不允许您基于特定子类型关联不同的域。例如,您将无法将范围域设置为0-50000;50000-100000;100000-250000并将它们应用于包含Small、Medium和Large值的子类型定义。为了实现这一点,您需要创建域:子类型关系在阿吉斯。
下面的示例演示方案2:写一个新表并创建一个新的亚型。
公园(MapInfo选项卡-MITAB)
另外,在上述图像中,我们看到与相应的数据和属性的源公园的MapInfo TAB文件的可视化。
一。读取源数据
使用MapInfo TAB(MITAB)读取器从源选项卡文件读取风场要素几何图形。此文件中的数据将用于计算受目标地理数据库中子类型定义约束的停车场区域值。
2。计算区域并将区域映射到子类型代码
所述AreaCalculator变压器被用于计算包含在源数据中的每个多边形的面积。在AreaCalculator添加到画布 - 为AreaCalculator的默认参数就足够了。对于计算的面积值将存储在名为属性_面积.
AttributeRangeMapper将用于将来自_area属性(使用AreaCalculator创建)的值映射到我们将应用于子类型定义的子类型代码。应用的代码将基于初始值是否属于指定范围。将AttributeValueMapper添加到画布并打开“参数”对话框。选择“区域”作为源属性,并在“ParkSize”中选择“输出属性类型”。对于范围查找表,请输入以下值:
从 | 到 | 产值 |
万 | 1个 | |
万 | 百万 | 2个 |
百万 | 三 |
完成后,“AttributeRageMapper参数”对话框应类似于下图:
3.写功能与作家亚型场
将ESRI Geodatabase(文件Geodb)writer添加到工作区,设置要从数据集导入的架构,并指定要将数据写入的输出Geodatabase(即。编写子类型.gdb). 选择参数,并切换“覆盖现有地理数据库”,然后选择源数据中包含的地理数据库。单击“确定”两次。
出现“导入编写器要素类型”对话框时,导航到源数据集包含的模板地理数据库。选择Parks表,然后单击OK。
一旦添加,链接了AttributeRangeMapper和园区功能类型。
单击“确定”,然后保存并运行工作区。
*ESRI地理数据库(Geodb文件
)上述示例中使用的读写器要求用户可以使用ArcGIS的许可版本。有关所需ArcGIS许可级别的详细信息,请参阅所需的ArcGIS许可的地理数据库FME格式类型。
?2020安全亚搏在线软件公司|合法的