基于ComGIS的从Shape文件到Dxf文件格式转换.docVIP

基于ComGIS的从Shape文件到Dxf文件格式转换.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于ComGIS的从Shape文件到Dxf文件格式转换 随着软件组件式开发技术的逐渐成熟,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的格式转换。 二、基于gis的从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)表、视

文档评论(0)

scj1122115 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6203112234000004

1亿VIP精品文档

相关文档