文档库 最新最全的文档下载
当前位置:文档库 › arcgis转CAD

arcgis转CAD

arcgis转CAD
arcgis转CAD

从DWG到SHP数据的一种实用转换方法的介绍

2011-02-12国土资源信息化|李勇平

摘要:对于很多土地数据生产、管理单位来说,为了充分发挥对数据查询、分析的作用,在信息化的过程中,往往需要将已有的CAD数字图转换成GIS格式的数据后入库。因此,掌握CAD数据到GIS数据的转换对生产管理单位具有实际的意义,本文介绍了如何完成这种转换。

关键字:CAD;GIS;数据转换

1 引言

从白纸手工绘图到数字测图,是测绘行业中一场重要的技术变革,数字地图克服了纸质图保存不方便、会变形的缺点,方便了编辑与传输共享,极大地提高了效率、拓宽了地图使用的方式,为地图信息化打下了坚实的基础。随着信息化时代的到来,各行业业务不断扩展,部门以及公众对信息的需求与日俱增,例如交通出行、旅游线路查询,土地资源管理中地楼房的关系及价格信息。显然,CAD格式的数字地图难以满足在信息查询、分析统计方面的需要,为此,地理信息系统作为一门已有的学科开始得到广泛地应用,对应的GIS数据格式也已开发出来,GIS数据格式是为地理信息存储专门设计的,包括空间位置及属性信息,通过优化,借助于大中型对象关系数据库来管理,利于存储图形及属性信息在此基础L设计应用系统、专家系统,不但可以对信息进行查询(既可空间定位,也可查找属性),还能分析运算形成新的决策数据,这些应用都是数字CAD图所不具备的,却是以S所擅长的,同时又是多个行业部门所需要的功能,包括国土、交通、公安、消防、农业、水利等行业。

2 地籍管理

在地籍管理工作中,首先,要进行土地利用类别现状的调查,查清全国各类土地数量、质量和利用状况;其次,要依法进行土地登记和统计,最后要开展土地估价和地产评价,为实施土地有偿使用提供可靠的依据[1]。

在日常生活中,土地使用情况是不断变化的,特别是随着经济的发展,这种变化更为明显,为了保持土地利用成果的现势性,还要不定期地进行土地更新调查。例如,为了从宏观上掌握土地利用情况,从2007年开始全国开展第二次土地调查,并巨要求提供相应的地理数据格式的成果。

在土地调查成果中,土地利用现状图,包括土地类别、土地编码属性信息,这些信息为土地使用状况的统计汇总、管理决策提供数据基础,初始数据如果是CAD格式,则需要将成果数据转成地理信息数据,信息化过程涉及到测绘数据转换、数据建库、应用系统开发。

3 CAD数据与GIS数据

CAD绘图系统有很多种平台,包括AutoCAD、国产CAD软件、及开源CAD、……,每个软件都有自己的数据格式。广泛使用的AutoCAD使用的文件是格式,这种文件格式是

未公开的,为了方便图形交换,Autodesk公司另外提供了公开的DXF格式。

在DWG图形文件中,数据库容器中每个数据库对象都具有一个特征:句柄(Handle),这个值在图形/D XF文件中是唯一的,并且在图形的生命期内固定[2]。数据库对象分为图形对象和非图形对象,图形对象也就是图元:如一个点、一条多段线、一个圆,都是一个图元,其句柄值是唯一的。假若在相同位置画相同半径的两个圆,查询后会发现它们的句柄值是不同的,因此,可以将句柄值作为图元的识别码。

在DWG中,图形对象并不直接存贮属性数据,相反,对属性数据的存贮是通过图形的扩展数据XDATA来实现,利用XDATA设计变量,然后将属性数据赋给这些变量来完成。AutoCAD没有提供相应的菜单命令来直接操作XDATA,要读写属性数据,借助该平台的二次开发,选择一种开发语言:Lisp/visual lisp、VBA/VB或C十+编写代码来读写这些属性数据。

