欢迎来到天天文库
浏览记录
ID:20698649
大小:55.05 KB
页数:8页
时间:2018-10-15
《基于comgis的从shape文件到dxf文件格式转换的方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于ComGIS的从Shape文件到Dxf文件格式转换的方法[摘要]:本文详细分析了DXF和Shape文件结构,并介绍了一种从Shape文件到DXF文件转换的简单方法,解决了GIS系统软件与AutoCAD制图软件之间的数据共享的问题。并经过作者实践证明,该方法简单有效。[关键词]:DXF文件,Shape文件,MapObjectAWayofFormatTranslationfromShapeFiletoDxfFileonBaseofComGISAbstract:Thisarticleanalyzesthefor
2、mofDXFfileandShapeplemethodoletosolvetenAutoCADsspracticefileindetail,andintroducesasimftrans1atingShapefileintoDXFfiheproblemofthedatasharingbetweystemandGISsystem.Throughtheauthor?ithasbeenconfirmedthatthemeansisefficient.Keywords:DxfFileShapeFileMapObjec
3、t随着软件组件式开发技术的逐渐成熟,GIS组件(如ESRI的MapObject和MapInfo的MapX)在专业型地理信息系统开发中扮演了重要的角色[3],然而GIS二次开发组件都具有其天生的局限性,即不同系统之间的数据转换功能非常弱,特别是基本不具备从GIS数据到AutoCAD制图系统的数据格式转换功能,影响GIS的数据共享。因此为了实现数据的共享,必须进行数据格式的转换,目前,通用的数据格式转换方式有以下几种:一、数据格式转换方法1、常规的GIS数据格式转化方法就是采用某种编程语言首先读取源数据文件,提取
4、源文件中的图形信息和属性信息,然后再写入目标文件中去。这种方法需要同时非常熟悉两种数据文件的格式,因此给数据转换带来了不小的难度。2、利用数据格式转换工具这种方法简单方便,但是通用数据格式转换器难以避免的会丢失一些图形信息,转换出来的图形一般还需要一些特别的处理,如图形颜色设置,符号设置,区域填充设置。3、利用第三方数据文件访问工具进行数据格式转换这种方法灵活简单,也具有很强的灵活性,开发难度小,代价就是需要第三方的数据访问组件。随着GIS组件式开发技术的逐渐成熟,各种GIS组件都具有访问其本身的GIS数据的
5、功能,如MapObject可以访问ESRIShapeFiles、ArclnfoCoverage和VPF等矢量数据格式。利用GIS组件的这种特点可以灵活的自己编写与其他数据格式转换的程序,或者在GIS系统的二次开发中集成数据格式转换的功能,实现GIS数据共享。本文研宄的内容就是利用GIS组件(MapObject)进行由Shape到Dxf的格式转换。二、基于ComGIS的从Shape文件到Dxf文件格式转换的方法1、Shape文件结构ESRI的Shape文件是二进制文件,能够同时存储空间形数据和属性数据。一个Sh
6、ape文件包括三个文件:一个主文件(*.31^),一个索引文件(*.shx),和一个dBASE(*.dbf)表。主文件是一个直接存取变量记录长度文件其中每个记录描述一个有它自己的vertices列表的shape在索引文件中,每个记录包含对应主文件记录离主文件头开始的偏移,dBASE表包含了实体的属性数据。图形数据和属性数据通过索引号建立一一对应的关系。Shape文件是按照地物类型来组织的。地物类型可以分为简单的分为点(Point)、线(Line)、面(Polygon)三种类型,一个Shape文件中只能包括一种
7、类型的地物,即只能包括点、线或者面状地物中的一种。点状地物存储的是一组坐标(X,Y),线包括简单线和多段线,存储的是一系列的坐标串(X1,Y1,X2,Y2…),面状地物存储的是一系列1,Y1)封闭的坐标串(X1,Y1,X2,Y22、DXF文件结构DXF文件有两种格式:ASC码文本格式和二进制格式。前者可以用记事本打开,简单易读,后者存储效率高[2]。DXF文件最小组成单位是组(GROUP),一个DXF文件由多个组组成。每个组在DXF文件中占两行。第一行是组码(GROUPCODE),它是一个整数;第二行是组值(
8、GROUPVALUE),它的数据类型取决于组码的数值。例如X坐标的组码为10,Y坐标的组码为20,Z坐标的组码为30。一个DXF文件分为多个节(SECTION),每个节均由多个组(GROUP)组成。每个节均由一个组值为字符串“SECTION”的0组开始,后跟组值为表示段名的字符串的2组,其后为组成该节的各个组,最后以组值为字符串“ENDSEC”的0组表示该节结束。所有节都结束后,在DXF文件的最后是
此文档下载收益归作者所有