为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

基于ComGIS的从Shape文件到Dxf文件格式转换的方法

2017-03-24 4页 doc 8KB 23阅读

用户头像

is_281650

暂无简介

举报
基于ComGIS的从Shape文件到Dxf文件格式转换的方法基于ComGIS的从Shape文件到Dxf文件格式转换的方法 毕业   [摘  要]:本文详细了DXF和Shape文件结构,并介绍了1种从Shape文件到DXF文件转换的简单,解决了GIS系统软件与AutoCAD制图软件之间的数据共享的。并经过作者实践证明,该方法简单有效。 [关键词]:DXF文件,Shape文件,MapObject A Way of Format Translation from Shape File to Dxf File on Base of ComGIS Key words:Dxf File   ...
基于ComGIS的从Shape文件到Dxf文件格式转换的方法
基于ComGIS的从Shape文件到Dxf文件格式转换的 毕业   [摘  要]:本文详细了DXF和Shape文件结构,并介绍了1种从Shape文件到DXF文件转换的简单,解决了GIS系统软件与AutoCAD制图软件之间的数据共享的。并经过作者实践证明,该方法简单有效。 [关键词]:DXF文件,Shape文件,MapObject A Way of Format Translation from Shape File to Dxf File on Base of ComGIS Key words:Dxf File   Shape File   MapObject   随着软件组件式开发技术的逐渐成熟,GIS组件(如ESRI 的MapObject和MapInfo的MapX)在专业型地理信息系统开发中扮演了重要的角色[3],然而GIS2次开发组件都具有其天生的局限性,即不同系统之间的数据转换功能非常弱,特别是基本不具备从GIS数据到AutoCAD制图系统的数据格式转换功能,GIS的数据共享。因此为了实现数据的共享,必须进行数据格式的转换,,通用的数据格式转换方式有以下几种: 1、数据格式转换方法 1、常规的GIS数据格式转化方法 就是采用某种编程语言首先读取源数据文件,提取源文件中的图形信息和属性信息,然后再写入目标文件中去。这种方法需要同时非常熟悉两种数据文件的格式,因此给数据转换带来了不小的难度。 2、利用数据格式转换工具 这种方法简单方便,但是通用数据格式转换器难以避免的会丢失1些图形信息,转换出来的图形1般还需要1些特别的处理,如图形颜色设置,符号设置,区域填充设置。 3、利用第3方数据文件访问工具进行数据格式转换 这种方法灵活简单,也具有很强的灵活性,开发难度小,代价就是需要第3方的数据访问组件。随着GIS组件式开发技术的逐渐成熟,各种GIS组件都具有访问其本身的GIS数据的功能,如MapObject可以访问ESRI Shape Files、ArcInfo Coverage 和VPF等矢量数据格式。利用GIS组件的这种特点可以灵活的自己编写与其他数据格式转换的程序,或者在GIS系统的2次开发中集成数据格式转换的功能,实现 GIS数据共享。本文的就是利用GIS组件(MapObject)进行由Shape到Dxf的格式转换。 2、基于ComGIS的从Shape文件到Dxf文件格式转换的方法 1、 Shape文件结构 ESRI的Shape文件是2进制文件,能够同时存储空间图形数据和属性数据。1个Shape文件包括3个文件:1个主文件(*.shp),1个索引文件(*.shx),和1个dBASE(*.dbf)。主文件是1个直接存取变量记录长度文件,其中每个记录描述1个有它自己的vertices列表的shape。在索引文件中,每个记录包含对应主文件记录离主文件头开始的偏移,dBASE表包含了实体的属性数据。图形数据和属性数据通过索引号建立11对应的关系。 Shape文件是按照地物类型来组织的。地物类型可以分为简单的分为点(Point)、线(Line)、面(Polygon)3种类型,1个Shape文件中只能包括1种类型的地物,即只能包括点、线或者面状地物中的1种。点状地物存储的是1组坐标(X,Y),线包括简单线和多段线,存储的是1系列的坐标串(X1,Y1,X2,Y2…),面状地物存储的是1系列封闭的坐标串(X1,Y1,X2,Y2, …, X1,Y1)。 2、DXF文件结构    DXF文件有两种格式:ASC码文本格式和2进制格式。前者可以用记事本打开,简单易读,后者存储效率高[2]。DXF文件最小组成单位是组(GROUP),1个DXF文件由多个组组成。每个组在DXF文件中占两行。第1行是组码(GROUP CODE),它是1个整数;第2行是组值(GROUP VALUE),它的数据类型取决于组码的数值。例如X坐标的组码为10,Y坐标的组码为20,Z坐标的组码为30。1个DXF文件分为多个节(SECTION),每个节均由多个组(GROUP)组成。每个节均由1个组值为字符串“SECTION”的0组开始,后跟组值为表示段名的字符串的2组,其后为组成该节的各个组,最后以组值为字符串“ENDSEC”的0组表示该节结束。所有节都结束后,在DXF文件的最后是组值为字符串EOF(END OF FILE)的0组作为文件的结束标志。1个完整的DXF文件由以下7个节(SECTION)组成: A.        标(HEADER)节:包括与图形相关联的变量的设置,例如图形节最大、最小X坐标和最大、最小Y坐标($LIMMIN,$LIMMAX),点显示模式($PDMODE),点($PDSIZE)等。其中的每1个变量都通过组码 9 给出变量名,并由其后的组码提供变量值。 B.        类(CLASSES)节:类节保存由程序定义的类,而该类的实例则出现在块节(BLOCKS)、实体节(ENTITIES)和对象节(OBJECTS)中。 C.        表(TABLE)节:包含命名项的定义,存放1系列表。包括线型(LTYPE)表、层(LAYER)表、文本字样(STYLE)表、视(VIEW)表、用户坐标系统(USC)表、视窗配制(VPORT)表、尺寸标注式样(DIMSTYLE)表、应用(APPID)表。 D.       块(BLOCK)节:存放块定义的实体。对图形中每个块引用,在块节中都必需有1个条目与之对应。 E.        实体(ENTITIES)节:存放图形实体,其中包括块插入实体。DXF图形文件中的所有图元(包括点、线、面、插入块,注记文字等实体)都将在ENTITIES节定义。 F.        实体(OBJECTS)节:存储非图形对象。 G.       预览图像(THUMBNAILIMAGE)节:只有当预览图像被保存在DXF文件中时该节才存在。 编写1个构造完备的DXF文件的程序是比较困难且烦琐的,因为必须保持图形的1致性,以使AutoCAD能够接受它,同时还必须保持信息的完整性。值得庆幸是1个DXF文件可以只包含以上7个节中的若干个节,而不是全部节。以上7个节中,最重要的是实体(ENTITIES)节,实体节存储了DXF文件所有的图形对象。1个最简单的DXF文件可以只包含实体(ENTITIES)节,而不需要包含其他任何节。这样就大大降低了DXF文件编写的难度。 3、 Shape文件到DXF文件转化的实现 由于Shape文件是2进制文件,且文件格式复杂,直接使用编程语言读取Shape文件具有1定的困难,由此作者使用第3方开发组件MapObject提供的对Shape文件的数据访问接口来读取Shape文件内容,大大降低了Shape文件到DXF文件格式转化的编程工作量。 MapObject是目前最优秀的GIS2次开发组件之1,他提供了1系列的GIS制图功能和访问ESRI Shape Files的数据访问接口[1]。利用MapObject对Shape文件的数据访问功能来提取Shape的图形信息,具有不丢失图形信息、数据访问简单等优点。下面是Shape文件类型与DXF图元类型对照表: 地物类型 Shape文件地物类型 [1]  
/
本文档为【基于ComGIS的从Shape文件到Dxf文件格式转换的方法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索