地理信息系统(GIS)是用于输入、存储、查询、分析和显示地理数据的计算机系统l3]。它包含好几个部分,地理数据模型一般可分为矢量模型与栅格模型,矢量模型根据要素特征分为点、线、面数据模型及其它复杂对象,不象CAD中,可以将点、线、面数据混合存放在一个图层,相反,地理数据是严格分层的,一个图层只能存放一种要素,相应的图层文件既可组织成PC机磁盘里的目录下某个具体的文件,又可导人到地理数据库中的表中统一存放。地理信息系统软件平台,有ArcGIS、一些国产GIS软件及开源以S软件、…,这些软件也都有自己的GIS数据格式。目前,广泛使用的地理数据很多采用SHP格式,这是由ESRI 公司开发并已公开的一种GIS数据格式,大多数GIS软件都支持打开这种数据,进行浏览查看等等。

4 数据采集现状

数据采集,根据空间数据的来源不同,一般可以采用以下几种:野外数据采集、原图(底图)数据采集、以及航片数据采集[4]……,各种采集方法都有相应的特点。

对于野外数据采集来说,目前测量作业流程大致包括以下步骤:技术设计、布设控制网、外业数据采集(包括属性数据的获取、权属调查)、内业编辑、质量检查、最终形成数据成果。外业采集中区别较大的情况是在何种平台下进行,成果数据的格式对平台的选用会有一定影响。

数字测绘系统:有CAD下的二次开发产品、国产数字绘图系统有清华山维公司的ESPW、……,在土地基础数据行业中,随着GIS信息化技术的应用,已有作业单位尝试在GIS平台下采集。就笔者了解的实际情况来看,目前在广东范围的测绘队伍,很多采用传统的作法:基于CAD平台下的绘图系统进行数字化测图,然后再转换成相应的地理数据格式。而且,一些外业单位对CIS软件及数据的理解使用也远没有CAD那么熟练,测图编辑后得

到的数字图,必要时还得扩充或修改绘图系统,设计存贮属性数据,作专门的接口模块将数字图形格式转换成GIS格式。

此外,有很多行业的单位,一般会积累了大量具有完整属性的数字地图,也需要将这些图形组织导入GIS库,以方便应用管理。

5 ActiveX技术简述

在早期或者难以扩展的软件中,功能往往限制住,难以修改,如果要对软件添加一些功能,必须修改源代码,然后重新编译,再重新安装,如果只添加一个小的应用,对于软件公司来说,维护成本较高;对于客户,显得很不灵活。

针对因特网的应用,微软公司开发了ActiveX:一种为网络通信而设计的技术标准,理论基础是微软的组件对象模型(COM),它是一种二进制标准,与具体的开发语言无关,由服务器提供各种服务,而客户端调用其服务,然而,ActiveX也广泛应用于桌面系统。

如同Access、Excel, AutoCAD也采用了ActiveX Automation技术,ActiveX使用户能够从AutoCAD的内部或外部(独立的应用程序)以编程方式来操作Auto-CAD以扩充其功能,简单的如修改菜单,添加一个命令,复杂的还可以进行系统开发(市场上有一些测量绘图系统是在AutoCAD下二次开发的)。通过ActiveX将AutoCAD对象展现给“外部世界”,这些对象被展现后,不同的编程语言和环境(例如Access VBA、Excel VBA或AutoCAD VBA)就能够访问它们,例如,可以编写一段程序访问AutoCAD中的图形数据,同时又将信息从Excel读取或写入。

AutoCAD环境下提供了很多API,可以找到以下两个函数:SetXData、GetXData,其功能是设置、读写图形对象的扩展数据,方法是在图形对象上调用相应的SetXData、GetXData函数。函数及参数表如下所示:SetXData XdataType,XData和GetXData AppName, XDatafype, XData Value.

6 DWG到SHP的数据转换

通过CAD下二次开发的测绘系统采集得到了CAD数据,而地理信息数据采用的是GIS 格式,因此需要一种转换从CAD格式中获取GIS数据,下面以广泛使用的DWG用XF数据和SHP数据来说明这个过程。

通用的GIS平台软件一般都提供了从DWG用XF到SHP的转换功能,但是这种转换是简单的,转出来的SHP图层不带有预期的扩展属性,伴随着信息丢失,没有一个简单的命令能一蹴而就,但是经过分析,我们可以将数字地图的属性信息另行输出,然后将输出的图形及对应的属性信息链接合并,就得到了完整的SHP数据成果,转换流程图如下所示:

图1 DWG/DXF格式转换到SHP格式的流程图

具体转换步骤描述如下:

1.利用通用的GIS平台软件,将DWG图层转换成SHP图层,转换时选择输出项,得到带Handle字段的SHP图层,ArcGIS中的ArcToolbox提供有这样的工具;

2.使用AutoCAD的Express Tool具的命令查看DWG图形是否带有扩展属性,如果带有属性数据,则弄清楚原始数据包含哪些属性,详细分析后建立xDATA与图层属性结构的映射关系,根据映射关系,对于每个图层,创建对应的DBF表结构,例如对JZD(界址点)图层建立的属性结构如下表所示:

图2 JZD图层属性结构字段表

3.在AutoCAD下利用二次开发语言编写vBA代码,将DWG图层中图元的属性数据写人步骤2中对应的DBF或其它格式的文件,得到图形图层对应的属性信息表;

4.使用GIS软件的功能,通过SHP图层和属性信息表中的公共字段Handie将图形与属性挂接;例如ArcGIS软件中的Join菜单命令,可以将SHAPE图层与属性文件(DBF、MDB、或ExCEL格式)挂接后并输出,输出后的SHP层就具有图形和属性的完整信息;

5.将输出的SHP图层中的多余公共字段删除,再进行编辑,最后得到符合要求的SHP 成果数据。

上述即为转换的整个步骤,实际需要编码的是步骤3(读取DwG图形属性并写人DBF 文件),我们看看下面的代码段,这是在AutoCAD开发环境下用vBA编写的读取选择集中图形对象属性的关键代码片段:

…定义变量以保存扩展属性数据

Dim xDataType As Variant

Dim xData As Variant

…创建选择集

Dim ss as object

Set ss=ThisDrawing.Selectionsets.Add(“S1”)

…定义图形对象

Dim ent As AcadEntity

…遍历选择集中的对象

For Each ent In ss

…将该图元所有的扩展信息存放在xDataType,

xData变量中

ent.GetAData "",xDataType,xData

Next ent

以上代码演示了如何获取扩展数据,代码执行后xDataTyPe,xData变量已含该图元所有的属性,然后将xDataType,xData变量中的属性值写入MDB、DBF或其它格式的文件,完成属性值的输出。

有了SHP图形图层,及对应的DBF属性表之后,就使用ArcGIS中的JOIN工具将两者链接并输出结果。

7 实际案例应用

在08年中旬,勘测部门测量了一批土地利用现状图数据(DWG格式),然后要把这批数据导入GIS库中,首先要建立一个地理数据库,再将DWG数据转换成SHP格式后导人已建好的数据库中。

简单查看后,发现原始图形包含有界址点、界址线、宗地、面状地类以及线状地类等图层,再用ExPresstool工具分析图形中包含的图层,发现原始DWG图形中的图斑、线状地类图层含有较为完整的土地属性信息,根据图1流程图的步骤分别将图形图层及属性处理输出,得到了相应的SHP图层,最后用GIS软件加载这些图层,图形如下图所示:

图3 转换后的MZDL图层及MZDL属性表

8 小结

