1. 引言
从我国国土测绘数据管理实际情况来看,国土测绘业务管理方法陈旧,效率不高;数据整理混乱,缺乏统一性标准;数据更新缓慢,不利于资源共享;社会服务水平低,不能满足应用需要 [1] 。
前几年,我市基础测绘工作薄弱,其中国土系统大比例尺基础地形数据产品的生产主要依托城镇地籍调查项目,仅完成核心镇区约87平方公里1:500分幅矢量数字线划地图的生产,未建立以数字线划地图(DLG)、正射影像(DOM)、数字高程模型(DEM)等 [2] 3D要素产品为主体的基础地理信息数据库。其次,测绘产品内业加工平台以南方数码科技有限公司的地形地籍成图软件CASS为主,输出成果以CAD格式文件存储,不利于基础地理数据的管理、维护、共享和发布。再次,基础地形数据的日常更新维护以宗地调绘项目的形式进行,成果分散存储,未建立单独项目成果与基础地形数据库之间关联关系。因此,为规范测绘业务生产流程,建立基础地理信息数据库,确保数据日常更新维护,需开发一套测绘业务管理系统。
针对国土测绘业务管理工作存在的问题,依据相关测绘专业规范,结合本地区测绘业务实际情况,规范基础测绘生产流程,建立集测绘项目管理、数据库更新维护管理和共享服务为一体的测绘地理信息管理系统尤为必要。
2. 系统构架
金坛测绘业务信息管理系统采用C/S结构,数据库平台采用Oracle 10g标准版,GIS平台采用ArcGis和空间数据库ArcSDE。数据库、国土资源电子政务平台和测绘业务系统部署在市国土资源局信息中心,通过国土资源局域网实现各业务科室的数据共享和业务管理,各乡镇所和分局通过VPN专网接入国土资源局局域网,构成金坛市国土资源专网,满足金坛市国土资源各级单位的数据共享和业务交互管理。系统构架如图1。
系统功能模块分为管理端和客户端,从结构层次上将系统分为数据层、公共组件层、业务应用层。
管理端:供系统管理管理员使用,实现业务流程定义,权限分配,元数据管理以及基础地理空间数据库初始化建库。包含部门人员管理、业务流程管理、角色权限、案件监视、SDE建库管理、要素代码分类管理、空间关系检查规则定义管理等。
客户端:供测绘业务科室使用,实现以流程化项目管理方式的测绘GIS数据日常更新维护 [3] 。包含项目创建和流转,GIS数据的浏览,编辑,查询,统计分析,打印输出等。
数据层:包括市国土资源数据中心,系统运行所需的基础数据、专业数据、管理数据等。

