• ArcGIS属性域Domain探索


    最近在研究UPDM2019,想着转一套模型到PostGIS中,arcgis当中的属性域Domain不能直接转入到PostGIS,需要手动转换。

    ArcGIS属性域Domain

    属性域是描述字段类型合法值的规则,提供了一种增强数据完整性的方法。属性域是可接受的特性值的声明。属性域用于约束表或要素类的任意特定属性中的允许值。如果要素类中的要素或表中的非空间对象已被分组为各个子类型,则可将不同的属性域分配给每个子类型。如果一个属性域与某个特性字段相关联,则只有该属性域内的值才对此字段有效。也就是说,此字段不会接受不属于该属性域的值。使用属性域可针对特定字段限制可供选择的值,从而有助于确保数据完整性。

    ArcGIS Domain信息在ArcCatalong数据管理可见(任选一要素,右键属性->子类型->属性域),在此处可复制编码值到excel。

     

     

     上述编码值可直接复制到excel

     

    属性域Domain在数据库中的存储

    在测试test.mdb中导入部分空间表,会导入跟这些空间数据表相关的Domain信息。

    打开mdb,其中GDB_Items中保存了Domain的信息,Definition字段里面以xml结构保存了字典表值,表里面不只包含Domain信息,还包含关系类等。

    下表为GDB_Items

     

    下表为GDB_ItemTypes,从该表可以读取Domain类型对应的UUID,字段使用的属性域对应Coded Value Domain(父类型是Domain),通过UUID对应GDB_Items的Type字段。

     

    下图为查看属性域的xml值,批量转出可通过写程序转换xml中的Domain值,代码实现比较简单,不再贴出。

    作者: GoodGF
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    【 socke】C# socket端口复用-多主机头绑定
    【网络】 NAT
    【socket】高级用法-ReceiveMessageFrom
    【socket】高级用法-异步
    C# GET 和 SET作用
    多态是什么意思?
    LINQ(LINQ to Entities)
    LINQ(隐式表达式、lambda 表达式)
    LINQ(LINQ to DataSet)
    C# 中的委托和事件
  • 原文地址:https://www.cnblogs.com/gaofan/p/11573159.html
Copyright © 2020-2023  润新知