首页 > 范文大全 > 正文

AutoCAD数据转换为SHP文件的新方法

开篇:润墨网以专业的文秘视角,为您筛选了一篇AutoCAD数据转换为SHP文件的新方法范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要 ArcGIS 作为一款对地理数据进行创建、管理、整合与分析的综合系统软件,目前已在我国各行业得到广泛应用,发挥了具大作用并产生很大影响,但该系统分析所依据的地图数据多来源于CAD类测图软件,因此如何更好的将 CAD数据格式转换成 GIS数据格式成为越来越被关注的问题。本文提出了一种cad数据转shp文件格式的新方法,并且在工程实践中得到成功应用。

关键词 autocad;ArcGIS;SHP;数据转换

中图分类号TP31 文献标识码A 文章编号 1674-6708(2012)69-0195-03

1 概述

AutoCAD软件作为大比例尺地形图测绘的一个基础平台,有着非常广泛的应用,其图形要素的属性都以外挂数据库方式管理。为了使地形数据与GIS系统进行对接,对CAD数据进行GIS转换是非常必要的。由于CAD的实体(点、线或面)及符号(以块的形式组织)完全不同于GIS的数据组织格式,这些都要求找到一套较好的方案进行批量无缝的转换。

对于上述情况,ArcGIS提供了CAD转换到Feature Class的几种实现方法,每种方法都有其适用的场合、优势。

2 基于ArcGis的数据转换的缺点

CAD文件是由诸如颜色、线型、线宽、符号等静态图形特征组织后的图层集合,其图层并没有象GIS中的图层那样组织严密,实体/元素都包含在一个单一的文件中,属性数据的主要描述图层和注记。

ArcGIS在读取CAD文件的时候,没有按照CAD的数据组织方式分层,而是根据要素类型分层,将所有同一类型的要素放置到一个图层上来。图层信息存储在layer字段。

在CAD转换为FeatureClass的时候要素在转换过程中,除了要素CAD的数据转化为FeatureClass,还要将属于同一图层的要素打散,按照Layer字段值再次分层。在ArcGIS下有多种方式实现CAD转featureClass。现有的功能包括:数据互操作扩展提供的export data功能,gp等。

在ArcGIS下有多种方式实现CAD转featureclass。现有的功能包括:数据互操作扩展提供的export data功能,gp以及gp提供的示例。

这种做法比较繁琐,分层导入每次都要去设置过滤属性,效率比较低下,全手工操作,对作业人员提出了很高的要求,不适合大规模生产。

3 新作业流程

本文提出了一种新的数据转换方式,其主导思想是:将CAD数据进行分层处理,按地形类型及实体类型分层,在AutoCAD下进行编辑和查错,将编辑好的数据生成文本文件,根据各层对数据的不同要求,将扩展属性放入文本文件中,利用ArcEngine+c#开发转换程序,将文本文件直接生成shp文件

下面是具体的作业流程:

如果AutoCAD文件的层比较乱,或者各种地物混在一个层中,就需要采用人工或程序自动提取的办法,将数据分类分层。

3.1 对数据格式的要求

1)图面表示应满足相关规范或规定对1:500或1:1000地形图的要求,实体属性应满足1:500或1:1000基础地理信息数据的要求。全要素组织地形,相邻分幅的数据必须作接边处理,且分层必须统一;

2)文字注记应保持其完整性,如“长安大街”,应为一个整体,可通过软件进行查询;

3)对于图例符号,必须遵照相关国家标准制作和使用图例及线型,且图例和线型不能被打散;

4)建筑物、绿地、水系、桥梁、接图表等面状数据必须封闭为一个整体,面状数据要有高程;

5)因不同格式的数据表达方式不同,所有信息(包括扩展属性)必须可读、可提取,不能使用不能读取的外部参照或型文件。

3.2 数据分层及要素库结构

3.2.1 分层

3.2.2 数据库结构

3.3 建筑物层和注记层提取

1)在地形图上绘制一定间隔的纵线和横线,将图形分为若干矩形区域,按区域逐线进行检查,检查CAD图形数据,确保每一建筑物注记存在且唯一(包含材质和楼层,其中楼层为1时不能省略);

2)检查CAD图形网格线附近的建筑物确保建筑物形状正确且闭合(主要是由于分幅产生的建筑物分隔错误);

3)使用程序单独提取“建筑物和注记”层,并另存为“建筑物和注记.dwg”文件;

4)使用程序对建筑物进行拓扑检查,以下是具体命令及说明:

(1)dpt:删除多段线中的重复点;

(2)chk7:多段线重复连线检查(手动修改错误);

(3)chkbh: 检查建筑物是否闭合;

(4)expln:导出图形多段线坐标;

(5)chk1:多段线自相交检查;

(6)chk2:多段线与多段线交叉检查;

(7)chk5:多段线(面)与多段线(面)的裂缝重叠检查;

(8)chk6:查建筑物少节点;

(9)djc:清除检查点中的重点;

(10)djd:清除建筑物节点的重复点并排序;

(11)jjd:给建筑物加节点;

(12)dchkpt:绘制检查点。

各命令运行顺序:

(1)(2)(3)

(4)

(5)(9)(12)修改检查点处的错误

(4)

(6)(9)(12)修改检查点处的错误

(4)

(7)(9)(12)修改检查点处的错误

(4)

(8)(10)(12)(13)自动加了节点无须改错

注意:以上检查请多次重复使用直至没有错误。

5)使用程序给建筑物添加扩展属性。

3.4 绿地层提取

