刘仁峰,吴志春
(湖南省第三测绘院,湖南 长沙 410007)
LIU Renfeng,WU Zhichun
AutoCAD平台下DLG建库的关键技术研究
刘仁峰,吴志春
(湖南省第三测绘院,湖南 长沙 410007)
Research on the Key Technique for Database of DLG Topographic Maps Based on AutoCAD Platform
LIU Renfeng,WU Zhichun
摘要:为了解决数字城市大比例尺地形图数据建库的技术问题,介绍了AutoCAD平台下DLG建库数据处理的主要内容,对建库数据处理的关键技术进行了研究;通过ObjectARX的二次开发实现了在AutoCAD平台下完成DLG建库的数据处理。通过生产实际应用发现,该技术方案大大提高了数据入库的工作效率,为数字城市建设提供了强有力的技术保障。
引文格式: 刘仁峰,吴志春. AutoCAD平台下DLG建库的关键技术研究[J].测绘通报,2015(9):113-116.DOI:10.13474/j.cnki.11-2246.2015.0294
关键词:AutoCAD;DLG建库;数据处理;拓扑构建;ObjectARX
中图分类号:P208
文献标识码:B
文章编号:0494-0911(2015)09-0113-04
收稿日期:2015-06-03
作者简介:刘仁峰(1978—),男,高级工程师,主要从事航空摄影测量的研究工作。E-mail:173406808@qq.com
通信作者:吴志春
一、引言
为了满足数字城市建设的需要,我国在信息领域进行了一系列的建设,并相继建成了一批城市级的数据库。1∶500、1∶1000、1∶2000等大比例尺DLG主要用于小范围内精确研究、评价地形,为数字城市的开展提供了一定的保障。因此,数字城市的建设涉及1∶500、1∶1000、1∶2000地形图数据加工与入库等工作内容。数据处理内容包括数据图形的处理、数据属性的编辑、数据文件类型的转换、坐标系统转换等工作。为了减少数据处理人员的工作量,提高工作效率,本文设计并实现了基于AutoCAD平台的DLG建库数据处理流程,为保证数据质量提供了技术保障,规范了建库数据处理工作流程。
二、建库数据处理主要内容
建库数据处理的主要内容包括图形数据整理、属性数据加工、文件格式转换、坐标系统转换4个方面。
根据《基础地理信息要素分类与代码》(GB/T 13923—2006)中的规定,基础地理信息要素一般分为定位基础、水系、居民地及设施、交通、管线、境界与政区、地貌、植被与土质8个大类。进行分层时,在符合国家标准规定的前提下,要充分考虑项目的需要,对其他行业的数据可自定义添加专题图层;同时也需要考虑GIS数据的特点对点、线、面进行分层处理。
在AutoCAD数据中,点状地物主要以块对象表示。处理时主要提取块状地物的定位点,不要打散块。对于有方向的点状地物如水闸,需检查其方向是否与原始数据保持一致。
在处理线状地物时,双线地物需要两边分开单独处理;复杂线状符号、部分地物(如道路、铁路等)需要提取中心线;带有方向指示的线状地物(如陡坎、斜坡)需注意地物的方向。
在原始数据中,面状地物多用填充对象来表示(如突出房屋),也有一些面状地物用说明文字注记来标识(如塘),在入库处理时需构建拓扑面。有些面域需要用Label点来标注,如房屋里的天井;又如一个环形房屋,四周是5层,中心部分是6层,这种情况往往只能通过Label点才能合理表示。
在AutoCAD数据中,注记往往是分隔开的文字,入库处理时需要把这些注记合并起来,方便转成数据库支持数据格式。原始数据中的居民地、著名景点、大型厂矿企业名称是注记提取的重点。
参照国标《基础地理信息要素分类与代码》(GB/T 13923—2006)规定,分类代码的处理是很重要的一项工作内容,所有的要素都要通过要素代码来区分(如210100表示常年河,420101表示已建成国道等)。在实际情况中,很多原始数据的分类编码是CASS的编码,这就需要进行编码的转换,将其转换为《基础地理信息要素分类与代码》(GB/T 13923—2006)的编码要求。
除了分类代码之外,根据项目的需求,对要素还需要采集一些附带的扩展属性,表1是居民地属性的示意结构表。
表1 居民地属性数据结构
原始数据中有些数据具有属性,如CASS中的房屋有属性结构与楼层等属性内容,但有时属性值与图面上的注记内容不一致,这种情况就需要提取文字注记中的信息附加到要素属性中。
Esri公司的Shapefile文件是一种描述空间数据几何和属性特征的非拓扑实体矢量数据结构的格式,是一种开放的空间数据格式。目前,该文件格式已成为地理信息软件界的一个开放标准,Shapefile也是一种重要的交换格式,因此DLG建库数据处理的成果一般也采用Shapefile文件格式。
2000国家大地坐标系于2008年正式启用,但是目前由于很多测绘资料都是1980西安坐标系、1954北京坐标系或地方独立坐标系下的成果,因此需要将其进行坐标转换。
利用均匀分布在测区的多对控制点,采用平面四参数模型(平移、缩放、旋转),利用最小二乘法求得残差最小的一组参数。
三、建库数据处理关键技术
ObjectARX是Autodesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速地访问AutoCAD图形数据库。与以往的AutuCAD二次开发工具AutoLISP和ADS不同,ObjectARX应用程序是一个动态链接库(DLL),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。因此,使用ARX编程的函数的执行速度得以大大提高。ARX类库采用了标准的C++类库的封装形式,也大大提高了程序员编程的可靠度和效率。
本文涉及的建库数据处理关键技术,均采用ObjectARX在AutoCAD平台下进行二次开发予以实现。
点多边形位置关系是指:判断一个点与多边形的位置关系(在内部、在线上、在外部)。常用的检验方法有两种:夹角和检验法、交点数检验法(射线法)。由于计算量小,射线法在图形算法求点多边形位置关系更为常用。
射线法如图1所示,由点P向任意方向作一条射线,然后求出射线与多边形相交而得到的交点数,如果交点数为偶数(包括0),则说明点P必在多边形之外,如图1(a)所示;如果交点为奇数,则说明点P必在多边形之内,如1(b)所示。
图1 射线法
图形布尔运算是指对平面上的两个图形进行几何运算以得到新的图形,这种几何运算是以图形为运算对象。图形布尔运算包括两个图形的交、并、差等运算,具体算法如下:
1) 计算交点。
2) 根据交点将多边形分成几部分,然后计算A各部分在B多边形的内部还是外部,以及B各部分在A的内部还是外部(求交集时结果选取的是内部部分,求并集时结果选取的是外部部分,求差集时A求的在B的外部,B求的是在A的内部部分),如图2—图4所示。
3) 将有效的部分连成一个新的多边形面域。
图2 A与B求交集示意图
图3 A与B求并集示意图
图4 A与B求差集示意图
① 线要素节点计算与提取
将参与拓扑构面的线要素进行相交计算,判断其是否相交,若相交,将所有交点提取,同时将每个线要素的首末端点也作为节点提取(图5中黑点即为要提取的节点)。
② 线的打断处理
图5 拓扑构面运算示意图
对每条线经过的节点,按其经过顺序对线进行打断操作,并剔除重复线。以图5为例,其中黑点间的12条线即为4条线被打断后形成的。
③ 拓扑构面
对打断后的线要素进行构面,首先判断其首尾端点是否相同,如果相同则返回面,否则寻找端点相连的最左侧(或最右侧)的线,如果未找到构面,进行下一条线的计算。如果找到,则进行连接,通过递归,直至首尾点相同返回闭合的线要素即面;或找不到端点相连线,返回空值[3]。其拓扑构面流程如图6所示。
图6 拓扑构面流程
AutoCAD下通常使用封闭的多段线来表示线,这些面的拓扑关系的计算问题如图7所示。建立拓扑关系算法如下(以图8中A与B为例):
1) 比较A与B的外包矩形对角线的长度大小,如果B>A,A与B互换。
图7 建立拓扑关系示意图
图8 建立拓扑关系树结构表示
2) 计算B的Label点P。
3) 判断点P是否在A的外包矩形内,如果不在则结束运算,B不在A内,如果在内继续步骤4)。
4) 根据射线法计算P点是否在A内,如果在外则结束运算,B不在A内,如果在内继续步骤5)。
5) 添加B作为A树的子节点,然后根据树本身的节点重新排列B所在所节点的位置。
四、建库数据处理程序开发实现
本文涉及的建库数据处理关键技术均采用ObjectARX在AutoCAD平台下进行二次开发实现。
程序功能模块分为数据编辑模块、数据检查模块、坐标转换模块、数据输出模块、辅助功能模块,程序主菜单如图9所示,输出结果如图10所示。
图9 建库数据处理程序主界面
图10 数据输出结果
五、结束语
本文通过ObjectARX二次开发实现了在AutoCAD平台下完成DLG建库数据处理所涉及的算法,
建立了基于AutoCAD的DLG与空间数据库的链接,实现了DLG中各种图元数据的自动入库,以及图元与属性信息的链接。实践证明,可以充分利用AutoCAD强大编辑制图的优点,二次开发解决DLG建库数据处理技术问题,可以生产出满足建库数据要求的数据。该技术路线大大提高了数据入库的工作效率,为数字城市建设提供了强有力的技术保障,为目前存于AutoCAD平台下的DLG直接处理生产建库数据提供了一种有效的方法。
参考文献:
[1]张雪松,张友安,邓敏.AutoCAD环境中组织GIS数据的方法[J].测绘通报,2003(11):45-48.
[2]曾宪珪,徐昌荣.基于AutoCAD数字地形图属性数据组织方案[J].测绘通报,2005(2):29-31.
[3]胡玉臣,刘达,王文明,等. 基于AutoCAD拓扑构面自动化的实现与应用实例[J].测绘与空间地理信息,2011(4):201-202.
[4]陈军,刘万增,李志林,等.线目标间拓扑关系的细化计算方法[J].测绘学报,2006,35(3):255-260.
[5]周培德.计算几何—算法设计与分析[M].3版.北京:清华大学出版社,2008:237-258.
[6]邬葆苓. 基于ARX的图库管理系统的设计与实现[J].计算机工程与设计,2003,24(4):63-66.
[7]吴志春,陈胜.基于ObjectARX的土地整理竣工测绘内业系统设计与实现[J].测绘与空间地理信息,2012,35(8):225-226.
[8]梁雪春, 宋德明. AutoCAD 2002 二次开发技术指南[M].北京:清华大学出版社,2001.
[9]郭朝勇.AutoCAD 2002定制与开发[M].北京:清华大学出版社,2002.
[10]刘仁义,刘南,苏国中.图形数据与关系数据库的结合及其应用[J].测绘学报,2000,29(4):229-333.
[11]王卉.一种解决GIS多源数据无缝集成的方法[J].测绘工程,2003,12(2):11-13.
[12]陈占龙, 冯齐奇, 吴信才.复合面状对象拓扑关系的表达模型[J].测绘学报,2015,44(4):438-444.
[13]国家测绘局.GB/T 13923—2006 基础地理信息要素分类与代码[S].北京:测绘出版社,2006.