Figure 1. Jintan surveying manage flow diagram
图1. 金坛市测绘业务信息管理系统构架图
公共组件层:主要指一些通用基础模块,包括图形基础组件,图形编辑组件、工作流引擎组件、数据访问组件、数据发布服务、应用服务运行等。
应用业务层:包括地图基本应用、项目流程管理、地形编辑和历史回溯等。
3. 数据库设计
3.1. 数据组织
本项目数据库采用集中式存储方式,存放在市国土局信息中心服务器。分为管理数据库和地理空间数据库。
管理数据库:存放空间数据库的元数据,部门人员,项目流程,权限等系统支撑数据。
图层大类,中类,子类表,参照基础地理要素分类标准分别存放要素代码元数据。
图层字段表:根据业务需求存放图层对应属性字段元数据。
流程项目表:存放项目流程相关业务信息。
地理空间数据库:根据元数据配置动态分层创建地理空间数据图层,用来存放测绘的矢量数据及其对应要素的属性数据。为了实现测绘数据与项目流程建立对应关系,所有空间数据表都必须有项目编号字段,为了保证测绘数据的时态性,所有空间数据表(临时表除外)都必须有创建时间,状态,结束时间。
3.2. 空间数据要素集图层
空间数据库包括基础地形和地籍层,参照《GBT 13923-2006基础地理信息要素分类与代码》标准,结合金坛测绘业务自身特点,设计思路如下:
要素集代码:JTCH——金坛测绘。
要素层代码命名规则:要素类名称拼音大写首字母 + 要素类型。
要素类型:P——点、L——线、A——面、T——注记。
要素类别:定位基础、水系、居民地与设施、交通、管线、境界与政区、地貌、植被与土质、地籍。以居民地与设施图层为例如表1。
3.3. 要素层属性字段
共性字段:项目编号、要素代码、删除的项目编号、状态、创建时间、结束时间、注记值。每个要素集图层都需要添加,内容如表2。
特性字段:除了共性字段外,各类图层都有自己的特性字段。此外,个别图层还拥有自身的特性字段。
注记类型要素图层的特性字段:横向对齐方式、纵向对齐方式、旋转。
点类型要素图层的特性字段:比例、旋转。
线类型和多边形要素图层的特性字段:宽度。
居民地与设施面层的特性字段:高度、建筑结构、建筑物使用类型、层数。
地籍面层的特性字段:地籍号、使用权类型、企业坐落、法定代表人、土地性质、所属行业、权利人名称。
字段属性:是否可为空、是否可编辑、是否唯一、是否创建索引、字段大小。
4. 部分关键功能与技术实现
4.1. 项目管理
新建项目:新建一个项目时,系统调用工作流引擎创建项目,自动为项目添加一个项目编号。用户新建后系统便开始项目流程管理,对项目从开始到废弃全流程进行管理。
办理项目:根据用户的角色或权限以及接受项目情况,从数据库获取已经存在的项目,用户根据权限打开需要的项目添加地形编辑器,用户可以通过地形编辑器进行编辑,编辑完的数据根据选择的地形

