基于MapGIS K9的城镇地籍数据库建库设计研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于MapGIS K9的城镇地籍数据库建库设计研究摘要:本文基于笔者多年从事地籍数据库建设的相关工作经验,以地籍数据库建设中需要二次开发提高数据质量的数据检查关键技术为研究对象,探讨了基于VC6.0++和MapGIS SDK6.7开发城镇地籍数据库的属性值检查程序的技术途径,全文是笔者长期工作实践基础上的理论升华,相信对从事相关工作的同行能有所裨益。
关键词:地籍数据库矢量数据属性数据拓扑检查MapGIS ArcGIS
0 引言
城镇地籍数据库的建设任务是在城市建成区和县所在地建制镇建成区范围内,建立包括土地利用、土地权属、基础地理等内容,集影像、图形、属性和文档于一体的数据库及管理系统。主要内容包括基础地理信息数据、土地权属数据、土地利用数据、栅格数据、元数据、表格、报告文本、扫描文件等。
本文所使用的地籍数据库由MapGIS二次土地调查数据库建库系统(城镇版)(以下简称建库系统)来建设,其数据格式为MapGIS 的.WP(区文件)、.WL(线文件)、.WT(点文件)。建库的操作流程软件帮助中都有详细说明,本文不再赘述,本文主要探讨建库中需要进行二次开发才能满足需求的关键技术实现思路。
在建库系统中自带了数据检查功能,基本满足属性数据和几何数据的检查,利用该检查模块可作为地籍数据库的初检。为了提高产品质量,还应进行第二次检查,这就必须要求用另外一种方法来对该地籍数据库进行复检,本文正是在此情况下开发了一套复检的方法。
1 城镇地籍数据库检查内容
依据《第二次全国土地调查数据库建设技术规范》中的规定,城镇地籍数据库的检查主要涉及矢量数据检查、属性数据检查、矢量数据与属性数据一致性检查、其它数据检查等4大项,以下又分了共计10个小项。鉴于以上说提及的后两项检查相对容易,故本文主要讨论的复检方法集中在前2项。
1.1 矢量数据检查
主要内容为线段是否自相交、两线相交、悬挂点、伪结点;多边形是否闭合、各多边形间的拓扑关系是否正确(如房屋应包含在宗地内),线点拓扑关系是否正确(如界址点应在界址线上)等。
1.2 属性数据检查
主要内容是属性是否齐全、各要素层属性结构是否符合标准要求,属性值是否为空、是否满足值域要求等。
2 拓扑检查
2.1 数据准备
因本文原始建库数据为MapGIS格式,而本文中的拓扑检查均在ArcGIS中完成,故需要将MapGIS数据转换为ArcGIS的shp格式。
转换使用了Map2Shp软件,该软件能够批量转换MapGIS的点、线及区文件,且能在转换过程中保证属性结构和几何精度与原数据一致。本文主要针对宗地(QSZT.WP)、房屋(FW.WP)、地类图斑(DLTB.WP)以及行政区(XZQ.WP)四者内部及其相互之间做了拓扑检查,故本文仅转换这4个图层。
2.2 拓扑检查规则
为了顺利完成矢量数据的拓扑检查,需提前制定相关的拓扑检查规则,本文依据《第二次全国土地调查数据库建设技术规范》中的相关检查要求及重要程度,本文给出了如下拓扑检查规则,见表1。
2.3 拓扑检查步骤
(1)对转换的shape数据定义坐标单位。执行ArcToolbox→Data Management Tools→Projections and Transformations→Define Projection。在打开的Spatial Reference Properties对话框中选择
Modify,修改坐标单位为Meter,其它不变。
(2)对转换的shape数据进行修复。执行ArcToolbox→Data Management Tools→Features→Repair Geometry。在打开的Repair Geometry对话框中选择待修复的shape文件进行修复。
(3)新建拓扑规则并验证。新建Personal Geodatabase→新建Feature Dataset→在Feature Dataset中导入修复好的shape文件→新建Topology→选中要进行拓扑检查的要素→在New Topology对话中通过Add Rule按照2.2中表1的描述添加规则(见图2)→执行validate 即可对所添加规则的进行拓扑检查→在拓扑检查结果上右击打开Properties对话中的Errors→点击Generate Summary即可查看拓扑检查的错误个数(也可以打开ArcMap导入拓扑检查结果并加载拓扑检查所使用的要素来查看拓扑错误),如图3。
3 属性检查
3.1 空间要素属性结构
本文对建库所涉及的空间要素均做了属性检查,包括测量控制点(CLKZD)、行政区(XZQ)、宗地(QSZT)、地类图斑(DLTB)、房屋(FW)等。检查内容为属性表名是否符合标准、属性结构是否
符合标准(包括字段类型、字段长度、小数位数)、必填项是否为空、值域是否正确。
3.2 属性检查程序设计
本文使用VC++6.0和MapGIS SDK6.7二次开发了城镇地籍数据库属性数据的检查功能。本文中首先运用VC++6.0创建了一个基于MFC的单文档类型工程,然后在此基础上进行MapGIS的二次开发。
3.2.1 VC++6.0中的设置
(1)工具→选择→目录标签,在显示目录Include files指示的路径框中输入如下内容:D:\mapgis67\include;在显示目录Library files 指示的路径框中输入:D:\mapgis67\Lib。(2)工程→设置→C/C++标签→分类栏中选择Code Generation→将Struct member alignment设置为 1 Byte。(3)工程→设置→General标签,将输出文件设置为:D:\mapgis67\program。
3.2.2 修改基类
本文使用了MapGIS的CPrjEditView类,该类继承了CGisEditView类,它集成了对工程文件进行编辑处理所必须的数据对象方法,具有对整个工程文件中各个工作区的编辑处理功能。
该类的具体使用方法如下:①将原视图类中的xzqView.h和xzqView.cpp所涉CView全部替换为CPrjEditView;②在xzqView.h