APP下载

CAD数据向GIS数据转换方法的研究

2012-09-22刘阳刘允刘宓杨钊

城市勘测 2012年2期
关键词:岛状关联符号

刘阳,刘允,刘宓,杨钊

(天津市测绘院,天津 300381)

1 引言

随着国家基本比例尺地图图式和国家基础地理信息要素数据字典的颁布实施,天津市测绘院的数据标准也进行了革新和完善。当前GIS事业的迅速发展,对数据的标准化、信息化要求逐步提高,对GIS数据的现势性要求日益增加,因此若能实现CAD数据向GIS数据的自动转换,对基础地理信息产业建设会有相当深远的影响。

2 技术思路和数据要求

多年来,从CAD数据到GIS数据的快速转换一直是我们探索的目标,而此次研究的方向锁定在从DWG格式数据直接输出MIF格式数据,再转换为TAB格式数据的转换思路上。转换的整体技术思路设计如下:

(1)技术思路

以DWG格式数据为源数据,按照数据标准对GIS数据的要求,从数据中直接读取各个要素的骨架数据,将其直接输出MIF格式数据,通过MapInfo软件的转入表功能,直接将MIF格式数据转为TAB格式的GIS数据,数据的分层、属性、关联等信息要完全符合标准。

(2)MIF格式数据介绍

MIF格式数据包括两部分,MIF和MID两个文件,MIF文件的内容主要是点(point)、线(pline)、面(regen)等要素的位置记录和样式信息,还包括整个图面的坐标范围、属性字段的个数名称和类型;MID文件的内容就是输出的各个地物要素的属性内容。

图1 mif文件格式

图2 mid文件格式

(3)要素分类

根据天津市测绘院现行的数据标准,地物要素总共分为8个大类,包括控制点(KZD)、水系(SX)、居民地及设施(JMDSS)、交通(JT)、管线(GX)、境界(JJ)、地貌(DM)、植被与土质(ZBTZ)。转换后的GIS数据基本按照这8个大类划分,在此基础上添加了交通中心线(DLZXX)、水系中心线(SXZXX)两层数据。

(4)数据要求

①GIS数据指专业或通用地理信息系统中有分析价值的地理信息数据,即能够表达地物位置和形状的、有属性信息的点、线、面等。在DWG数据中表现为地物的骨架数据及其对应的属性信息。如图3,灌木行树的骨架线、棚房的闭合边线、依比例尺的涵洞框架线。作为各要素相应的骨架数据,需要转换成GIS数据。灌木行树为线状数据,棚房和依比例尺的涵洞为面状数据。

图3 骨架数据示意图

②为了保证GIS数据的使用效果,在程序设计中也考虑了GIS数据的符号化、美观化。由于MIF格式在这方面的优越性,我们可以直接将GIS数据各类要素的颜色、线型样式等进行设定,这样最终得到的TAB数据就会有很好的表达效果。比如说给各种类型的房屋赋予不同的颜色,围墙栅栏等样式都可以直接在转换时设定。

③新的数据标准要求每个地物要素都建立关联关系。它是指为了表示组成一个实体的各个部分或若干实体为一个整体所建立的数据关系。包括要素内部的关联和要素之间的关联。举例来说,棚房边线与棚角描述符之间的关联,为要素内部的关联;单位点和单位注记之间的关联,为要素之间的关联。利用要素的关联关系,可以解决很多问题,如房屋天井、独立的不依比例尺符号与范围线内部的不依比例尺符号的区分等情况。

④根据设计的要求,地物的关联关系也要带入GIS数据中。将关联关系以属性字段的形式记录下来,在GIS数据中通过检索查询的方式即可实现对关联地物的查询和应用。

3 关键问题及解决方案

(1)扩展属性的转换

根据数据字典的要求,CAD数据中每个地物都有不同的扩展属性。这些扩展属性是以Map_Info为扩展名记录下来的,其中每个组码1 000对应记录一个属性字段的内容,但并没有记录下属性字段的名称,如图4所示。GIS数据则是每一层地物有一个与之对应的属性表,包括该层地物涉及的所有属性字段,每个地物的属性字段名称和内容都会逐条记录下来,如图5所示。

图4 CAD数据扩展属性

图5 GIS数据扩展属性

从以上分析可以看出,两种数据的属性结构有很大的差别。如何把每个地物的各项属性内容在GIS数据属性表中与相应的字段名称一一对应起来,就成为扩展属性转换的关键。

为了解决这一问题,可将这种对应关系体现在数据转换的对照表文件中。根据GIS数据的要求,每一层要素都有相应的属性结构,将各层要素的属性结构整理成property.ini对照表,如图6所示,在对照表中记录各层要素的所有属性字段名称及其类型,并对每个属性字段名称进行编号。针对每个地物要素不同的属性,建立SystemAttributes.ini对照表,如图7所示,在其中不但要记录每个地物要素的属性字段名称,而且要记录各项属性名称在GIS数据中对应的字段编号,通过这个字段编号,程序就可以识别CAD数据中不同的属性项对应GIS数据属性结构中的哪一项,即可在程序转换中实现属性的对应转换。

图6 图层的属性对照格式

图7 地物的属性对照格式

(2)关联关系的运用

数据中的关联关系的运用,将一些比较复杂的关键问题用关联这种统一的思路和方法得到了解决。举两个例子介绍一下。