Table 1. List of settlement place, institution
表1. 居民地与设施图层表
表2. 要素集属性共性字段表
要素自动配赋其要素代码,同时将数据状态设置为2 (编辑中),以免其他用户读到脏数据。
移交项目:如果处于编辑状态,系统停止并保存编辑,调用工作流引擎转件,填写办理意见,将项目移交到下一个流程环节中。
退回项目:如果处于编辑状态,系统停止并保存编辑,调用工作流引擎退件操作,填写退回原因,并将项目退回到上一个流程环节中。
接受项目:根据用户的角色和权限,从数据库读出所有处于权限范围内未被接受的项目列表,用户选择接受的项目,同时将接受的项目打开,此时,其他用户不可接受办理。
查看流程:可以查看当前项目所在流程,以及之前项目流程的办理人以及时间等,也可以查看所有流程。
保存项目:将本次编辑的要素保存到项目中,同时将当前视野保存到项目中。以至下次打开本项目时,可以自动定位到当前工作视野。
4.2. 元数据管理
4.2.1. 图层管理
参照制定的地理要素标准,对SDE连接及要素集、要素图层、图层字段等元数据进行配置管理。通过ListView、ComboBoxList、TreeView等控件以可视化的方式管理数据表(字段、图层等)中的记录。配置完成后通过ArcEngine的CreateFeatureClass方法动态创建图层以完成初始化空间数据库。初始化数据库后可以通过AddField或DeleteField方法对图层中的字段进行维护、管理。通过IWorkspaceDomains2的AddDomain方法添加Domain实现字段域的修改。
4.2.2. 要素分类管理
参照制定的地理要素标准,对图形编辑器配置,实现图形编辑器的动态初始化。提供图形编辑器配置文件节点的修改,添加和删除。默认通过XmlDocment读取地形编辑器的XML配置文件,将其文件中的节点的内容显示在TreeView中。
可以在模块上进行配置文件节点的修改,添加和删除操作。在TreeView的右击菜单中单击添加节点,命名后在XML配置文件中添加节点。双击TreeView节点,修改节点名称,修改后在XML配置文件中修改节点。在TreeView右键菜单中单击删除事件,删除后在XML配置文件中删除对应节点。
4.2.3. 图层检查规则管理
为了确保数据的质量,配置空间关系的检查规则,例如:宗地不能重叠,添加名称、源图层、项目层、检查方法等来完成,以供客户端程序在做审批或入库前质检使用。
4.3. 流程权限管理
4.3.1. 部门人员管理
不同企业或政府有不同层次的部门级别,部门层次是递归实现,实现对部门维护,包括添加,修改和删除,形成树状组织结构。实现对人员的维护,包括添加,修改和删除,人员调动,设置为在职,退休,注销等状态。
4.3.2. 业务流程管理
业务流程管理采用可视化工作流建模技术,以GDI图形化绘制来实现,对业务过程进行描述,然后将其转换成工作流模型中所述及的关系结构。流程图分为流程性和非流程性,流程性由活动和规则两类组成,其中活动由不同类型的多边形表示,转发规则由连接线表示,用来表示业务流程。非流程性由哑活动和查询活动组成,实现完成特定业务功能表单和通用定制查询表单的操作。系统管理员可以对各活动结点的相应表单进行绑定,在前台系统在执行相应功能时动态调用。
4.3.3. 角色权限
权限分配非常灵活,通过任务指派规则实现,可以指定角色,部门,团队,或者特办人员方式分配。流程的活动可以实现多种任务指派叠加的方式,以满足不同的应用。根据业务流程环节以及系统功能定义角色,决定测绘系统中拥有项目受理、审批、浏览、编辑、回溯等权限的人员。
4.3.4. 字典表
字典表用于维护图层字段的值只可用于某些选择范围的固定值,例如:用地性质:国有,集体,划拨等。这类字段需要定义图层字段的域,这些字段的值只能是域中的一个。将数据库中定义的域使用IWorkspaceDomains2接口添加到SDE中,再使用IClassSchemaEdit的AlterDomain方法将这些域赋值给具体的字段。
4.4. 工具
4.4.1. 空间关系检查
通过后台配置的空间检查规则,获取MXD文件中对应的图层,再根据定义的检查规则将SDE中数据通过ISpatialFilter接口进行空间关系检查,如发现错误,在列表中显示。
4.4.2. 符号化
符号化对图层进行唯一渲染,不同图层以不同的颜色区分,同时,相同图层内的不同要素根据要素代码赋予不同的符号样式。使用ArcMap制作符号文件,通过IStyleGallery等接口获取已经定义的符号样式,将样式添加到UniqueValueRenderClass实例中,然后将此实例赋值给图层的Render属性,实现图层的符号化。
4.4.3. 数据回顾
根据时间回溯:项目中的数据包含开始时间及结束时间两个字段,用户选择不同的时间点,系统加载相应的数据,供用户查看当前时间数据状态。通过时间字段定义IFeatureLayerDefinition接口实现图层数据的过滤,展现不同时间点系统的数据。
根据项目回溯:根据项目编号,查找到该项目,并配置不同时间点展现该项目不同时间的数据状况,达到时间和空间数据库的一体化。
4.4.4. 查询项目
根据用户输入的信息,从数据库查询到项目,用户通过查询到的结果可以打开项目、删除项目。打开项目是以只读的方式打开,只能浏览项目数据,不可编辑。删除项目时将本项目编辑中的数据直接删除,将删除状态的数据返回到正式状态。
4.4.5. 宗地图
选择一个宗地或者根据宗地号查询一个宗地导出宗地图。将地图中的宗地要素、房屋要素等图形要素转换为Element,将需要的板式元素添加到排版中,最后保存到数据库。坐标点册使用NPOI动态链接库将坐标点导出为Excel文件。
4.4.6. 导入散点
通过IFeatureCursor将点导入到FeatureClass中。新建一个项目,选择一个DAT格式的坐标数据文件,输入坐标代号,系统读取文件内的测绘坐标数据加载到SDE中,如果坐标缺少坐标代号,系统自动添加,最后将SDE中的数据加载到图层中显示出来,进行地图编辑操作。
4.4.7. 导出为DWG文件
通过ArcEngine的接口获取到已打开项目的图层,供用户选择。用户确认导出后,调用读写DWG文件的第三方库TeighaX读取图层中的图形及属性信息并写到DWG文件中,实现按图层导出功能。另外可以按选择集导出,通过AE的IMap接口得到FeatureSelection,最终转化为IEnumFeature,循环导出选择集中所有的要素到DWG文件,IEnumFeature只能获取图形元素,需要通过对IEnumFeatureSetUp的AllFields属性的设置获得属性信息。