基于COM技术的软件在测绘工作中的应用探讨

2011-05-31 11:11万志刚林超峰
城市勘测 2011年6期
关键词:组件管线测绘

万志刚,林超峰

(中山市测绘工程有限公司,广东中山528403)

1 引言

目前,在测绘工作中使用单一软件不可能解决所有问题,需要多种应用软件配合使用来处理数据、管理成果,但应用软件种类数量的增多也增加了数据处理的工作量和复杂度。如何能够既可以尽量多地利用已有成熟的软件功能,又可以仅对基本数据进行管理,降低数据管理难度,提高数据处理管理的效率,是对测绘工作者日常工作的一个新的要求。

为此,笔者研究了基于COM的编程技术,在VB上实现,可以对支持COM接口的应用软件的功能进行间接调用,将多个数据处理管理过程集中在一个工具软件上,实现了操作一体化,为今后工作提供了一个普适的解决方案。

2 基本原理

COM为Component Object Model的缩写,中文称为组件对象模型,是微软实现各软件之间相互交互的一项软件技术。应用软件通过支持COM接口,可让外部程序访问其内部的数据,调用内部的功能。利用此技术可实现对多个应用软件的外部控制以及各应用软件间的进程通信,达到多种应用软件协同作业的目的。其原理示意如图1所示。

现阶段在微软操作系统上运行的很多软件都支持COM 接口,例如 Office Word、Excel,数据库 Access、SQL server,绘图软件AutoCAD以及一些COM组件,例如超图(SuperMap)地理信息系统开发组件等。利用微软的易学易用的快速开发平台VB6,可连接软件开放的COM接口,访问软件数据,调用软件功能,从而实现各种应用。

图1 集成工具通过COM接口调用多个软件数据和函数原理

3 关键技术

3.1 与COM接口的连接

以连接AutoCAD COM接口为例,启动VB6,点击菜单中的“工程”主菜单,在下拉菜单中选择“引用”菜单项,会跳出引用对话框,选中所需的应用软件提供的接口文件,确定即可。例如连接AutoCAD 2006版接口,找到“AutoCAD 2006 Type Library”的选择行,在前面打钩后点击确定即可,如图2所示,其他软件COM接口可同样按上述方法连接。

图2 连接AutoCAD COM接口

3.2 访问COM接口中的对象

点击工具栏中的“对象浏览器”图标,会跳出对话框用于查看COM接口提供的各种对象,对象中包含多个可访问的数据和函数等,如图3。在相应代码段中即可添加对这些对象(数据和函数)的变量声明、创建、访问、编辑等操作。

图3 访问AutoCAD COM接口中的对象

3.3 使用COM对象简介

(1)AutoCAD

AutoCAD提供的对象主要有以下几种:

AcadApplication代表正在运行的AutoCAD软件,AcadDocument代表打开的图形文件;AcadDocument.ModelSpace代表此图形文件的模型空间(创建图形或编辑已有图形主要在此对象中),AddText代表创建一个文本对象的函数;AcadLWpolyline代表轻量级多段线(绘图中主要使用的线类型);AcadLWpolyline.Coordinates和Coordinate代表此多段线各节点的坐标数组属性数据。

假设打开指定路径下的一个图形文件,代码如下:

同理可循环打开多个文件。

假设pl为CAD中选中的一条多段线,plsum为此线的节点总数,coord为节点数组(只记录 X,Y),ltscale为此图的线型比例以控制符号大小,cir为圆。可得到这条线的所有坐标,还可以在每个节点处创建界址点符号,其代码如下:

(2)Excel

Excel提供的COM接口对象,包括Excel.Application,Excel.Workbook,Excel.Worksheet,Excel.Application.Cells()。

假设启动一个新的Excel软件,新建一个表格文件,设定一个表格页面,然后在某一单元格中读取或填写数值。代码如下:

(3)SuperMap

SuperMap超图COM组件提供了众多的接口对象,主要使用的是核心组件,包括数据源对象soData-Source,数据集对象soDataSet,记录集对象soRecordSet和若干几何对象例如点对象soGeoPoint,线对象soGeo-Line,面对象soGeoRegion等。

假设连接数据源(文件数据库),代码如下