第一,独立的不依比例尺符号和在范围线内部配置的不依比例尺符号的区分。在GIS数据中,范围线内部的符号并不需要,只有独立的不依比例尺符号要保留。而CAD数据中,这两种情况虽然图面表达的意义不同,但图面使用的符号编码和块名都是一样的,无法进行本质上的区分。因此要得到正确的结果,比较好的方法就是对转换后的GIS数据做拓扑分析,将落在范围线内部的符号删除,只保留独立的符号。这是一种间接实现的手段,需要借助GIS软件的拓扑分析功能来完成。现在有了关联关系的运用,这两种情况下的不依比例尺符号就得到了很好的区分:不依比例尺的符号是否有与其相关联的范围线。根据以上的思路,在转换程序中加入相关的判断条件,就直接实现了不依比例尺符号的转换。如图8就包括了这两种情况:范围线内部的配置不依比例尺符号的情况在GIS中转为范围线面状要素,独立的不依比例尺符号转为点状要素。

图8 依/不依比例尺符号的CAD数据和GIS数据

第二,岛状地物的转换。地形图上要素相当复杂,必然会出现岛状的表示情况。如图9的池塘外围斜坡面,就是用坡顶框架线和坡底框架线围成的岛状面状地物。如果没有对斜坡的框架线建立关联关系,那么GIS数据就会转换成两个重叠的面,必须对数据进行挖岛处理,才能得到符合标准的数据。现在内外层框架线建立了关联关系,可以根据关联关系找到岛状地物的内外层各条线,并根据面积的大小不同,确定出岛状地物的最外围边线和所有与之关联的内部岛,这样就能直接将这种岛状地物转换为GIS数据了。

图9 岛状斜坡的CAD数据和GIS数据

(3)关联搜索效率

关联关系的运用的确解决了很多问题,与此同时,如果能使关联关系的搜索效率达到最优,就能让关联关系的查询和使用发挥最大的作用。关联关系搜索的主要过程就是获取了当前地物的关联值后,在图面上搜索所有与当前地物关联值一致的地物。在研究这个问题的过程中,我们采用了许多方法。

最先采用的是通过lisp语言编写的程序函数来查找关联,主要是为转换岛状地物时编写的,如图10所示。转换过程中读到某地物需要搜索与之相关联的地物时,在图面上选择所有的具有“TJTX”关联关系的POLYLINE线,再进一步判断这些POLYLINE线的关联值guid,关联值一致的地物即是相互关联的地物。这种搜索方式在处理较大数据量的图幅时速度比较慢,效率较低,不能达到预期的效果。

为了提高效率,可用C++语言编写的arx程序函数来完成上面的功能(图11)。循环搜索保留原有的思路,编写的程序模块可以在lisp程序中直接调用,通过传递参数即可实现关联的搜索,函数直接返回关联地物的图元名称列表。用这种方式实现的关联搜索速度提高了很多,基本能达到比较满意的效果。但是在用大量数据进行测试的过程中,这种方式的一个弱点,就是由于内存释放等因素的影响,在处理较大数据量时,会导致AutoCAD软件无法运行下去。因此,在提高效率的同时,还要找到一种更加稳定的方法来实现关联的搜索。

图10 用lisp方式实现关联的搜索

图11 用arx方式实现关联的搜索

根据实验和测试,借用SQLite数据库来完成对关联进行快速搜索是行之有效的方法。SQLite是一个内嵌式的关系型数据库。数据库服务器就在程序中,其好处是不需要网络配置和管理。根据它的这个特点,可以把当前图面上所有具有“TJTX”关联关系的地物记录在SQLite数据库中,包括地物的句柄值和关联值(图12),然后通过SQLite语言实现关联关系的查询搜索(图13),并通过lisp函数获得关联的图元列表(图14)。经过测试,这种方式不仅在速度方面达到了预期效果,而且运行非常稳定,是一种非常有效的方法。

图12 SQLite数据库记录的句柄和关联

图13 程序创建SQLite数据库,并记录句柄和关联

图14 在SQLite数据库中进行关联的搜索

4 结语

本文阐述了CAD数据向GIS数据转换的流程、关键问题及解决方案。实现CAD与GIS数据全自动转换具有重要的意义,节省了原来因为维护两套数据耗费的大量人力物力,同时有效地避免了数据不一致情况的产生。

[1]陈伯雄 冯伟.VisualLISP程序设计——技巧与范例[M].北京:人民邮电出版社,2002

[2]陈述彭,鲁学军,周成虎.地理信息系统导论[M].北京:科学出版社,1999

[3]边馥苓 .地理信息系统原理和方法[M].北京:测绘出版社,1996

[4]毋河海,龚健雅.地理信息系统GIS空间数据结构与处理技术[M].北京:测绘出版社,1997

[5]秦洪现,崔惠岚,孙剑.Autodesk系列产品开发培训教程[M].北京:化学工业出版社,2008

[6]The Definitive Guide to SQLite.http://www.apress.com

猜你喜欢

岛状关联符号
带指动脉逆行岛状皮瓣修复末节指体创面的应用及注意事项
第1掌骨桡背侧动脉逆行岛状皮瓣修复拇指软组织缺损
尺动脉腕上皮支逆行岛状皮瓣修复手部皮肤软组织缺损
不惧于新,不困于形——一道函数“关联”题的剖析与拓展
学符号,比多少
“+”“-”符号的由来
“一带一路”递进,关联民生更紧
奇趣搭配
变符号
智趣