于 蕾, 王 欢, 岳 耀, 许连华
(中国人民解放军61175部队, 山东 淄博 255000)
随着社会经济的发展,人们对地理信息的需求日益强烈, 数字制图技术在城市规划、国土管理、测绘业务管理、办公自动化等许多领域中发挥着越来越重要的作用.利用数字制图技术编制地图已经成为地图快速更新、出版的关键技术[1].数字制图中河流渐变的实现是快速处理空间矢量数据、缩短成图周期的难点和重点.河流是普通地图中重要的表示内容之一,由于地图比例尺的关系,河流分为单线河和双线河两类,一般规定图上河宽小于0.4mm的采用半依比例尺符号表示成单线河流,大于该指标的采用依比例尺符号表示成双线河流,单线河流与双线河流之间的衔接要过渡自然.在数字制图中,我们常采用河流粗度渐变的方法表示单线河,使河流自源头起线宽由细到粗依次变化,从而正确地反应出单线河的流向及形状,并区分主支流[2].
在河流渐变过程中,河流的表示需要满足以下几方面的要求[3]:
1)从源头按照流向方向表示时,河流要由细到粗依次表示,一般不能出现由粗到细的变化,而且线粗的变化要平滑,不能出现粗度的突变.
2)源头在图幅内的河流起始点的线粗应为最小尺寸0.08mm,源头不在图幅内的河流起点线粗要适当的增大,不能为最小尺寸.
3)河流粗细的变化程度要根据河流的长度及等级确定,一般来说,较长的、等级较高的河流,在河流渐变过程中,线粗的变化要比较短的、等级较低的河流大.
4)在主支流交汇处,支流的线粗不能大于此处的主流线粗.
5)河流线粗变化的缓急程度要符合科学美观的要求.
数字制图中,单线河通常采用半依比例尺的线状符号表示,因此可以通过制作由细逐渐变粗的特殊线型来表示河流的渐变[4].在实际的数字地图生产中,有很多软件可以实现线型的构建.MicroStation V8在很多方面具有独特的强大功能,其绘图中每个要素都有如颜色、线型、线宽、层信息等属性,并可以对直线、折线、曲线、封闭线、符号和注记进行各种设计与修改[5].以MicroStation V8软件为作业平台,可以轻松实现渐变线型的制作,供以该平台为数字地图生产作业工具的用户进行调用.渐变线型的制作界面如图1所示.在该界面中创建渐变河流线型,将反复项的计数值设置为1,短划线的长度设置为变量,长度值为10mm,然后根据需要设置线型的起点宽度和终点宽度,并保存即可.这种方法可以很好地表示单线河流的渐变情况,准确反映出河流的形状及流向.它的不足之处主要表现在:(1)由于渐变线型是一条逐渐变粗的线,不能控制其变粗的速度和变粗的位置,因此在主支流交汇处,很难保证支流的线粗比主流细;(2)用该方法表示源头不在图幅内的河流时,其起点处的线粗无法实现适当的增大,仍然为最小尺寸.
图1 渐变线型的制作界面
河流分段是指将一条完整的河流按照一定的规律分割成若干段,然后将分割后的各段河流的粗度进行修改,使之呈现由起点到终点粗度依次递增的效果,从而表示河流的渐变[6].采用这种方法表示河流渐变简单可行,具有较高的可操作性,同时能够较好地反映河流的流向、形状,主支流表示清晰.同时,还可以通过控制河流起点线粗来准确表示源头不在图幅内的河流.这种表示方法的缺点也是显而易见的,主要是在各段河流的交点处由于线粗不一致,容易造成河流粗度的突变.
缓冲区是空间分析中常用的一种方法,它是根据地图中点、线、面等地理实体自动建立其周围一定宽度范围的多边形[7].缓冲区的宽度不一定是相同的,可以根据需要设置不同的缓冲区宽度,以形成宽度逐渐变化的缓冲区[8].
采用河流缓冲区的方式表示河流渐变,就是以河流的中心线为中心,根据需要建立宽度渐变的多边形来表示河流.因为单线河的最大宽度为0.4mm,所以河流缓冲区的最大宽度不能大于该值,否则就要使用双线河来表示.单线河流缓冲区表示法如图2所示.河流缓冲区表示法本质上是使用面状的多边形来表示线状的河流.采用河流缓冲区来表示河流渐变,保证了单条河流的完整性,渐变效果也比较好,不足之处在于缓冲区建立复杂,编辑修改困难,工作量大,一般的制图系统较难实现.
图2 单线河流缓冲区表示法
以上三种河流渐变表示方法各有优缺点,考虑到实际地图制图的作业效率和渐变效果等因素,目前采用较多的是渐变线型和河流分段相结合的表示方法.具体实现方法如下:
1)首先制作12个不同等级的渐变河流线型,如表1所示,它们的线宽依次从0.08mm逐渐变粗至0.4mm,用来表示分段后每段河流.
表1 渐变河流分级表
2)利用Visual C++进行MDL二次开发,实现河流的分段表示.MDL 是MicroStation 开发语言库,它是一种基于C/C++的开发语言,用于开发专业级的MicroStation应用程序,分PureMDL和NativeCode两种开发方式.同样长度的河流,分段的数量越多,则每段河流长度越短,渐变效果越明显.一般河流最少分三段,然后根据河流长度以及等级适当地增加河流的分段数量.图3为利用MDL开发的河流分段表示界面.
3)河流分段以后,每段采用不同等级的渐变河流线型表示,相邻两段河流采用的河流等级不可能产生跨越,以免造成线段粗度的突变,主支流交汇处的支流线型等级不能高于主流,从而正确区分主支流关系[9].图4所示为河流渐变效果,由图4可知,该方法能够很好地满足河流渐变的要求,较好地反映河流实际情况,简单易行,且提高了作业效率.
图3 河流的分段表示界面
图4 河流渐变效果
本文对实现河流渐变的几种方法进行了比较与分析,充分考虑了实际生产中可能会出现的各种问题,通过Visual C对Microstation V8进行二次开发,编程实现了河流分段表示河流渐变.该方法整合了渐变线型和河流分段的优点,弥补了各自的不足,并在相关单位的生产应用中取得了良好的效果,确保了地图生产过程中水系编绘的质量和美观,提高了工作效率.
[1] 杨梦梅,王辉. 利用基础地理信息数据编制公开版地图的关键技术探讨[J]. 测绘技术装备, 2008(2):4-5.
[2]王家耀,孙群. 地图学原理与方法[M]. 北京:科学出版社, 2006.
[3]王光霞. 地图设计与编绘[M]. 北京: 测绘出版社, 2011.
[4] 周元.地图与地图制图[M].武汉:武汉大学出版社,2011.
[5]许斌,宋宏伟,于燕青,等. 基于Microstation的数字测图软件及使用[M]. 北京:解放军出版社, 2001.
[6]蔡林,李学义. 应用数字测图中的几点体会[J]. 黑龙江水利科技, 2005(1):23-23.
[7]彭李,何贞铭,刘少华,等. 一种有效的线状缓冲区生成算法[J].测绘与空间地理信息, 2008(5):11-13.
[8]崔爽,苏鸿,叶良松,等.一种基于空间对象的缓冲区分析算法[J].地理与地理信息科学,2011(1):6-7.
[9]祝国瑞.地图学[M].武汉:武汉大学出版社, 2004.