地图符号优化配置的探讨
摘要:地图符号库是GIS和机助制图系统的重要内容之一,本文结合地图符号优化配置的思想,对点、线、面状符号的绘制算法进行了实现和优化。
关键词:符号化;信息块;优化配置
0、前言
符号化是指依据从符号库中得到的符号信息和需要符号化的实体的定位信息,通过一定的缩放、旋转、平移操作,将符号从有限的符号空间变换到地图空间的过程。
根据绘图方式的不同,可以将符号化划分为矢量符号化和栅格符号化两种:其中,矢量符号化以有向线段作为基本绘图元素来实现符号化目的,而栅格符号化以像元作为基本绘图元素来实现符号化目的。
相比之下,矢量符号化绘制方式多样,既可编制程序绘制符号,也可以采用信息块的方式进行绘制,绘图简便,缩放容易,并具有相对较高的绘制精度。而栅格符号化由于栅格图形变化太多,也过于复杂,因而难以通过编制程序来实现,一般只采取信息块的方式;另外,由于象素是以整数形式表示的,受象素大小和多少的限制,栅格符号难以实现缩放,尽管缩放技术方法并不复杂,但一般情况下,栅格符号经过缩放,各个部分相对变形较大,从而降低了符号化的精度,影响了地图显示和输出的质量。不过,通过重采样的方法,可以较为有效地解决栅格符号的缩放问题。
采用以下所述的符号绘制算法,结合信息块矢量符号自身精确的单纯线划坐标数据进行符号化,配置效果光滑、美观、精细、精确性高,尤其是线状符号转弯配置时,连续衔接区域的绘制,具有一定的光滑度和精确性;面域符号的填充,具有较好的填充效果。可以很好的满足空间信息显示的需要。
1、点状符号的绘制
由于点状要素具有一定的独立性,其间相关性较小,因而点状符号是符号库中较易处理的一种符号。点状符号从符号空间转换到地图空间是通过位移变换实现的。其绘制过程相对简单,只要根据有关的定位点坐标、符号ID、符号大小等信息,将符号库中相应符号变换为所需的尺寸和方向,通过位移配置到地图空间即可。
其过程可以分为以下几个步骤: ⑴ 读取点状符号信息块。
⑵ 符号坐标中心化。即把符号信息块中特征点的坐标值(Xi,Yi)减
去符号信息块中的定位点坐标值(X0,Y0)。这个过程可以看作是将符号空间的坐标原点(0,0)平移到符号定位点(X0,Y0)。
⑶ 旋转、缩放。
⑷ 平移定位。即将旋转缩放后的符号平移到需要符号化的实体的定位 点上,符号数据从符号空间空间转换到了地图空间。
⑸ 绘制符号。
点状符号的绘制都严格遵循上述步骤。针对不同的点符号类型,在旋转、缩放上有所差异。对于不依比例尺无方向、不依比例尺有方向以及依比例尺的点状符号,其旋转、缩放较为简单。而半依比例尺的点状符号,由于长度依比例尺、而宽度不依比例尺,长宽缩放比例不同,缩放具有局部性的特点,因而绘制相对复杂一些。最典型的例子是桥梁符号。如图1所示
图1 桥梁符号
作为半依比例尺符号中特殊的一类符号,桥梁还有其特殊之处。从图1中可以看到,桥梁长度D2是随比例尺而缩放的,但是宽度D1却不需要,是恒定的。桥梁两端的小线段的垂直距离d作为宽度的一部分也不发生缩放变化;除此之外,其直线距离dd也不能随比例尺而缩放。也就是说,桥梁的长度缩放也是局部性的,从而导致桥梁中间的平行线不能简单的缩放。在按比例尺进行缩放后,还要根据两端小线段的绘制位置进行位移。这是桥梁符号不同于一般半依比例尺符号的特殊之处。类似的符号还有涵洞、隧道等。这类符号在形状上都是中间呈平行线结构,而两端各有部分小线划。
2、线状符号的绘制
线状符号是长度依比例尺而宽度不依比例尺的符号,是地图上应用最广泛的符号。由于线状要素要求具有连续性,其描绘的线画应该是光滑的曲线,因而线状符号的组织和配置都是符号库的算法中的难点和重点。
如何能够用较少的代码来绘制较多的线状符号而又尽量不降低符号绘制速度,并且依据实体定位中心线的形态连续、光滑地配置符号,是线状符号绘制的核心问题。
一、线状符号绘制思路
1.纯函数绘制:这种方法按符号表示的地物种类分类用函数实现符号绘制。由于纯由函数实现,所以符号可编辑性和维护性差。一旦符号确定下来,用户要做大量修改将十分困难。但其绘制速度在理论上是三类中最快的。
2.纵向叠加:该方法利用线状符号的可分解性,将线状符号拆分为多个基本符号单元,并按顺序分别绘制各单元符号来实现。比如图2所示的铁路符号和陡坎符号。以铁路符号为例,可以先从起点到终点连续两次绘制完铁路的边线单元,再从起点到终点绘制铁路的矩形填充符号。而陡坎符号则可以先从起点到终点绘制完陡坎的基线符号,再从起点到终点绘制陡坎的竖线符号。符号的整个绘制过程可以分为几步来完成。这种算法的优点在于它将符号拆分为各组基本的单元符号,用户对预先给定的这些单元符号进行排列,就能够组合成所需要的符号。
在这种情况下,需要记录各符号单元之间的相对位置,从而确定各符号单元之间的位置依赖关系。否则,单纯的从起点到终点的重复绘制,就会出现符号单元之间的错位、重叠、压盖现象。
图2 铁路、陡坎符号纵向分解
该方法可增强符号的可编辑性和可维护性。对于简单线符号速度影响不大,但如果符号组合比较复杂的话,其速度将会减慢较多,而且过于复杂的线符不一定具有可分解性。另外,用来进行排序的单元符号需要程序预先给定,用户所能做的只是增加一个已有单元或改变单元符号排列及位置,一旦单元符号无法满足某种特定符号,只有通过修改程序才能增加新的单元符号来满足该符号。因而,这对符号可编辑性和可维护性产生了一定限制。该算法实现并不复杂,只要分别实现各单元符号的绘制,就可完成整个符号绘制。
3.横向循环配置:这种算法是在对绝大多数符号是由一个定长单元沿着定位线循环配置的认识基础上形成的。
图3 铁路、陡坎符号单元
如图3所示,铁路符号可以由一个黑色矩形和白色矩形组成的符号单元循环配置而
成;陡坎则可以看作(a)作为符号单元循环配置的结果。
从图中可以看出,在符号化的过程中,该算法将提供的定长单元沿着地物的定位线一段段配置下来,直到到达终点。这种算法对线状符号提取出一个循环单元,用户只需要定义循环单元中的图形属性及其坐标,绘制算法就会在定位线上进行循环配置。这样就给用户更大的符号制作权利,而不仅仅是对给定的各符号单元进行排列。该思路更加增强了符号的可编辑性与可维护性。它绘制复杂的线符号的速度较之第二种算法快。但对于简单的线状符号如实线符号(大车路),由于它也要一段段配置,所以要比第二种算法慢。另外,如果地物的定位线结点很密,该算法的速度同样会降低。横向循环配置的算法由于要考虑循环单元的坐标变形等问题,有一定复杂度。
以上三种线状符号绘制思路各有其优缺点和适用范围。横向循环可以用于绝大多数线状符号,对于简单线状符号如大车路等用纵向叠加比较适合。对于那些无法用循环块或单元符号描述的符号,可以用第一种算法来绘制。
二、线状符号绘制实现
(一)绘制原理
采用横向循环方法进行线符配置,是以线状实体目标的定位点数组为基准,分段依次绘制符号循环单元体的过程。
地图制图学中的所有线状符号都是定义在直线段上的,但实际地图上多是以各种曲线状的形式绘出的,在符号转弯部位,会出现凹向压缩现象,产生一定的变形。因而线状符号单元体的这种循环配置,其变换不是简单的位移变换或旋转变换,而是通过伦移变换来实现的,由线状实体中心轴线上的定位点串坐标及长度所决定的。
信息块法中将线状符号数据分解为线-线、线-点两部分,其中线-线部分是由沿符号定位轴线x轴向伸展的和具有相应横向位移的线段组成,将符号化实体定位点序串作为x轴,相应的垂直方向作为y轴,以此来定位信息块中线划的端点坐标,从起点开始绘制,第n个绘制单元的绘制起点x值应该是前(n-1)个单元线符绘完后的终点x值,约为(n-1)*L处,L是符号单元长度。线-点部分是在配置完一个线-线部分之后紧接着进行的,与线-线采用一样的符号单元长L及起始点。点符定位坐标采用x轴坐标系,定位轴线为x轴向;只是当点符定位于目标实体转折点上时,定位轴线方向采用转折夹角的角平分线方向。整个过程严格遵循伦移变换。
(二)线状实体几何数据的概括、光滑处理
线状实体是呈折线和光滑曲线两种方式延伸的,其几何数据一般是以中心轴线上特征点离散方式存储的。如果直接依据这样的数据进行符号化绘制,则离散特征点的疏密差异,就使得直接连接起来的线划必定不是光滑的曲线,从而使线状实体的弯曲特性的表达受到影响。
因此,为了正确表达呈光滑曲线延伸的要素,在进行符号化之前,对线状实体的几
何数据进行一定的概括、光滑处理,删除不必要的小弯曲、夸大特征弯曲、插值光滑,是线状符号化的一步不可缺少的预处理工作。
对于弯曲的概括处理,包括删除小弯曲和夸大特征弯曲两个方面。什么样的弯曲是小弯曲?什么样的弯曲是特征弯曲?什么时候应该删除,什么时候应该保留,甚至什么时候应该夸大弯曲?这里就存在着一个度的问题。
删除小弯曲而保留特征点的算法中,著名的有道格拉斯方法,它具有较好效果,可以严密地删除指定的不大于某个矢径(径向距离)值的小弯曲。但是计算量太大,当曲线较长时,处理速度会很慢。
另外,曲线实体符号是有宽度的,宽度因素的存在,使得弯曲判断有所误差。例如:曲线中某一弯曲的矢径为0.4mm,矢距(横向距离)为0.8mm,在线宽分别为0.1mm和0.2mm的时候,尽管两种情况下的矢径与矢距的相对比值是相同的,但在弯曲表像上,后者明显小于前者。因此,必须结合线宽来进行弯曲的删除与保留判断。
矢径联合矢距删除小弯曲算法考虑到以上两个因素,可以很好的处理小弯曲。其算法实质是:根据设定的数据点压缩开关key(取值0,1,2,3,4),对偏离曲线前进方向矢径小于1/2key倍线宽,且与前一已选定距离不大于key倍线宽的点都删除,同时对矢径超过1/2key倍线宽的特征点进行标记。
删除了小的弯曲,并对满足要求的特征弯曲点做了标记,就可以通过增加矢径绝对值,达到夸大特征弯曲的目的。经过这两步操作,一方面突出了特征弯曲,另一方面线状符号的宽度因素增加了弯曲的力度,从而使线符的配置效果更具合理性和生动性。
经过概括处理,保留了曲线上所有满足要求的点,但这些数据点之间的距离比较大,使得连接起来的曲线还是不够光滑。只有当数据点足够稠密并按光滑曲线的轨迹分布时,所连接的线划才是一条光滑的曲线。因此必须依据该曲线的离散数据,根据一定的数学法则建立光滑插值函数,计算足够稠密的数据点,通过加密的方式进行光滑处理,使符号化后线状符号符合要求。
曲线光滑的基本要求是:曲线中轴线通过已知序列特征点,且线上各点有连续的一阶导数。实现光滑的方法很多,如正轴抛物线加权平均法、斜轴抛物线法、五点求导分段三次多项式插值、三点求导分段三次多项式插值法、张力样条法等。顾及到GIS空间数据密度及计算的方便易行,本文采用了五点分段三次多项式插值法,对线状实体几何数据进行了光滑处理。
(三)衔接区的绘制
通过五点求导光滑法,对实体数据进行插值加密,可以达到光滑的效果,然后采用伦移变换原理,就可以比较理想地实现符号的配置。但是符号绘制仍然是通过折线来逼近,从而实现光滑的曲线绘制。因此,线状符号绘制的难点之处就在于线段转弯时衔接区的绘制。
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库地图符号优化配置的探讨在线全文阅读。
相关推荐: