| 一、 引言 CASS软件是以AutoCAD软件为支撑的测绘行业大比例尺外业成图的常用软件,AutoCAD内嵌的VBA及AutoLSP编程方式为一般用户提供了多途径的二次开发环境,但因为AutoCAD自身图形及属性结构不能满足在GIS领域的分析、查询等应用方面需要,所以CASS软件在GIS领域常常作为数据采集、编辑的预处理软件;MapGIS软件是国产GIS软件的先驱代表,其图形编辑、投影、图像处理、空间分析、数据库管理等功能,经过多年的应用和改进已经十分完善,在地质勘查、土地管理等行业已经成为标准业内软件,但MapGIS在矢量图形的输入和编辑上较AutoCAD弱。在实际应用过程中往往需要将两者结合使用,但由于两者在文件格式等方面不兼容,造成了应用上的极为不便。 在大比例尺城镇地籍数据库建设中,由于基础图形资料是用CASS成图,而最终成果是建立MapGIS地籍管理数据库,两软件在图形格式和结构上完全迥异,不能直接利用。本文以城镇地籍数据库图形转换过程为例,提出CASS和MapGIS软件相互衔接转换的过程和思路,不足之处请同行指正。 二、 转换关系 从CASS图形要素转换到MapGIS图形要素的过程,其实就是不同软件的实体对象相互认别、转换的过程。 逻辑转换关系:CAD逻辑图层→MapGIS点、线、面文件。 对象转换关系:地籍权属专题对象到MapGIS对象关系较简单,将CASS中封闭的权属单元转换为MapGIS面图元,对于CASS的宗地对象(包括界址点和界址线),将界址线转换为面图元,界址点转换为所在宗地面图元的结点对象即可。 以下是CAD对象与MapGIS对象关系转换对应的一般模式: ![]() 属性转换关系:CASS图元扩展属性→MapGIS属性。 三、转换流程 具体的转换流程如图1所示。 ![]() 图1 转换流程 四、程序实现 1.创建对象引用 在VB环境中引用如下对象(视AutoCAD和MapGIS版本不同,引用对象略有不同): AutoCAD2006对象acax16enu.tlb MapGIS6.5对象MapGISBasCom1.dll,MapGIS-BasCtl.dll,MapGISBasCtl1.dll,MapGISBasCtl2.dll,MapGISDbsCom.dll,MapGISDspCom.dll,MapGISMapCom.dll,MapLayerCom.dll,EditView.ocx。 在程序公共模块中声明如下: Public Larea As LinArea ‘定义MapGIS线工作区 Public Parea As PntArea ‘定义MapGIS点工作区 Public AcadApp As AutoCAD.AcadApplication ‘定义CAD应用实例对象 Public AcadDocs As AcadDocuments ‘定义CAD文档组对象 Public AcadDoc As AcadDocument ‘定义CAD文档对象 Dim MoSpace As AcadModelSpace 创建对CAD部件对象的引用: Public Sub CreatCAD() On Error Resume Next Set AcadApp=GetObject(,“AutoCAD.Applica-tion) If Err Then Err.Clear Set AcadApp=CreateObject(,“AutoCAD.Application) If Err Then MsgBox“Error to connect to Auto-CAD” Exit Sub End If End If ‘访问图形文件及模型空间 Set AcadDocs=AcadApp. Documents AcadDocs.Add Set AcadDocs= AcadApp.ActiveDocument AcadDocs.WindowState=acMax End Sub 2.初始化对照表 ‘定义对照表结构: Type strBef Gis as string Cad as string End type … Dim LineType()as strBef ‘定义线型对照数组 Dim BlockType()as strBef ‘定义符号对照数组 Dim TextType()as strBef ‘定义字形对照数组 Dim LayerType()as strBef ‘定义图层对照数组 Dim ColorType()as strBef ‘定义颜色对照数组 将不同对照表读入相应数组内,其中数组元素的GIS属性为MapGIS图元类型检索值,CAD属性为CASS图元类型检索值。在以后用For Each…Next结构对其内的对照值进行检索。 3.获取CAD图层列表数组(程序略) 4.获取图层属性结构,在MapGIS文件中建立属性字段 因为在MapGIS物理图层(文件)中各图元的属性结构相同,所以在CASS环境中需要对具有同类GIS特性的图元进行分层归类的预处理。在向MapGIS转换时各图层只要分析第一个CASS实体的属性结构就可以确定MapGIS文件的属性结构。一般情况下文字(注记)对象不进行属性转换。(程序略) 可以看出在实际应用上也可将类似专题的封闭实体以“面”图元的方式转换到MapGIS文件中,在GIS应用中会更加合理。 5.保存MapGIS文件 因CASS各图层内一般存在不同类型的图元(线类图元和点类图元共存),所以转换结果的MapGIS图形就存在多个同名文件(以图层命名文件),如果存在此类情况以文件名后加数字形式存储。最后将所有转换所得的单一图形文件保存为MapGIS工程文件。 6.结果验证 经过对新疆城镇地籍1300幅图进行转换,共转换图元及属性723651个,所有图元均能转换成功。由此可见,程序可以满足从CASS到MapGIS转换正确性的需要。 五、结束语 从CASS到MapGIS文件的转换过程实现是复杂的,它不仅要求有较好的计算机编程能力,对AutoCAD和MapGIS两种软件均十分熟悉,还要有对测绘知识的深入了解,因此在进行此项工作实验过程中,通过学习大量相关知识内容,对程序经过反复调试和优化处理,研发编制了转换接口程序,并将其运用在工作实践中,虽然编写出的程序还有很多不足之处需要改进,但其运用过程中大大降低了产品出错概率、提高了生产能力,在生产过程中取得了较好的影响。(因篇幅所限,本报选载原文部分内容,敬请见谅,完整内容请参阅《测绘通报》2009年第三期,P62) |
|【路桥隧】
( 湘ICP备16018960号-1 ) QQ群:
GMT+8, 2026-4-2 08:15
Powered by Discuz! X3.2
© 2001-2013 Comsenz Inc.