栅格地形图批量输出程序的设计与实现

2010-04-18 06:54李浩郭梦炽
城市勘测 2010年6期
关键词:栅格打印机矢量

李浩,郭梦炽

(1.哈尔滨市勘察测绘研究院,黑龙江哈尔滨 150010; 2.哈尔滨数字城市科技有限公司,黑龙江哈尔滨 150010)

栅格地形图批量输出程序的设计与实现

李浩1,2∗,郭梦炽1,2

(1.哈尔滨市勘察测绘研究院,黑龙江哈尔滨 150010; 2.哈尔滨数字城市科技有限公司,黑龙江哈尔滨 150010)

将DWG矢量地形图转为栅格地形图,能够有效解决测绘数据共享和分发中的数据安全问题。本文分析了在矢量地形图转为栅格地形图过程中需要解决的问题,给出了解决方法。基于AutoCAD的ActiveX对象库,在内嵌的VBA开发环境下,开发了栅格地形图批量输出程序,解决了海量DWG矢量地形图到栅格地形图的快速转换问题。

栅格地形图;批量输出;AutoCAD;VBA

1 引 言

城市大比例尺地形图是城市地形的真实反应,在城市规划、建设领域中起着举足轻重的作用。目前,我国城市大比例尺地形图大多以AutoCAD的DWG格式的形式存在。这种矢量数据的存储模式,由于具有精确的空间位置信息,不利于测绘数据的安全共享与分发。将这种矢量数据模式的地形图转为栅格数据模式的地形图,能够在真实再现城市现势地形特征的基础上,避免空间地理坐标信息的暴露,对测绘数据的安全共享与分发具有重要意义。本文基于AutoCAD平台,开发了栅格地形图批量输出程序,解决了海量DWG地形图到栅格地形图的快速转换问题。

2 问题分析

DWG格式的地形图文件,往往一个文件就是一个图幅。在一个图幅内,包含了水系、居民地、道路、绿地等全要素数字线划图基本地形要素,各种要素一般按专题进行分类,每一类要素归并到一个图层中,并赋予规定的线型、线宽、颜色等符号特征。同时还具有标注、备注、图廓等整饰元素。对于栅格地形图,根据成图以及拼图需要,在输出栅格地图的时候,需要将某些地图要素剔除,同时根据栅格地图的特点,还需要调整矢量线划图的线型、颜色、标注字体等。面对大数据量的转换工作,如果由人工完成,需要投入大量人力。因此,设计和实现批量转换程序,具有重要意义。

3 程序的设计与实现

根据某项目需求,需要将市域范围内所有DWG格式的矢量地形图(1∶1 000比例尺,1∶2 000比例尺)统一转为比例尺为1∶2 000的栅格地图(TIF格式)。1∶1 000、1∶2 000地形图分幅如图1所示。其中,1∶1 000地形图分幅按照实地0.5 km×0.4 km大小的单元格为一个幅面划分,1∶2 000地形图分幅按照实地1 km×1 km大小的单元格为一个幅面划分,10幅1∶1 000地形图正好可以划分成2幅1∶2 000地形图。为了保证栅格地图的可视性,栅格地图的地面分辨率设定为0.2 m。这样,1∶2 000矢量地形图对应的1∶2 000栅格地图的像素大小为5 000×5 000像素(1 km÷0.2 m/pixel=5 000 pixel),1∶1 000矢量地形图对应的1∶1 000栅格地图的像素大小为2 500× 2 000像素(0.5 km÷0.2 m/pixel=2 500 pixel,0.4 km ÷0.2 m/pixel=2 500 pixel)。

图1 1∶1 000、1∶2 000地形图分幅

根据以上计算,每1幅1∶2 000矢量地形图输出为一张5 000×5 000像素的栅格图片,每10幅1∶1 000矢量地形图正好可以输出为两张5 000×5 000像素的栅格图片(如图1所示),最后将所有图片按照空间位置拼接为一整张栅格地图。批量输出程序基于AutoCAD平台,采用内置VBA开发环境开发。

3.1 配置打印参数

由于AutoCAD默认的打印机配置中没有TIF栅格文件的打印配置选项,因此我们首先需要配置这一选项,并且设置输出TIF栅格文件的分辨率为5 000× 5 000像素,配置步骤如下所述:打开“Autodesk打印管理器”,在“Autodesk打印机管理器”中双击“添加打印机”向导,选择下一步。在“添加打印机—开始”对话框中选择“我的电脑”。选择“下一步”,进入“添加打印机—打印机型号”对话框,在“生产商”列表中选择“光栅文件格式”选项,在“型号”列表中选择“TIFF Version 6(不压缩)”选项,一直选择“下一步”。在“添加打印机—完成”对话框中,点击“编辑打印机配置”,进入“打印机配置编辑器”对话框中。在“设备和文档设置”选项卡中选择“自定义图纸尺寸”,设置输出栅格文件的长度为5 000,宽度为5 000,单位为像素。

3.2 导入图形文件

ObjectDBX是AutoCAD为宿主程序(ACAD)、图形文件(DWG)、用户应用程序(ARX)和用户对象文件(DBX)之间的接口,利用ObjectDBX类型库,可以在不打开CAD文件本身的前提下,对文件进行访问、读入、写出等操作,是实现栅格地形图批量输出的关键。为了完整的导入外部图形文件,需要将外部图形文件的图层、图层属性、实体对象、线型、文字样式等对象全部导入到当前图形文档中。使用ObjectDBX对象的CopyObjects方法即可完成外部图形文件各种对象的导入。下面的程序示例了从外部图形文件中导入图层strLayer中的全部图元实体到当前模型空间。

