天津市两证合一地籍测量数据制图系统的设计及实现
2012-05-31安卫王宝明王孝华戈杨杨国臣
安卫 ,王宝明,王孝华,戈杨,杨国臣
(1.天津市测绘院,天津 300381;2.天津市国土资源和房屋管理局西青区国土资源分局,天津 300381)
1 引言
随着地理信息技术的飞速发展,GIS技术已广泛地应用于众多领域,为各个相关行业部门提供了高效的空间信息处理能力和强大的决策支持服务,利用它可进行分析、评价和预测。天津市国土资源和房屋管理部门根据实际需求充分利用GIS技术,开发出覆盖全市域的“一张图”系统。天津“一张图”,底图清晰,操作简单,一目了然。在这张“图”上,可以完成从土地征收转用到权属变更,从地类用途管治到用地审批、从土地供应到合同签署、从土地初始登记到商品房预售和在建工程抵押转让、从房地合一证后监管到颁发房地权属证书,实现业务应用系统基础数据的实时更新和统一标准下的信息共享。由此可见GIS技术已在天津市国土资源和房屋管理部门得到非常好的应用。
开发商最终要拿到两证(房地产权证),必须把所购买的地块及所建造的房屋的点、线、面等图形信息及属性信息上传到天津“一张图”系统,这就需要利用ArcGIS 9.3或AE技术制作SHP格式数据。SHP格式数据的来源是测绘部门现场测绘后形成的DWG格式数据,这就涉及AutoCAD数据与ArcGIS数据的相互转换问题。而两证(房地产权证)上的各种附图及表格等数据,利用VBA开发技术即可实现。本文主要论述如何利用AE,VB6.0,AutoCAD及Microsoft Office的VBA等技术在AutoCAD 2004的环境下开发出两证合一地籍测量数据制图系统。
2 系统的设计
2.1 数据要求
根据天津市国土资源和房屋管理部门对登记发证两证合一地籍测量数据的要求,需要制作以下几部分数据:地籍封面、界址表、界址点坐标成果、宗地草图、有比例要求的贴证宗地图和上“一张图”的SHP格式数据。数据的具体样式如图1~图5所示。
图1 地籍封面与宗地草图
图2 宗地图
图3 界址表和界址点坐标成果表
图4 SHP格式图形数据
图5 SHP格式属性数据(界址点)
界址线,宗地,房屋SHP数据的属性信息和界址点SHP数据的属性信息类似,这里不再显示。
2.2 系统设计原则及结构框架
系统的设计要实用,稳定,快速,同时也要标准化,规范化。系统的实用就是要能够满足用户的应用需求,同时保证系统简洁明了、层次清晰,用户操作简单,易于使用、管理及维护,使非专业人员也能够熟练操作;系统的稳定就是要求系统运行稳定,能捕捉到错误并给出相应的反映,而且不导致程序异常关闭,或死机等;系统的快速就是要求程序在运行的时候速度要很快,否则就失去程序自动化的意义了;系统的标准化、规范化就是要求系统在开发过程中要严格遵循各项国家或地方标准,从而达到数据共享的目的。
本系统的设计完全满足上述要求,其开发流程如图6所示。
图6 系统结构流程图
3 关键技术
3.1 AutoCAD VBA的二次开发技术
从AutoCAD R14.01版开始,Autodesk在AutoCAD中加入了VBA(Visual Basic for Application),作为AutoCAD的一种二次开发工具,VBA将AutoCAD和Visual Basic的功能结合在一起,能够快速创建出符合用户要求的程序,大大提高了工作效率。
AutoCAD VBA的开发使用AutoCAD ActiveX技术,与AutoCAD提供的内置的 AutoLISP语言相比,VBA具有一些优点。如与Windows互操作性,本系统在AutoCAD VBA开发过程中操作Microsoft Office的Word和Excel,很简单就可以把必要的DWG文件信息通过Word文档或Excel表格输出,但是采用AutoLISP就很难达到这样的效果,而且VBA语言相对LISP语言来说,学习起来更简单,更容易掌握。
3.2 AE开发技术
ArcGIS Engine是Esri在ArcGIS9版本才开始推出的新产品,它是一套完备的嵌入式GIS组件库和工具库,使用ArcGIS Engine开发的GIS应用程序可以脱离ArcGIS Desktop而运行。ArcGIS Engine面向的用户并不是最终使用者,而是GIS项目程序开发员。对开发人员而言,ArcGIS Engine不再是一个终端应用,不再包括ArcGIS桌面的用户界面,它只是一个用于开发新应用程序的二次开发功能组件包。
开发人员可以使用ArcGIS Engine将GIS功能嵌入到现有的应用程序中,包括Microsoft Office的Word和Excel等产品。ArcGIS Engine为辅助应用程序开发提供了下列ArcGIS控件或可视化组件:MapControl,LicenseControl等。本系统对AE要求不高,仅需要LicenseControl进行授权及Esri DataSourcesFile Object Li-brary,Esri GeoDatabase Object Library 和 Esri Geometry Object Library三个组件库。
3.3 程序代码的封装技术
在VBA编程中,由于VBA代码容易被破解,因此市面上使用的二次开发软件用VBA编写的并不多。但是,如果将关键的代码封装到DLL中,是保护知识产权的好方法,本系统的绝大部分代码都被封装成DLL文件。
创建DLL的办法如下:
(1)在VB6.0中创建一个ActiveX DLL类,并设置好名称;
(2)引用AutoCAD、Micosoft Office及AE的类型库;
(3)在类中写下实现某些功能的代码;
(4)调试代码及生成DLL文件;
(5)在AutoCAD VBA环境引用DLL文件。
4 系统开发及实现
4.1 系统开发的平台及系统工具条的生成
本系统的开发平台为XP系统,电脑需安装Microsoft Office 2003,AutoCAD 2004,ArcGIS 9.3,ArcGIS Engine Runtime 9.3,VB6.0。
系统是在AutoCAD 2004的环境下进行二次开发的,因此需制作工具条。工具条的制作是直接在Auto-CAD 2004的菜单中添加如下类似语句即可:
ID_Ini[_Button(“初始化”,“C:DJ_MappmingICONSmallIcon初始化.bmp”,“C:DJ_MappmingICONLargeIcon初始化.bmp”)]'_Inialize。这段语句是添加“初始化”工具,其他工具可参照此法添加,添加完后生成的工具条如图7所示。
图7 两证合一地籍测量数据制作系统界面
4.2 系统部分重要功能的实现及代码
(1)界址点、界址线、宗地属性点的符号化
初始化环境就是在CAD环境下自动添加需要的字体样式、线型样式及图层等。初始化完成后需设置作图比例尺。界址点,界址线,宗地属性点符号化的过程中,需按照比例尺对界址点的大小,界址线的宽度等信息作出调整。符号化必须规范化、标准化,要满足天津市国土资源管理部门对图面的要求。在符号化的同时,程序自动给界址点、界址线、宗地属性点添加一个默认的扩展属性。现在分三个方面来叙述:
①界址线的符号化
界址线符号化时,需要把设置界址线的线宽,界址线所在的图层,给界址线添加默认的扩展属性。关键代码如下:
②界址点的符号化
先创建好一个符号块文件,置于系统软件所在的模板文件夹,之后插入界址点符号块即可。
③宗地属性点的符号化
宗地属性点的符号化,主要就是在宗地界线范围内添加一个点对象,给点对象设置点样式,颜色,添加宗地属性信息。
(2)更改界址点、界址线、宗地属性点的属性信息
符号化之后,界址点,界址线,宗地属性点均有扩展属性,但是其默认属性并不能完全满足用户需要,这就需要更改其扩展属性。不论是界址点,界址线,还是宗地,更改其扩展属性的模式都是一样的,这里仅以界址点为例来说明。属性窗体的设计如图8所示。
图8 界址点属性窗体
实现的过程和代码如下:
①创建窗体,在窗体内放置属性框
②在属性框更改界址点的属性后,需把更改后的属性写入界址点
(3)界址点、界址线、宗地注记及图廓的生成
①注记的生成
对于注记的生成,不论是界址点、界址线还是宗地都是类似的,不同之处仅是放置的位置不同,文字大小不同。文字添加的代码如下:
其余文字的添加类似。
②图廓的生成
制作指北针的块,这个可以参看界址点符号块的制作方法,这里不再赘述。之后根据宗地图比例尺,单位名称,宗地号、指北针块等生成宗地图廓。
之后添加宗地号,图符号,比例尺等文字即可。
(4)SHP格式数据的自动生成
需要上“一张图”系统的数据包含4个,界址点,界址线,宗地,房屋。由于这几个数据的生成比较类似,这里仅以界址点的制作过程为例进行论述。
先引用AutoCAD和ArcGIS的库,之后程序步骤如下。
①首先需要获取每一个界址点的扩展属性,并把其存放在一个二维数组中,以方便下一步的应用。
JZD.GetXData "JZD",xtypeOut,xdataOut‘获取界址点的扩展属性
②其次是创建字段生成SHP
其余字段的创建与此类似,之后生成空的SHP文件。
③CAD图形及属性数据传递给SHP格式数据。读取CAD中图层为“JZD”的“Point”要素层,之后把此要素层的图形数据复制到新创建的界址点SHP格式数据中,然后把存放界址点扩展属性的数组中的属性值添加到界址点SHP格式数据相应的属性表中,最后保存SHP文件即完成界址点shp数据的制作。代码如下:
这样,界址点的SHP格式数据就制作完成。界址线,宗地等也按此思路制作即可。
(5)界址表及界址点坐标成果表的生成
在AutoCAD VBA环境中,为了能生成Excel表格,在编写程序之前,必须先引用Microsoft Excel 11.0 Object Library对象库。程序流程如图9所示。
图9 生成界址表及坐标成果表的流程图
程序代码部分限于篇幅,这里不再赘述,请参看参考文献[5]。
(6)草图封面的自动生成
①草图的生成
草图的生成可以先制作一个草图模板,需要时通过插入块的方式插入模板,把相应的文字进行替换即可,方法简单,这里不再赘述。
②封面的生成
封面的生成和草图的生成类似,也是先做封面的模板,打开模板,之后也是把相应的文字(比如宗地号,图符号,单位名称等)进行替换即可。在引用Word库文件之后,编写如下代码:
5 结语
本系统实现了DWG数据与GIS数据转换的自动化,实现了各种表格、文档生成的自动化,也实现了图面整饰的半自动化,提高了工作的效率。按照常规方法,做一个有20个界址点的两证合一地籍测量数据需花近两个小时,而采用本程序之后,只需20分钟即可。尤其是界址点越多,图形越复杂,越能体现系统的优越性,而且不易出错,图面美观。本系统在天津市国土资源和房屋管理部门得到较广泛的应用。
[1]胡胜华,何宗宜,陶利佳.AutoCAD与GIS数据转换的研究[J]. 测绘通报,2007,12:44~47.
[2]求是科技.Visual Basic 6.0程序设计与开发技术大全[M].北京:人民邮电出版社,2004.
[3]池建.精通ArcGIS地理信息系统[M].北京:清华大学出版社,2011.
[4]王任.用VBA开发AutoCAD 2000应用程序[M].北京:人民邮电出版社,1999.
[5]安卫,王文旭,宋波.一种界址表和界址点坐标成果表的自动生成方法[J].北京测绘,2011(1):49~51.