数字地图要素关系自动处理算法设计与实现
2014-03-20于蕾,汪军,桑渤
于 蕾, 汪 军, 桑 渤
(中国人民解放军72946部队, 山东 淄博 255000)
随着计算机技术的发展,全数字化制图已经成为地理信息数据的一种主要的生产方式.数字测图是地形图测绘的发展方向,它具有高精度的特点,同时由于市场上出现了各种测绘软件的开发与应用,使得数字地图的各种获取方法变得更加准确且简便易行[1].然而在实际的作业生产特别是地图出版过程中,数字测图提供的原始数据中的要素间存在着各种不符合制图图示规定和影响地图美观的关系错误,而且这种错误需要作业员凭借作业经验来一一手动处理,这在很大程度上影响了成图速度和成图质量.
结合自身生产实际,提出了在数字地图出版过程中,要素关系自动处理的算法,并在此基础上,开发了相应的关系处理工具并进行了应用,提高了数字制图自动化水平,缩短了成图时间,提高了作业效率.
1 方法分析
外业测量后,因为测量时间和其他原因,测量原始成果的符号规格、要素间关系、注记位置等都比较粗糙、简略,不符合印刷要求,必须按照《图式》及有关规定进行工艺加工和技术处理,制作符合相关要求的出版印刷原图.
对于出版原图来说,图面效果是否清晰美观,是一幅地图质量好坏的一个重要判断依据.这就要求处理好图上各要素之间的相互关系,关系处理的目的就是为了避免次要要素与重要要素的符号发生冲突,对次要要素和符号进行移位处理,把相互之间的要素关系交待清楚.因此,地物要素关系编辑处理也就成了地图出版作业的一项重要内容[2].
一幅地图的地图要素以点、线、面三种形式表示在地图上.而要素的关系也可以简单的分解成点、线、面之间的关系,主要有点点关系、点线关系、点面关系、线线关系、线面关系和面面关系[3].
点状要素分为实体点和方向点,用平面上的一个点就可以表示它在图上位置,因此其与其他点、线、面的关系都比较简单,只要移动定位点,其关系就能明确的表示出来.
线状要素则可以用中心定位轴线(有序点串)表示线状要素的图上位置和延伸走向.与其他线、面要素关系,则是通过要素上每个点位体现出来.
面要素可以用外围轮廓(闭合的有序点串)表示面状要素的图上位置和分布范围,因此面要素也可认为是始末结点重合的线要素,其关系类似于线要素与其他要素的关系处理[4].
通过以上分析,将地图图面要素关系就概略的归纳为两条线之间的关系.此处我们不考虑对要素进行化简概括,仅处理其之间的相对关系.对要素移位处理前,必须首先建立要素的优先级别和移动顺序.其过程大致可分为以下几个步骤:(1)检查图上是否有明显的图形重叠;(2)计算位移的方向和大小;(3)移开次要的要素,验证位移后的效果;
此处的位移不是对整个要素的移动,而是通过对两个要素进行计算,确定其交叠的部分,然后对交叠的部分进行分析处理,使其满足地图制图的要求.
在实际的数字地图生产中,为了提高成图的速度与成果质量,我们以作业中使用的MicroStation V8为作业平台,利用Visual C++进行mdl二次开发实现,供以该平台为数字地图生产作业工具的用户调用.MicroStation在管理地理数据库方面具有得天独厚的强大功能.包括直线、折线、曲线、封闭线、符号和注记等,每个要素都有如颜色、线型、线宽、层信息等属性.坐标系统可以是二维或三维的,根据需要在开始作图前选择种子文件定义,许多转换程序可以用于其他的CAD及制图系统[5].
2 实现过程
要素图上间隔小于0.2mm时,人眼不易区分,因此将两要素的交叠部分间隔移开0.2mm的间隔.设想将两个要素要分开0.2mm的间隔,要求次要要素除去与主要要素相交的点外每个点到主要要素上的最近距离应该在0.2mm以上.分两步进行移位,如图1所示.
图1 算法流程图
2.1 确定间隔
采用两种方法确定:一是输入设定,设定后软件以此间隔作为两要素中心线的间距比较值;二是建立控制表,记录要素的线型和线宽的对应表,在选择要素后,从控制表中获得线宽,计算出两要素离开0.2mm的图面距离时中心线的间隔,中心线的间隔(dis)=次要要素的线宽(WidthC)/2+主要要素的线宽(WidthZ)/2+0.2mm的图面间隔.
2.2确定要素的移动方向
将主要要素A和次要要素B的坐标分别提出,将次要要素的每一点依次计算到主要要素的最近距离点,此两点的连线必定垂直于A上此点的切线方向,两点连线方向则为A上此点的法线方向,按此方向移动要素B上的点,则能以最快的速度,使两要素分开设定的间隔.根据计算结果,要素B上此点与要素A的关系主要有以下三类,我们分别采取了不同的处理办法:
(1)要素B上此点与要素A的最短距离大于dis,此时说明两要素在此点方向上的距离足够大,出图后不会产生要素重叠,因此我们不需要移动此点.
(2)要素B上此点与要素A的最短距离等于0,此时说明此点为两要素的交点,则此点应该在要素A上,此时不对其进行移动.
(3)要素B上此点与要素A的最短距离小于dis,此时说明出图后,两要素在此点处会粘连而影响图面效果,为此需要移动上此点,移动距离= dis-两点间的距离(dDis),移动后以新坐标生成要素.
依次循环,对要素B上的每个点进行处理,得到的则是新要素的中心线坐标,以此坐标按原要素属性重新生成要素B′,以动态显示的效果提供给作业人员查看,如果处理效果达到要求,只是单击左键,完成新要素B′与要素B的替换.
3 应用实例
如图2所示,这是使用的MicroStation V8为作业平台,利用Visual C++进行mdl二次开发实现的,软件将两线性要素关系处理方法分为4类:整体平移、相离、部分平移、共边.作业人员通过图上两要素之间的关系,选择相应处理方法,然后选择要素进行关系处理.
3.1 整体平移
图2 软件运行界面
两要素间相离的距离设定后,选择图上想要移动的要素,移动鼠标,选中的要素会跟随鼠标移动,位置合适时,用鼠标确定完成要素的移动,如图3所示.
图3 整体平移
3.2 相离
设定两要素间相离的距离,然后选择主要要素,再选择次要要素,移动鼠标,软件自动将次要要素上靠近主要要素的点移动指定的距离,从而使两要素相离,如图4所示.
图4 要素相离
3.3 部分平移
当一面状要素与形状为曲线的线状要素距离较近时,用相离的方法处理,会导致与面状要素相邻近部分的线状要素变为直线,此时为了保持线状要素的原有形状特征,对线状要素一定范围内的点都进行移动,移动后,要素能保持原有形状,所以在高级设置中可以设置需要移动的线状要素的点的范围,如图5所示.
图5 部分平移
3.4 共边
确定需要共边的两个要素,选择次要要素,然后选择主要要素上需要共边的第一个点,移动鼠标,软件会自动沿鼠标移动方向将两要素重合到一起实现共边,直到两要素不需要共边的位置,用鼠标确定或取消,如图6所示.
图6 要素共边
4 分析评价
本算法根据相关地图图示的要求对地图要素的
关系处理进行了量化,而且在软件的实现过程中通过计算机计算进行控制,在生产过程中大大提高了地图出版的精确化水平,在提高作业效率的同时有效的控制了成图质量.实践证明该软件运行稳定,界面人性化,操作方便,能快速、准确的处理出版过程中遇到的要素关系处理这一棘手的作业问题,受到了一线作业人员的好评.
5 应用前景
在相关单位系列比例尺地形图生产及其它数字地图地图生产任务中,该工具已经广泛应用到实际生产中,有效的提高了地图出版过程中的自动化水平,提高了工作效率.而基于该算法,我们可以根据不同的作业平台开发相应的处理工具,供相应的平台调用,从而使该软件更好的服务于各个平台,以完善地图数字化生产的工艺流程,提高成果质量,它的完善对于各个比例尺的地形图、专题图的制作出版将会发挥更大的作用.
[1] 蔡林,李学义.应用数字测图中的几点体会[J].黑龙江水利科技,2005(1):23-23.
[2] 王家耀,孙群.地图学原理与方法[M].北京:科学出版社,2006.
[3] 刘纪平.地图数据库图形输出中要素关系处理[J].测绘学报,1994,23(3):222-223.
[4] 王光霞.地图设计与编绘[M].北京:测绘出版社,2011.
[5] 许斌,宋宏伟,于燕青,等.基于Microstation的数字测图软件及使用[M].北京:解放军出版社,2001.