APP下载

土地数据处理中MapGIS向AutoCAD的全息转换

2016-05-14田小温李海刚

南方农业·下旬 2016年5期
关键词:数据处理土地

田小温 李海刚

摘 要 分析MapGIS格式土地利用图中各类地物的属性数据存储方式,介绍利用第三方工具完成提取和保存的思路和方法,从而实现MapGIS向AutoCAD的全息转换。

关键词 土地;数据处理;MapGIS;AutoCAD;全息转换

中图分类号:TP393.09;P208 文献标志码:B 文章编号:1673-890X(2016)15--02

全国第二次土地调查成果多是以MapGIS为平台,一般是以一个县(区)为单位存储,也可分割成标准分幅格式分别存放。一个MapGIS库的组成包括点文件、线文件和区文件,对于二调成果,具体分别为零星地物、线状地物和地类图斑。

从几何角度来讲,地类图斑是具有几何形状的面状,而零星地物只有位置没有大小,不占用图面面积,线状地物的宽度为零,有长度却没有宽度,在数字图的概念也不占用面积。但零星地物和线状地物占用实地面积,在MapGIS中,它们的面积值存放在相应的属性字段里,同时说明面其面积值是从哪几个地类图斑中扣除及相应的比例。因此,各图斑的同何面积值不完全是相应的地类面积,还须扣除其包含的零星地物和线状地物。

在土地整治及其他日常地籍相关工作中,往往是取几个图斑部分或全部成为一宗地,并将其包含的各地类的面积进行统计。尽管MapGIS提供一定功能,但其数据采集和绘图等方面较显不足,尤其是众多作业人员更习惯于使用AutoCAD等绘图软件。因此,将MapGIS格式转换到CAD下,且保留各类地物的相关数据及相互对应关系显得较为重要。本文旨在详细分析上述过程的实现方法。

1 属性数据导出

MapGIS做为一个基础地理信息平台,能够提供GIS所应具备的各项功能,但对于各专业的使用者,往往缺少直接有效的操作。Section是增强辅助制图系统是以MapGIS 6.7 SDK为平台,有VC++为语言开发的二次开发软件,其主要功能是针对地质类图件的制作和数据分析、统计,在土地类工作中,可以借助其完成大部分操作。本文所提出问题便借助其导入导出功能解决。

首先,将宗地边界在CAD中整理好,去掉多余重复点,以DXF格式保存,然后用MapGIS的“转换”模块生成线文件,再经“线转弧段”和“拓朴重建”生成区文件。最后以“工程裁剪”将宗地涉及区域生成单独的MapGIS工程,在Section中打开。

其次,将需要导出属性值的各类文件选中成为编辑状态(一般为DLTB.WP、XZDW.WL、LXDW.WT,分别代表地类图斑、线状地物和零星地物),用Section的“1辅助工具\导入导出功能\导出属性数据(Excel)”,将会自动生成Excel文件,其包括3个表:分别为点、线、面的属数据。其中“点”表包括标识码、零星地物编号、地类编码、地类名称、零星地物面积、权属单位名称、坐落图斑编号、坐落单位代码、坐落单位名称等字段;“线”表中包含长度、标识码、地类编码、地类名称、线状地物编号、宽度、线状地物面积、权属单位名称1、权属单位名称2、扣除图斑编号1、扣除图斑坐落代码1、扣除图斑编号2、扣除图斑坐落代码2、扣除比例等字段,“面”表包括面积、周长、标识码、图斑编号、地类编码、地类名称、权属性质、权属单位代码、权属单位名称、坐落单位代码、坐落单位名称、扣除类型、扣除地类编码和扣除地类系数等字段。

2 图的导入及图数关系的建立

将点、线、面分别转换成DXF文件,然后加入到同一CAD文件中,并根据所使用的软件分层存放、转换成相应的线型、块或填充。然而,现有的两种文件即图和数并没有关联,只能通过人工查找才能一一对应。从各属性字段可以看到,每个地物都包含一个字段“标识码”,该码值在一个MapGIS库里是唯一的,因此可通过该码值将CAD中的每个实体与Excel表中的属性记录相关联,操作过程简述如下。

首先,将新生成的单独的工程文件进行标识码整理。在属性库管理中,分别打开各类文件,在“属性/统改属性”中,将各对象的标识码按增量方式进行重编,重编时可以按自己的习惯给定数值,比如:点对象从10000开始,线对象从20000开始。

其次,对于点文件和线文件,在转成DXF格式时,以其标识码作为各对象的高程值。

最后,面文件的转换可以有两种方式:一是将面按全GIS方式转出,形成实际闭合的多义线,仍然通过其高程值与Excel中相应的记录建立对应;二是用标识码和面积值对每个面对象生成双字段的注记,将该注记文件转换成DXF格式,然后通过标识码和面积值双重的对应与Excel记录建立关联。

3 信息导入

我们建立了CAD对象与Excel中相应记录的关联,也就是说,针对每一个CAD中的实体,都可以根据其高程值所代表的标识码,在Excel表中找到其相应的GIS信息记录。当然,这个查找对应的过程若是人工完成,不仅操作繁杂、工作量巨大,尤其是无法保证完整和准确性,这里简单介绍以编程的方法完成该项操作。

COM(Component Object Model,组件对象模型)技术是由微软件推出的一套接口规范,主要用来在不同语言和不同程序进程之间进行通信,简单来说,就是在自己的程序中,可以向其他程序发送指令来代替人工操作,并可以读取其中需要的数据。

基于AutoCAD的编程可选语言比较丰富,如Visul LISP、VC++、VB等,为简于叙述,我们选用CAD自带的VBA为开发工具。VBA是Windows下多种软件的开发工具,特点是简单且直接,在CAD中,其除了与一般语言等同的各种函数,直接面向CAD本身,可以无障碍地生成访问CAD对象和内部变量等;同时,可以将其他应用作为Component进行操作。这里将Excel作为一个部件,通过它的对象模型,就可以逐级访问任何一个Excel文档的所有数据,形如objExcel.Sheets(K).Cells(I,J)。

综上,通过遍历每个CAD对象,通过其高程或字符串作为对应值,从Excel里直接读取各字段的属性值,从而建立起图与数的无缝连接。

4 CAD中信息保存

最后,我们讨论如何把Excel中的记录保存到CAD中,这里需要介绍另一个概念外部数据--XDATA。CAD为了记录每个对象的其他信息,提供了XDATA来解决,即一个CAD实体可以附加外部数据。AutoCAD不提供扩展数据读写的相关命令,但通过二次开发,应用VBA等编程,对某实体的扩展数据进行读写,如写函数形式为:

entCAD.SetXData(XDataType, XDataValue)

句中entCAD为被写入外部数据的实体句柄,XDataType是短整型数组,存放欲写入的数据句的格式 ,如“1001”为外部程序名称,“1000”为字符串。XDataValue为实际写入值,可以将各字段的数据依次写入。

5 结语

通过上述过程实现了从MapGIS向AutoCAD转换中,土地利用数据库的无损导入,限于篇幅,这里只给出了从MapGIS向AutoCAD进行全息转化的总体思路入技术要点,有关详细操作和编程可参阅相关书籍,在日常工作中,根据具体需要完成以上过程,可以大大提高工作效率。

(责任编辑:赵中正)

猜你喜欢

数据处理土地
电容式传感系统数据处理电路的设计
一个人需要多少土地?
基于ARCGIS 的三种数据处理方法的效率对比研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
高层建筑沉降监测数据处理中多元回归分析方法的应用研究
视频大数据处理的设计与应用
土地流转信托模式分析
分土地