在测绘生产或管理部门的实际工作中,在测绘作业过程中往往会产生大量CAD数据,同时也有很多历史数据,随着信息化进程,要求信息利用、资源整合,将这些数据转换人库,以供查询、统计分析,宏观管理使用,面对这种需求,运用上述方法,我们只需在Auto-CAD 下编写少量的VBA代码,借助通用的平台软件,就可以完成,这种方法的优点是编码量少,对于非计算机专业人员来说,较为快捷实用,上述方法的关键是利用一个公共字段Handle,保证转换后的图形与属J吐的一一对应关系,确保图属一致,达到了转换的预期目标,对于解决信息化过程中数据转换问题有实际的意义。

参考文献:

[1]金其坤主编.地籍测量[M].北京:地质出版社1994.5 7.

[2]Autodesk ino.AutoCAD Help.

[3][美]Kang-tsung Chang著.陈健飞.等译.地理信息系统导论[M].科学出版社1.

[4]杨德麟等.大比例尺数字测图的原理.方法与应用[M].北京:清华大学出版社3-4.

Shp格式转DWG:

Shp是空间数据的通用格式,也是苍穹软件支持的标准格式;dwg是cad、cass等作图软件最常使用的格式。可是无论是苍穹软件,还是CAD、cass都不能独自实现这两种数据格式的互相转换。要转换这两种数据,需要借助第三方软件的支持,我们作业人员最常使用的转换工具就是ARCGIS中的ARCMAP模块。以下是转换方法。

1、把数据保存成shp 格式。

这样可以把分幅图里的任意一层数据输出成shp格式。

2、打开ARCMAP:

口:

选择OK,即可。

3、加载shp数据到ARCMAP中:

这个是ARCMAP的一个bax,通过它打开工具箱,如下:

选择Conversion Tools下的To CAD

选择Export to CAD加载上面输出的shp数据。

在Input Features后面的文件夹中选择存储shp数据的路径,

在Output file中选着输出的文件保存路径。这里可以不设置,会有一个默认的路径保存在shp 数据一起。最后点OK,即可。

输出的这个就是Dwg格式的文件,可以用CAD、Cass查看。只有坐标,没有其他属性数据。

CAD数据与ArcGIS数据的互转换

CAD数据往往是分层管理的,将CAD数据转成arcgis数据,最担心的莫过于丢失了属性数据,arcgis9.2提供了一种方法,可以将CAD数据完整的转换为personal geodatabase,属性信息不会丢失,方法如下:

ArcToolbox--->Conversion Tools-->To Geodatabase-->Import from CAD。

同时,我们往往需要将arcgis格式的数据转成CAD数据,往往需要让某一个关键字段可以转换成CAD格式的不同图层。下面大致讲一下将shp数据转换为CAD 格式的方法。

1、添加CAD字段到要转换的shp文件中,方法为:ArcToolbox--->Conversion Tools-->To CAD-->Add CAD Fields.

2、将你要分层显示的字段的字段名改为“Layer”,然后导出为CAD数据。方法为:ArcToolbox--->Conversion Tools--> Export To CAD.

如何在ArcGIS中插入CAD的图

在ArcGIS中插入CAD图可以通过添加数据直接添加。

另外,可以再ArcToolbox中搜索Import CAD Annotation 工具,添加CAD注释;

当然也可以利用Import From CAD 工具,将CAD格式文件进行转换……

下面给你介绍一种方法:

使用Load Objects wizard。

首先将此工具添加到ArcMap,

然后就是具体使用了,相信你自己会弄明白的,直接看帮助文件吧!

建议你是用ArcToolbox中的Search,输入CAD,进行搜索,总会找到你要的工具的,还有,学会利用帮助文档,输入索引CAD,会有一系列帮助。值得一提的是,个人认为ArcGIS中使用CAD 还是不太方便,现在ArcGIS本身的作图功能越来越完善,可以的话,直接用ArcGIS作图可能好些。

相互转换属性数据要丢失!!!!

相关文档