1)新建“绿地”层,在地形图上绘制一定间隔的纵线和横线,将图形分为若干矩形区域,按区域逐线进行检查,查图使地形图绿地在“绿地”层下并且保证绿地都是闭合的;

2)单独提取“绿地”层,并另存为“绿地.dwg”文件;

3)使用程序对绿地进行拓扑检查,以下是具体命令及说明:

(1)dpt:删除多段线中的重复点,多段线变红色(新改进的命令,先检查正确性);

(2)chk7:多段线重复连线检查(手动修改错误);

(3)chkbh:检查绿地是否闭合;

(4)expln:导出图形多段线坐标;

(5)chk1:多段线自相交检查;

(6)chk2:多段线与多段线交叉检查;

(7)chk5:多段线(面)与多段线(面)的裂缝重叠检查;

(8)chk6:查绿地少节点;

(9)djc:清除检查点中的重点;

(10)djd:清除绿地节点的重复点并排序;

(11)jjd:给绿地加节点;

(12)dchkpt:绘制检查点。

运行顺序:

(1)(2)(3)

(4)

(5)(9)(12)修改检查点处的错误

(4)

(6)(9)(12)修改检查点处的错误

(4)

(7)(9)(12) 修改检查点处的错误

(4)

(8)(10)(12)(13)自动加了节点无须改错

注意:以上检查请多次重复使用直至没有错误。

3.5 独立地物层提取

新建“独立地物”层,根据要素名称提取这三层要素,并另存为“独立地物.dwg”文件。

3.6 水系层提取

1)新建“水系”层,在地形图上绘制一定间隔的纵线和横线,将图形分为若干矩形区域,按区域逐线进行检查,查图使河流,湖泊等水系置于“水系”层下并且保证水系都是闭合的;

2)单独提取“水系”层,并另存为“水系.dwg”文件;

3)使用程序对水系进行拓扑检查,以下是具体命令及说明:

(1)dpt:删除多段线中的重复点,多段线变红色;

(2)chk7:多段线重复连线检查(手动修改错误);

(3)chkbh: 检查水系是否闭合;

(4)expln:导出图形多段线坐标;

(5)chk1:多段线自相交检查;

(6)chk2:多段线与多段线交叉检查;

(7)chk5:多段线(面)与多段线(面)的裂缝重叠检查;

(8)chk6:查水系少节点;

(9)djc:清除检查点中的重点;

(10)djd:清除水系节点的重复点并排序;

(11)jjd:给水系加节点;

(12)dchkpt:绘制检查点。

运行顺序:

(1)(2)(3)

(4)

(5)(9)(12) 修改检查点处的错误

(4)

(6)(9)(12) 修改检查点处的错误

(4)

(7)(9)(12)修改检查点处的错误

(4)

(8)(10)(12)(13)自动加了节点无须改错

注意:以上检查请多次重复使用直至没有错误。

3.7 道路层提取

1)新建“道路”层,在地形图上绘制一定间隔的纵线和横线,将图形分为若干矩形区域,按区域逐线进行检查,查图使道路置于“道路”层下并且保证道路都是闭合的;

2)单独提取“道路”层,并另存为“道路.dwg”文件;

3)使用程序对道路进行拓扑检查,以下是命令及说明:

(1)dpt:删除多段线中的重复点,多段线变红色;

(2)chk7:多段线重复连线检查(手动修改错误);

(3)chkbh: 检查建筑物是否闭合;

(4)expln:导出图形多段线坐标;

(5)chk1:多段线自相交检查;

(6)chk2:多段线与多段线交叉检查;

(7)chk5:多段线(面)与多段线(面)的裂缝重叠检查;

(8)chk6:查建筑物少节点;

(9)djc:清除检查点中的重点;

(10)djd:清除建筑物节点的重复点并排序;

(11)jjd:给建筑物加节点;

(12)dchkpt:绘制检查点。

运行顺序:

(1)(2)(3)

(4)

(5)(9)(12) 修改检查点处的错误

(4)

(6)(9)(12) 修改检查点处的错误

(4)

(7)(9)(12) 修改检查点处的错误

(4)

(8)(10)(12) (13)自动加了节点无须改错

注意:以上检查请多次重复使用直至没有错误。

3.8 道路中心线提取

1)新建“道路中心线”层,在地形图上绘制一定间隔的纵线和横线,将图形分为若干矩形区域,按区域逐线进行检查,查图使道路中心线置于“道路中心线”层,在十字路口、丁字路口处道路中心线断开;

2)单独提取“道路中心线”层,并另存为“道路中心线.dwg”文件;

3)对道路添加扩展属性(道路名称)。

3.9 输出各层的txt文件,转为shp文件并入库

在CAD下将各层数据分别输出txt文件,再转为.shp文件入库。

4 结论

利用该转换方式将CAD数据转换ArcGIS的数据,不仅保证数据的完整性和可使用性,且转换效率也有很大提高,能够进行大批量的自动处理。借助此方式我们可以实现CAD与GIS的数据交互,为GIS在工程设计领域进行双向集成提供了技术基础。

参考文献

[1]陈建飞,等.地理信息系统导论[M].北京:科学出版社,2010.

[2]陈建飞,等.基于VBA的ArcObjects编程——面向任务的方法[M].北京:科学出版社,2010.

[3]邱洪刚等.ArcGIS Engine开发从入门到精通[M].北京:人民邮电出版社,2010.

[4]《1:500 1:1000 1:2000地形图图式》GB/T7929-1995[S].北京:中国标准出版社,1996.