


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ComGIS的从Shape文件到Dxf文件格式转换的方法
[摘要]:本文详细分析了DXF和Shape文件结构,并介绍了一种从Shape文件到DXF文件转换的简单方法,解决了GIS系统软件与AutoCAD制图软件之间的数据共享的问题。并经过作者实践证明,该方法简单有效。[关键词]:DXF文件,Shape文件,MapObjectAWayofFormatTranslationfromShapeFiletoDxfFileonBaseofComGISKeywords:DxfFileShapeFileMapObject随着软件组件式开发技术的逐渐成熟,GIS组件(如ESRI的MapObject和MapInfo的MapX)在专业型地理信息系统开发中扮演了重要的角色[3],然而GIS二次开发组件都具有其天生的局限性,即不同系统之间的数据转换功能非常弱,特别是基本不具备从GIS数据到AutoCAD制图系统的数据格式转换功能,影响GIS的数据共享。因此为了实现数据的共享,必须进行数据格式的转换,目前,通用的数据格式转换方式有以下几种:一、数据格式转换方法1、常规的GIS数据格式转化方法就是采用某种编程语言首先读取源数据文件,提取源文件中的图形信息和属性信息,然后再写入目标文件中去。这种方法需要同时非常熟悉两种数据文件的格式,因此给数据转换带来了不小的难度。2、利用数据格式转换工具这种方法简单方便,但是通用数据格式转换器难以避免的会丢失一些图形信息,转换出来的图形一般还需要一些特别的处理,如图形颜色设置,符号设置,区域填充设置。3、利用第三方数据文件访问工具进行数据格式转换这种方法灵活简单,也具有很强的灵活性,开发难度小,代价就是需要第三方的数据访问组件。随着GIS组件式开发技术的逐渐成熟,各种GIS组件都具有访问其本身的GIS数据的功能,如MapObject可以访问ESRIShapeFiles、ArcInfoCoverage和VPF等矢量数据格式。利用GIS组件的这种特点可以灵活的自己编写与其他数据格式转换的程序,或者在GIS系统的二次开发中集成数据格式转换的功能,实现GIS数据共享。本文研究的内容就是利用GIS组件(MapObject)进行由Shape到Dxf的格式转换。二、基于ComGIS的从Shape文件到Dxf文件格式转换的方法1、Shape文件结构ESRI的Shape文件是二进制文件,能够同时存储空间图形数据和属性数据。一个Shape文件包括三个文件:一个主文件(*.shp),一个索引文件(*.shx),和一个dBASE(*.dbf)表。主文件是一个直接存取变量记录长度文件,其中每个记录描述一个有它自己的vertices列表的shape。在索引文件中,每个记录包含对应主文件记录离主文件头开始的偏移,dBASE表包含了实体的属性数据。图形数据和属性数据通过索引号建立一一对应的关系。Shape文件是按照地物类型来组织的。地物类型可以分为简单的分为点(Point)、线(Line)、面(Polygon)三种类型,一个Shape文件中只能包括一种类型的地物,即只能包括点、线或者面状地物中的一种。点状地物存储的是一组坐标(X,Y),线包括简单线和多段线,存储的是一系列的坐标串(X1,Y1,X2,Y2…),面状地物存储的是一系列封闭的坐标串(X1,Y1,X2,Y2,…,X1,Y1)。2、DXF文件结构DXF文件有两种格式:ASC码文本格式和二进制格式。前者可以用记事本打开,简单易读,后者存储效率高[2]。DXF文件最小组成单位是组(GROUP),一个DXF文件由多个组组成。每个组在DXF文件中占两行。第一行是组码(GROUPCODE),它是一个整数;第二行是组值(GROUPVALUE),它的数据类型取决于组码的数值。例如X坐标的组码为10,Y坐标的组码为20,Z坐标的组码为30。一个DXF文件分为多个节(SECTION),每个节均由多个组(GROUP)组成。每个节均由一个组值为字符串“SECTION”的0组开始,后跟组值为表示段名的字符串的2组,其后为组成该节的各个组,最后以组值为字符串“ENDSEC”的0组表示该节结束。所有节都结束后,在DXF文件的最后是组值为字符串EOF(ENDOFFILE)的0组作为文件的结束标志。一个完整的DXF文件由以下七个节(SECTION)组成:A.标题(HEADER)节:包括与图形相关联的变量的设置,例如图形节最大、最小X坐标和最大、最小Y坐标($LIMMIN,$LIMMAX),点显示模式($PDMODE),点尺寸($PDSIZE)等。其中的每一个变量都通过组码9给出变量名,并由其后的组码提供变量值。B.类(CLASSES)节:类节保存由应用程序定义的类,而该类的实例则出现在块节(BLOCKS)、实体节(ENTITIES)和对象节(OBJECTS)中。C.表(TABLE)节:包含命名项的定义,存放一系列表。包括线型(LTYPE)表、层(LAYER)表、文本字样(STYLE)表、视(VIEW)表、用户坐标系统(USC)表、视窗配制(VPORT)表、尺寸标注式样(DIMSTYLE)表、应用标识(APPID)表。D.
块(BLOCK)节:存放块定义的实体。对图形中每个块引用,在块节中都必需有一个条目与之对应。E.实体(ENTITIES)节:存放图形实体,其中包括块插入实体。DXF图形文件中的所有图元(包括点、线、面、插入块,注记文字等实体)都将在ENTITIES节定义。F.实体(OBJECTS)节:存储非图形对象。G.
预览图像(THUMBNAILIMAGE)节:只有当预览图像被保存在DXF文件中时该节才存在。编写一个构造完备的DXF文件的程序是比较困难且烦琐的,因为必须保持图形的一致性,以使AutoCAD能够接受它,同时还必须保持信息的完整性。值得庆幸是一个DXF文件可以只包含以上七个节中的若干个节,而不是全部节。以上七个节中,最重要的是实体(ENTITIES)节,实体节存储了DXF文件所有的图形对象。一个最简单的DXF文件可以只包含实体(ENTITIES)节,而不需要包含其他任何节。这样就大大降低了DXF文件编写的难度。3、Shape文件到DXF文件转化的实现由于Shape文件是二进制文件,且文件格式复杂,直接使用编程语言读取Shape文件具有一定的困难,由此作者使用第三方开发组件MapObject提供的对Shape文件的数据访问接口来读取Shape文件内容,大大降低了Shape文件到DXF文件格式转化的编程工作量。MapObject是目前最优秀的GIS二次开发组件之一,他提供了一系列的GIS制图功能和访问ESRIShapeFiles的数据访问接口[1]。利用MapObject对Shape文件的数据访问功能来提取Shape的图形信息,具有不丢失图形信息、数据访问简单等优点。下面是Shape文件类型与DXF图元类型对照表:图1.Shape文件地物类型与DXF文件图元类型对照表作者以某市地下管线Shape文件为例,实现了将管线Shape文件转化为AutoCAD系统DXF文件,并将数据转化功能集成到某市地下管线管理信息系统中,很好的解决了地下管线管理系统与AutoCAD制图系统之间的数据格式共享问题。转化过程中没有丢失图形信息。下面以地下管点Shape文件为例,简单介绍如何将点图元写入DXF文件。点状地物对应DXF文件的点图元,但是由于Shape文件中点状地物通常表示地图上的一个独立地物,如电线杆等,他具有某些特殊的符号,因此往往需要把Shape文件的点状地物作为一个块(Block)插入到DXF文件中,这也是通用的文件格式转换工具所不能做到的。下面是一个插入图块的通用函数:PublicSubInsertBlock(lyrNameAsString,blkNameAsString,XAsDouble,YAsDouble)Print#fnum,0Print#fnum,"INSERT"‘插入图块组码Print#fnum,8Print#fnum,lyrName‘插入图块的图层名Print#fnum,100Print#fnum,"AcDbBlockReference"Print#fnum,2Print#fnum,blkName‘插入的图块名Print#fnum,10Print
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市场销售总监合作协议6篇
- 12 做个小温室 教学设计-2023-2024学年科学二年级下册苏教版
- 2024-2025学年高中物理 第三章 相互作用 2 弹力教学设计 教科版必修第一册
- 课程汇报:汇报人
- 财务经理晋升述职报告
- 腹部增强CT的护理
- 薛建改生产运营管理
- 《减法》(教学设计)-2024-2025学年三年级上册数学人教版
- 七年级美术(浙美版)上册教学设计7.鸟语花香
- 4梅花魂 教学设计-2024-2025学年语文五年级下册统编版
- 保密知识题库含答案
- 冷链物流成本控制-全面剖析
- 有关商品房预售合同样本合同样本7篇
- 2025年高考物理复习备考策略讲座
- 管理学基础-形考任务三-国开-参考资料
- 2024-2025学年北师大版七年级数学上册期末复习压轴题12个(84题)含答案
- 2023年北京市大兴区小升初数学模拟试卷(含答案)
- 2025年3月版安全环境职业健康法律法规标准文件清单
- 2025年河南交通职业技术学院单招职业技能测试题库审定版
- T∕CEC 442-2021 直流电缆载流量计算公式
- 第二十一章传导热疗法讲解
评论
0/150
提交评论