开发者社区> 异步社区> 正文

《ArcGIS Engine 地理信息系统开发从入门到精通(第二版)》——6.5 Geodatabase对象模型

简介:
+关注继续查看

本节书摘来自异步社区《ArcGIS Engine 地理信息系统开发从入门到精通(第二版)》一书中的第6章,第6.5节,作者: 邱洪钢 , 张青莲 , 熊友谊 更多章节内容可以访问云栖社区“异步社区”公众号查看。

6.5 Geodatabase对象模型

ArcGIS Engine 地理信息系统开发从入门到精通(第二版)
6.5.1 Geodatabase中的主要类
Geodatabase中的主要类可以分为工作区部分和数据集部分,这两部分包含了Geodatabase中最基础、最主要的类。工作区部分主要负责对Geodatabase中的各种数据源进行宏观管理,而数据集部分主要是用于对数据库中各种具体的数据进行描述和管理。

(1)WorkspaceFactory类。

该类用于生成Workspace,该类允许用户通过事先指定的连接属性连接一个Workspace,这些连接属性一般使用PropertySet对象定义,并且可以存放在一个连接文件中。WorkspaceFactory是一个可创建的对象,具有一个连接池,该连接池存放了与当前应用连接、处于激活状态的Workspace。该类还提供了浏览、管理基于文件系统的Workspace的方法,同时还提供了管理远程数据库中的数据的功能。

该类实现了IWorkspaceFactory 和IWorkspaceFactory2两个接口,提供了用于创建、打开Workspace和获取一个Workspacefactory的属性的方法。该类还派生ArcInfoWorkspaceFactory、CadWorkspaceFactory、IMsWorkspaceFactory、ShapefileworkspaceFactory、SdeWorkspaceFactory和AccessWorkspaceFactory等。

IworkspaceFactory接口提供了创建和打开Workspace的方法,同时提供了获取Workspace的相关属性信息的方法。该接口提供了10个方法和两个属性。如Copy方法,用于将一个Workspace 复制到指定的目录;GetWorkspaceName方法,用于获得一个具有指定文件名列表对应的Workspace的名称;Move方法,用于将一个Workspace移到指定的文件夹下;Open方法,用于打开一个具有指定连接属性的Workspace,这个方法用于打开ArcSDE数据库;OpenFromFile方法,用于根据指定的文件名或者目录打开一个Workspace,这个方法通常用于打开文件系统工作区或本地数据库工作区,也可以根据连接属性文件打开SDE数据库工作区。

IWorkspaceFactory2接口的作用和IWorkspaceFactory接口基本一致,只是这个接口另外提供了直接根据一个描述连接属性的字符串来打开一个Workspace的方法OpenFromString。

(2)Workspace类。

Workspace是一个用于存放空间数据和非空间数据的容器,可以存放FeatureDatasets、Raster datasets和Tables等各种数据。一个Workspace 就是一个数据集集合,该类提供了列举、添加、删除、复制和更改它所包含的数据集的方法,还提供了创建数据集的方法。根据枚举esriWorkspaceType,Workspace可以分为esriFileSystemWorkspace(文件系统工作区)、esriLocalDatabaseworkspace(本地数据库工作区)、esriRemoteDatabaseWorkspace(分布式远程数据库工作区)等。Shapefiles和ArcInfo workspaces就是文件系统工作区类型的Workspace。该类实现了IWorkspace、IWorkspace2、IWorkspaceDomains2等众多接口。

一个Workspace可以被看做是文件系统中的目录,也可以被看做一个关系数据库。在访问一个Workspace中的数据库之前,用户首先必须打开这个Workspace。用户不能直接创建一个Workspace,一般是由WorkspaceFactory生成。

IWorkspace接口提供了获取Workspace各种信息的方法,该接口提供了3个方法和6个属性。如Exists用于判断当前Workspace是否存在,IsDirectoy用于判断当前Workspace是否是文件系统下的一个目录,WorkspaceFactory用于获取当前Workspace对应的WorkspaceFactory。

(3)FeatureDataset组件类。

FeatureDataset组件类是一个用来存储具有与该FeatureDataset同空间参考的多个Feature Class的数据集。FeatureDataset还可以存储Geometric Network和Relationship Class。该类实现了IFeatureDataset接口,该接口提供继承IDataset接口。IFeatureDataset提供了在一个Dataset中创建一个新的Feature Class的功能,共有7个方法和9个属性,如CreateFeatureClass方法用于创建一个新的Feature Class。

6.5.2 Geodatabase中的其他常用类
Geodatabase的OMD中还提供了一些常用类,如与空间数据入库相关的类、与查询相关的类。

空间入库相关类还同时实现了各种数据格式的转换,如FeatureDataConverter、FieldChecker、EnumFieldError等。其中FeatureDataConverter类是最核心的类,所有的数据导入功能都是通过这个类实现的。FeatureDataConverter类主要用于实现类似ArcCatalog的功能;FieldChecker类用于对属性字段进行有效性判定;EnumFieldError类是一个枚举,用来记录所有数据转换失败的无效字段的名称。

FeatureDataConverter类实现了IfeatureDataConverter和IFeatureDataConverter2两个接口。IFeatureDataConverter接口用于对不同格式的数据进行相互转换,提供了3个方法,如ConvertFeature Class用于将FeatureClass导入到数据库中,ConvertFeatureDataset用于将要素数据集导入到数据库中,ConvertTable用于将一个表格数据导入到数据库中。IFeatureDataConverter2接口在功能上基本与IFeatureDataConverter接口一致。

FieldChecker 类实现了IFieldChecker接口,用于对属性字段进行有效性判定,如Validate方法用于检查一系列属性字段的有效性。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
GIS开发:arcgis server切片数据和wmts
GIS开发:arcgis server切片数据和wmts
13 0
GIS开发:Arcgis的切片格式
GIS开发:Arcgis的切片格式
19 0
ArcGIS Runtime for .Net Quartz开发探秘(十一):自定义三维图标绘制
自定义三维图表绘制 柱状图 环状图 三叶草图 这里仅给出环状图用作统计亚洲航班执航飞机制造公司统计的截图 根据相机高度,自动调节统计框及统计图大小。
1248 0
ArcGIS Runtime for .Net Quartz开发探秘(十):标绘(二维)
本篇博客实现ArcGIS Runtime for .Net Quartz下实现标绘。 标绘内容为直线箭头、曲线箭头、双头钳击箭头、三头钳击箭头、集结地。 箭头标绘 箭头编辑 三维 这里简单拉伸到三维,后续考虑在三维场景下标绘。
1276 0
ArcGIS Runtime for .Net Quartz开发探秘(九):实时数据接入展示
本篇博客主要介绍《基于ArcGIS Runtime for .NET(WPF)的实时航班展示解决方案》 此方案实现ArcGIS Runtime接入互联网实时航班数据并完成三维展现。下面给出方案展示: 此方案由两个程序组成:”数据处理转发程序“以及”实时航班监控程序“。
1616 0
+关注
异步社区
异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载