3.3 制图综合

1∶1 000地形图输出为1∶2 000地形图时,如不对图元进行制图综合的操作,将导致1∶2 000地形图图面负载过大,造成读图判图困难。为了保证输出成果清晰可读,又不影响数据的准确表达,定义如下制图综合规则:

(1)高程点、等高线抽稀。考虑到哈尔滨市地形比较平坦,通过程序对高程点、等高线统一进行抽稀,在不影响地形表达的前提下,可以很大程度地减少地图负载。

高程点的抽稀方法为:将图幅范围内的所有高程点存入选择集,删除原范围内的高程点,将选择集内的高程点展绘到幅面上。在展绘时,以将要展绘的高程点为中心,以给定的高程点间距为直径,判断该范围内是否有高程点,如果有,则不展绘此点,如果没有,则展绘此点。

等高线抽稀采用判断高程的方式进行。首先根据原图等高距计算新图的等高距,计算公式为:

新基本等高距=原等高距×编绘新图比例尺/原图比例尺

然后构造图幅范围内的等高线选择集,在选择集内,将高程是新基本等高距整数倍的等高线保留,不是整数倍的等高线进行删除。

(2)删除次要地物。删除在1∶2 000地形图中不需要表达的地物,如控制点、地下管线、管井、路灯、楼层注记等。具体操作为:通过程序以次要地物所在的图层为过滤条件,构造次要地物图元对象的选择集,遍历选择集中的每一个对象,通过对象的Delete方法将其删除。

(3)符号替换。对于复杂的点状符号,替换为简单的点状符号。对于密度大的填充符号,替换为密度小的填充符号。由于所有的符号都以图块的形式存在,每一类符号对应唯一的一个图块名,因此,可以事先构造替换符号的块文件,然后建立原始符号块名称到替换符号块名称的映射表,通过程序遍历图幅范围内的块,对照映射表,能够快速实现符号替换。

3.4 地图幅面整饰

当外部图形文件全部导入到当前图形文档中后,需要根据事先制定的制图原则对当前地图幅面进行整饰,整饰的内容包括:关闭某些不需要输出的图层对象,如骨架线图层;去除原地形图的图廓;调整某些图元的线型等,以满足栅格地图的输出标准。

3.5 打印输出

最后,根据3.1节设置的打印参数,对当前地图文档的内容进行输出。在AutoCAD的ActiveX模型中,Plot对象的PlotToDevice方法使用指定的打印机打印指定的布局,PlotToFile方法则使用虚拟打印机将指定的布局打印到文件中。在本文中,使用PlotToFile方法,将当前文档的指定区域输出到TIF栅格文件中。下面的程序示例了如何进行指定区域输出到TIF栅格文件中。

图2为该程序的运行界面,图3为加载的10幅1∶1 000DWG格式的地形图,图4、图5为图3所示的10幅DWG格式的地形图输出的2幅1∶2 000栅格地形图。

图2 程序运行界面

图3 1∶1 000DWG地形图

图4 1∶2 000栅格地形图I

图5 1∶2 000栅格地形图II

4 结 语

基于AutoCAD的ActiveX对象库,在内嵌的VBA开发环境下,开发了栅格地形图批量输出程序。运用此程序,综合1∶1 000、1∶2 000结合表,自动完成了哈尔滨市域范围内1∶2 000栅格地形图的输出任务。输出的栅格数据满足规范设计要求,数据成果已应用于某电子地图应用系统中,发挥了重要的经济效益和社会效益。

[1] 邵俊昌,李旭东.AutoCAD ObjectARX 2000开发技术指南[M].北京:电子工业出版社,2000

[2] 郑立楷,卢择临,王成煌.AutoCAD VBA二次开发教程[M].北京:清华大学出版社,2006

[3] 祝国瑞.地图学[M].武汉:武汉大学出版社,2004

[4] 李乃良.基于AutoCAD的地形图缩编中高程点自动抽稀方法的探讨[J].城市勘测,2007(3);81~82

[5] 黄玉君,丁桂荣,邓红艳等.MicroStation环境下等高线综合工具箱的开发[J].海洋测绘,2003,23(3);36~37

Design and Implementation of Raster Topographic Map Batch Exporting Program

Li Hao1,2,Guo MengChi1,2
(1.Haerbin Exploration and Surveying Institute,Haerbin 150010,China;2.Haerbin Digital City Science&Technology Co.,Ltd.Haerbin 150010,China)

The transformation from vector topographic map to raster topographic map is a effectual method for data security in survey data sharing and distributing.This paper analyses the problems of transformation from vector topographic map to raster topographic map,provides the solution,develops the raster topographic map batch exporting program under the built-in VBA development environment,based on ActiveX in AutoCAD,which works out the problem of quick vast switching from vector topographic map to raster topographic map.

Raster Topographic Map;Batch Exporting;AutoCAD;VBA

1672-8262(2010)06-125-04

P209

B

2010—03—30

李浩(1983—),男,工程师,主要从事地理信息系统相关技术工作。

猜你喜欢
栅格打印机矢量
基于邻域栅格筛选的点云边缘点提取方法*
矢量三角形法的应用
另类3D打印机
基于矢量最优估计的稳健测向方法
打印机基板大型注塑模具设计
三角形法则在动态平衡问题中的应用
FDM型混色3D打印机的设计
不同剖面形状的栅格壁对栅格翼气动特性的影响
基于CVT排布的非周期栅格密度加权阵设计
栅格中间层数据在数字地形分析中的应用