假设从打开的AutoCAD中选择一条闭合多段线,转为soGeoRegion,填入相关属性,加入数据源中的指定面数据集,代码如下:

4 测绘工作中的应用

基于COM技术的程序可以应用在测绘工作中的各环节(包括数据采集、内业处理、成图、数据管理、报表生成工作等),可以间接控制多个应用软件按流程完成项目各个环节的数据处理工作,提高工作效率,减少人为错漏。

例如对测绘工作中常用的绘图软件AutoCAD,可以实现间接或交互操作AutoCAD,使其自动打开指定的图形文件,访问文件中相关的图形,对其进行编辑、导出、删除,也可新增图形,对其添加扩展数据等操作,甚至可以自动批量打开多个图形文件,统一做特定处理。

对Office办公软件,可以将数据处理的结果输出为固定格式的报表或读取Office文档中的数据进行后续处理。

对于地理信息系统软件,可以将CAD中的图形提取出来导入地理信息系统组件中并赋予属性或者提取地理信息系统组件中的图形要素导出到CAD中。

5 应用实例

5.1 与CAD、数据库、Office的交互

利用数据库的数据管理、查询功能与CAD的图形编辑以及Office软件的文档报表输出的功能,结合各自优势于一体,可以实现一个多功能的作业环境。常见应用如下:

(1)历史图件的管理查询:可根据数据库中的历史图件的信息(图名、地址、编号、面积)进行文件查询并命令CAD打开、编辑该文件。如图4,在查询对话框输入寻找的文件编号,即可在主界面显示查询结果,双击结果即可在AutoCAD中打开此文件。

(2)管线图绘制:自动读取管线调查表(Excel表)中的数据(包括管线节点坐标、连接点点号、属性等),在CAD中绘制出管线图。如图5,选取相应管线调查表文件,自动在AutoCAD上绘制成图。

图4 历史图件资料的查询和调用

图5 自动读取数据绘制管线图

(3)数据报表的生成:可以提取CAD中指定图元的几何和属性信息,进行一些必要的计算处理后在Word和Excel生成报表。如图6,选取菜单中命令后即可在AutoCAD中选取相应界址线,会自动创建新的Word文档绘制表格填入相应坐标和边长。

图6 Office报表的生成

5.2 与CAD、地理信息系统组件的交互

地理信息系统是管理地理要素图形及其属性的最佳工具,在城市管理和决策支持方面发挥着重要作用,测绘肩负地理信息系统的数据采集和整理等前期工作,与其有着紧密的联系。如图7所示,通过地理信息系统二次开发的COM组件,可访问地理信息系统内部的数据,并导出到CAD等其他应用软件中,完成相关工作;也可以自AutoCAD中选取界址线并在属性对话框中填入相应属性值后导入到地理信息系统组件中。

图7 CAD、SuperMap组件间的交互

6 结语

随着对各应用软件提供的COM接口各项属性和功能的更深入了解,建立的应用工具也会发挥更大的作用。在数字化测绘向信息化测绘快速转变的今天,测绘数据的处理、管理及应用的水平高低直接影响到工作的效率与质量,利用COM技术可实现数据在各应用软件间的交互,从而可对数据进行流程化、集中化和自动化等一体化操作,拓展了应用,提高了自动化程度,使整个工作达到事半功倍的效果。

[1]Ivar Jacobson,Martin Griss,Patrik Jonsson.软件复用-结构、过程和组织[M].北京:机械工业出版社,2003

[2]JORDAN S.Visual Basic 6编程宝典[M].北京:电子工业出版社,2004

[3]张帆.AutoCAD VBA二次开发教程[M].北京:武汉大学出版社,2006

[4]张正林.SuperMap GIS应用与开发教程[M].北京:清华大学出版社,2006

[5]北京超图软件股份有限公司.SuperMap Objects开发教程[M].2008

[6]CJJ61-2003.城市地下管线探测技术规程[S].

猜你喜欢
组件管线测绘
无人机智能巡检在光伏电站组件诊断中的应用
新型碎边剪刀盘组件
U盾外壳组件注塑模具设计
浙江省第一测绘院
工程测绘中GNSS测绘技术的应用
高级别管线钢X80的生产实践
04 无人机测绘应用创新受青睐
浅谈通信管线工程建设
浅谈通信管线工程建设
无人机在地形测绘中的应用