网站首页 | 经济学论文 | 证券金融 | 管理学 | 会计审计 | 法学论文 | 医药学论文 | 社会学论文 | 教育论文 | 计算机 | 艺术论文 | 哲学论文 | 财务管理 |
写论文网
  • 发展战略论文
  • 国际经济论文
  • 行业经济论文
  • 新经济学论文
  • 中国经济论文
  • 国际贸易论文
  • 地方战略论文
  • 您的位置:写论文网 > 经济学论文 > 地方战略论文 > 基于ComGIS的从Shape文件到Dx... 正文 2019-12-26 07:27:31

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

    相关热词搜索:

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

    基于ComGIS的从Shape文件到Dxf文件格式转换的方法 Abstract:This article analyzes the form of DXF file and Shape file in detail, and introduces a simple method of translating Shape file into DXF file to solve the problem of the data sharing between AutoCAD system and GIS system. Through the author’s practice, it has been confirmed that the means is efficient. Key words:Dxf File Shape File MapObject 随着软件组件式开发技术的逐渐成熟,GIS组件(如 ESRI 的MapObject和MapInfo的MapX)在专业型地理信息系统开发中扮演了重 要的角色[3],然而GIS二次开发组件都具有其天生的局限性,即不同系统之间的 数据转换功能非常弱,特别是基本不具备从GIS数据到AutoCAD制图系统的数据 格式转换功能,影响GIS的数据共享。因此为了实现数据的共享,必须进行数据 格式的转换,目前,通用的数据格式转换方式有以下几种:
    一、数据格式转换 方法 1、常规的GIS数据格式转化方法 就是采用某种编程语言首先读取源数据文 件,提取源文件中的图形信息和属性信息,然后再写入目标文件中去。这种方法 需要同时非常熟悉两种数据文件的格式,因此给数据转换带来了不小的难度。

    2、 利用数据格式转换工具 这种方法简单方便,但是通用数据格式转换器难以避免 的会丢失一些图形信息,转换出来的图形一般还需要一些特别的处理,如图形颜 色设置,符号设置,区域填充设置。

    3、利用第三方数据文件访问工具进行数据 格式转换 这种方法灵活简单,也具有很强的灵活性,开发难度小,代价就是需 要第三方的数据访问组件。随着GIS组件式开发技术的逐渐成熟,各种GIS组件 都具有访问其本身的GIS数据的功能,如MapObject可以访问ESRI Shape Files、 ArcInfo Coverage 和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文件中占两行。第一行是组码(GROUP CODE),它是一个整数;
    第二行是组值(GROUP VALUE),它的数据类型取 决于组码的数值。例如X坐标的组码为10,Y坐标的组码为20,Z坐标的组码为30。

    一个DXF文件分为多个节(SECTION),每个节均由多个组(GROUP)组成。

    每个节均由一个组值为字符串“SECTION”的0组开始,后跟组值为表示段名的字 符串的2组,其后为组成该节的各个组,最后以组值为字符串“ENDSEC”的0组表 示该节结束。所有节都结束后,在DXF文件的最后是组值为字符串EOF(END OF FILE)的0组作为文件的结束标志。一个完整的DXF文件由以下七个节 (SECTION)组成:
    A. 标题(HEADER)节:包括与图形相关联的变量的设 置,例如图形节最大、最小X坐标和最大、最小Y坐标($LIMMIN,$LIMMAX), 点显示模式($PDMODE),点尺寸($PDSIZE)等。其中的每一个变量都通过 组码 9 给出变量名,并由其后的组码提供变量值。

    B. 类(CLASSES)节:
    类节保存由应用程序定义的类, 地物类型 Shape文件地物类型 DXF图元类型 点 MoShapeTypePoint Point,Block 线 MoShapeTypeLine Line 面 MoShapeTypePolygon Polygon 文字 注记(不属于Shape文件类型) TEXT 点状地物对应DXF文件的点图元,但是由于Shape文件中点状地物通常表 示地图上的一个独立地物,如电线杆等,他具有某些特殊的符号,因此往往需要 把Shape文件的点状地物作为一个块(Block)插入到DXF文件中,这也是通用的 文件格式转换工具所不能做到的。下面是一个插入图块的通用函数:
    Public Sub InsertBlock(lyrName As String, blkName As String, X As Double, Y As Double) Print #fnum, 0 Print #fnum, "INSERT" ‘插入图块组码 Print #fnum, 8 Print #fnum, lyrName ‘插入图块的图层名 Print #fnum, 100Print #fnum, "AcDbBlockReference" Print #fnum, 2 Print #fnum, blkName ‘插入的图块名 Print #fnum, 10 Print #fnum, X ‘插入图块点X坐标 Print #fnum, 20 Print #fnum, Y ‘插入图块点Y坐标 End Sub 3、结束语 作者结合在系统开发过程 参考文献 [1] http://www.esrichina-bj.cn/ [2] http://mjtd.com/ [3] 地理信息系统-原理、方法和应用,邬伦等,科学出版社,2002

    • 范文大全
    • 教案
    • 优秀作文
    • 教师范文
    • 综合阅读
    • 读后感
    • 说说
    基于ComGIS的从Shape文件到Dxf文件格式转换的方法:文件格式》由(写论文网)整理提供,版权归原作者、原出处所有。
    Copyright © 2019 写论文网 All Rights Reserved.