APP下载

矢量PDF地图数据量控制方法研究

2022-11-15胡浩杰张顺喜庞鹏

科技创新与应用 2022年32期
关键词:栅格数据量位数

胡浩杰,张顺喜,庞鹏

(78125部队,成都 610000)

PDF地图以其便于使用,数据量小的特点,在地图产品网络共享传输方面得到了广泛的应用。PDF地图可分为矢量PDF地图和栅格PDF地图。栅格PDF地图由栅格地图通过PDF转换软件生成,制图简单,容易制作成专题图集是其优点。但因其数据量较大,不利于网络共享,在数据量方面同图片格式相比没有优势。矢量PDF地图是由矢量元素组成的PDF格式的电子地图。矢量PDF地图的数据量受地图元素数量和矢量元素的数据结构设计的影响很大,通过优化矢量PDF地图的编码结构,其数据量可以比栅格PDF地图的数据量小很多。本文主要讨论通过改进矢量PDF地图数据结构,减少矢量PDF地图数据量的方法。

1 矢量PDF地图制图方法分析

制作矢量PDF地图有2种方法,一是采用PDF转换软件生成;二是采用直接编写PDF文档编码的方法生成[1]。

第一种方法是首先利用成熟的地理信息系统(或专业制图系统),由数字地图数据生成EPS出版地图数据,再利用PDF转换软件(如PDF打印机、Adobe Acrobt等)生成矢量PDF地图,如图1所示。这种方法优点是简单易操作,是目前生成矢量PDF地图最简单的方法。缺点是数据量太大,和栅格PDF地图相比并没有优势。因为制作的矢量PDF地图没有根据地图特点设计数据结构,其所有的地图符号都被拆散为简单图元(直线、贝赛尔曲线、矩形)来存储。导致矢量PDF地图中存在大量的冗余数据,输出的矢量PDF地图的数据量并不比栅格PDF地图的数据量小。并且由于地图元素数量巨大,导致PDF地图打开速度慢。这些缺点大大限制了矢量PDF地图的使用,导致目前矢量PDF地图的使用远不如栅格PDF地图。

图1 使用EPS地图数据制作矢量PDF地图流程

第二种方法是开发矢量PDF地图制图系统并直接输出矢量PDF地图成果。Adobe公司公开了PDF文档的编码规则。因此可以结合地图数据的特点,结合PDF文档的编码规则,重新设计矢量PDF地图的数据结构,输出优化的矢量PDF地图,如图2所示。用这种方法制作的矢量PDF地图的编码结构紧凑,数据量小,冗余数据少,地图打开速度快,对系统资源的占用更少。缺点在于目前没有成熟的专业制图软件,但显然采用第2种方法生成的矢量PDF地图优势更明显。

图2 编写PDF编码输出矢量PDF地图流程

下面重点讨论通过控制矢量PDF地图数据精度、去除无用的冗余点,减少矢量PDF地图数据量的几种方法。

2 减少矢量PDF地图数据量的几种方法

2.1 控制矢量PDF地图的坐标位数

PDF格式是一种数据交换格式,相同的信息量而数据量更小的产品就能在网络数据信息快速共享中获得更大的优势。因此减少矢量PDF地图的数据量是矢量PDF地图制图的不懈追求。矢量PDF地图编码主要由地图元素的状态数据(颜色、线宽、线型等)、定位点的坐标数据和文字数据组成。而这3种数据中,坐标数据一般占比八成以上。通过减少矢量PDF地图中存储的大量定位点坐标的坐标位数可以显著减少矢量PDF地图的数据量。但是相对应的,减少定位点的坐标位数会降低矢量PDF地图元素的精度。因此有必要研究如何控制这个度。

为了保证数字地图的精度,其坐标数据的位数是很多的,一般能达到8位至10位甚至更多。

当前一般矢量地图会采用分级显示的方式,随着地图的放大,地图会载入更大比例尺的地图数据,从而使显示的地图要素更详细。因此对其存储的地图数据会有比较大的精度要求。但因为PDF格式的特点,矢量PDF地图不是这样显示的。

矢量PDF地图是固定比例尺的地图,实际上是类似栅格地图的显示样式,其放大后的样式如图3所示。在地图放大以后,地图符号会变大,线宽会变大,就像一张印刷品上的内容放大了,但是地图符号仍然是平滑的。而一般栅格地图在放大后,图像会变得粗糙,会出现明显的马赛克现象,如图4所示。

图3 矢量PDF地图放大12倍后

图4 栅格地图放大12倍后

PDF格式是一种便捷的快速浏览的交换格式,有4个特点。一是追求能用最小的数据量交换最多的信息量,为了这个目的,PDF格式是一种自带压缩的格式,对文本的压缩率特别大。二是最有利于打印和印刷。无论怎么放大缩小,页面元素的相对位置都不会变。这是实现印刷和打印的“所见即所得”要求的最好方法。三是最便于用户使用,特别强调不需要任何培训,不需要阅读说明书。而无处不在的PDF阅读器已经成为了人们电脑上的必装软件,而且其可以完美跨手机、平板等多平台使用,使PDF地图的使用非常便捷。四是矢量元素的这种放大而不粗糙的显示方式使矢量PDF地图无论放大多少倍,其地图元素的显示都是光滑的,清楚的,真正实现了“看不清就放大了看”。

根据对矢量PDF地图显示机制的分析,其地图元素的显示精度并不会随着地图的放大而提高,而是随着地图的放大而放大。因此,放大矢量PDF地图的主要目的是看得更清楚而不是看得更详细。既然矢量PDF地图使用了类似于栅格地图的使用习惯,那么其存储的地图数据就没有必要存储那么多位数,因为即使是放大再多也看不到更加详细的地图元素。精度过高,小数点后位数过多的数据就成为了冗余的数据。因此可以通过减少矢量PDF地图元素坐标的位数来大大减少矢量PDF地图的数据量。这种方法会在一定程度上降低矢量PDF地图元素的坐标精度,但是降低的精度是可以忍受的,而减少的矢量PDF地图的数据量是显著的。

下一个问题是如何确定矢量PDF地图元素坐标的位数。既然矢量PDF地图采用了类似栅格地图的显示方式,因此其数据精度也可以参照栅格地图的数据精度来确定。纸质地图的精度标准一般为0.1 mm。根据Adobe公司公开的描述PDF文档编码机制的《PDF Reference》规定,矢量PDF地图的默认坐标尺寸为1/72英寸(1英寸等于2.54 cm)[2],约0.353 mm。0.1 mm转为PDF坐标系为0.283。因此可将矢量PDF地图坐标数据精度确定为0.1个PDF坐标,即所有矢量PDF地图数据均保留1位小数。精度为0.035 mm,即可满足矢量PDF地图在放大到280%以后仍然有0.1 mm的精度。

2.2 移动原点的方法减少地图数据量

在矢量地图数据中,地图数据为了空间统一,地图坐标的原点(0,0)点大都不在地图所在范围内。那么每个地图坐标的位数可能比较多。根据《PDF Reference》规定,PDF页面坐标可以是正数,也可以是负数,而且页面可以从任意坐标开始显示,不必要从原点(0,0)点开始显示。因此如果直接将坐标转换为PDF地图坐标,也能够正确显示,但是作为矢量PDF地图数据这样存储会增大矢量PDF地图的数据量。例如一幅长1 m,宽0.5 m的地图A,左下角坐标为(35000,35000),右上角坐标为(36000,35500),数据单位为mm。那么整幅地图的地图坐标都是5位有效数字。为减少矢量PDF地图的数据量,将所有地图坐标进行平移,目的是将地图坐标的原点(0,0)点移动到地图范围内。这样在坐标原点附近的地图坐标就只有1位,地图坐标位数也可以达到最低。

现在需要确定原点的位置。如图5所示,在一幅地图中,原点可以放在地图的4个角(A、B、C、D),也可以放在地图的几何中心(E)。PDF文档页面的坐标正方向和地图平面直角坐标网的坐标方向相同,都是向右为正,向上为正。那么原点在B、C、D会导致地图坐标出现负值,而且因为负值的存储较正值多一位,因此B、C、D3点和A点比较显然不具有优势,被淘汰。E点在地图正中心,好处是地图坐标在0值周边的地图坐标会比A点多。但是同样也会出现负数,因此也不一定比A点好。因此原点可以选择A点也可以选择E点。

图5 可能的原点位置

但是地图坐标在PDF文档页面上一般并不是平均分布的,因此最佳点并不一定在这些点上。如果把所有地图坐标考虑进来计算最佳点的计算过于复杂,会大大增加地图的生产时间,因此一般直接规定使用A点或者E点就可以了,一般为了便于计算选择A点。

研究约定原点选择在A点,以前面的地图A为例。转换为PDF坐标为,左下角(99213,99213),右上角(102047,100630)。将其左下角移动至(0,0)点,其右上角为(2834,1417),移动后所有地图坐标均减去99213点。这样移动以后,地图中很多坐标值的位数都减少了,在左下角原点(0,0)点附近,坐标位数从4位减少为最少1位。最大坐标位数(右上角)从6位减少为4位。

2.3 删除折线中的无效点

在矢量PDF地图中,点状符号数据只占地图数据的很少一部分。使用曲线的线状与面状符号也很少。地图数据中70%左右的数据量是在记录折线上的点。因此,去除折线上的冗余点可以明显减少矢量PDF地图数据量。但是一定要注意把握好度,去掉有意义的点会承受地图精度降低的后果。

2.3.1 去除无意义的冗余点

这是一种寻找去掉冗余点位的方法,其特点和要求是去掉的必须是完全无意义的点位。

一是去除折线上的重叠点,也就是坐标完全相同的点。有些地图数据的精度很高,其有些折线上的2个相邻的定位点相隔很近,从坐标数据来看有细微差别但是按照前面所述的在转为矢量PDF地图坐标后,只保留了小数点后1位,有些点就重叠到了一起。例如点D0(1.01,1.01),D1(1.02,1.02)。转为PDF后为P0(2.9,2.9),P1(2.9,2.9)。2个点就重叠到了一起,这2个点就可以去掉1个。在实际应用中,这样的点总是存在的,而且因为是完全相同的重叠点,可以放心去掉。

二是去除没有拐弯的折线上的点。在地图数据中,有些折线本身拐弯就比较小,在转为矢量PDF地图坐标后,由于坐标位数的减少,有的折线上的点会出现不拐弯的现象。如点P0(0.388,0.388)、P1(0.777,0.387)、P3(1.165,0.388),3个点之间的角度本来就很小,在转为PDF坐标并保留一位小数后就成为了P0(1.1,1.1)、P1(2.2,1.1)、P2(3.3,1.1)。这时候,P1点就是直线(P0,P2)上的一个点,P1点可以直接去除掉。

去掉这样无意义的重复点,不仅可以减少矢量PDF地图的数据量,还因为减少了矢量PDF地图元素的数量,会在一定程度上加快矢量PDF地图的打开速度。

2.3.2 可能会降低精度的去除定位点的方法

一是去除距离过近的点。为减少数据量,两点之间的距离可以用横坐标和纵坐标的变化值的和来比较。如有相邻两点坐标为P1(x1,y1),P2(x2,y2),其距离可以用公式L=(x2-x1)+(y2-y1)来确定。这里需要确定一个值,如0.2,那么当L小于0.2时,P2点就可以去掉了。

二是去除拐弯特别小的中间点。例如折线上有3个点,P1、P2、P3。如果P2点距离P1到P3的连线距离小,则P2点可以去掉。

这2种方法可能会在一定程度上降低矢量PDF地图元素坐标的精度,而且有时候会对地图符号的形状产生较明显影响。他们的使用价值主要在对地图精度要求不高的时候使用,而一般情况下慎用。

3 实验效果

3.1 实验目的

通过实验,证明通过优化矢量PDF地图的编码结构、控制坐标精度,可以大大减少矢量PDF地图的数据量。

3.2 实验方法

数据源:以20幅1∶100万数字地图数据为数据源。

实验过程:①使用通用地理信息系统生成EPS出版地图数据;②使用通用地理信息系统生成栅格地图(jpeg格式);③以第一步生成的EPS出版地图数据为数据源,使用Adobe Acrobat生成矢量PDF地图;④利用自行研发的实验系统,重新优化矢量PDF地图编码结构,生成矢量PDF地图。执行控制矢量PDF地图坐标精度为0.1个PDF坐标,将地图原点移动到地图左下角,删除折线上无意义的冗余点的优化,不执行可能会降低坐标精度的优化方法。

3.3 实验结果

表1中显示了由10幅数字地图生成的数字地图、EPS出版地图、栅格地图、通过EPS生成的矢量PDF地图和优化编码生成的矢量PDF地图的数据量。在最后一行“总计”中,统计了全部20幅图的总和数据。

3.4 实验结论

从实验得出的表1中可以分析出以下结论:

表1 各类地图成果数据量比较图 MB

(1)EPS出版数据的数据量大大多于其他格式,一般只用于印刷出版,不作为电子地图使用。

(2)栅格地图使用了jpeg这种高压缩格式,数据量较小,是网络上使用的最多的格式。

(3)矢量PDF地图的数据量较EPS出版数据低很多。因为PDF文档是一种压缩格式,默认使用zip格式压缩,好处是基本不影响矢量PDF地图的打开数据。而矢量PDF地图是由文本或者二进制编码构成,压缩率非常高。

(4)利用EPS出版数据转换而成的矢量PDF地图的数据量与栅格地图相比较并无优势。但是因其制作流程较栅格地图复杂,因而限制其在网络传播方面的使用。

(5)在优化编码结构以及控制坐标精度后,矢量PDF的数据量可以大大低于栅格地图,其数据量只有栅格地图的4.63%~7.6%,平均6.1%。表明制作专业矢量PDF地图系统是必要的,矢量PDF地图在网络应用领域的前景是光明的。

4 结论

本文采用直接编写PDF文档编码的方法输出矢量PDF地图。这种方法虽然较使用现成的PDF文档转换软件困难,但是能够充分发挥地图的特点,灵活设计矢量PDF地图的数据结构,最大程度上减少矢量PDF地图的数据量。本文提出了几种通过控制矢量PDF地图元素坐标精度减少数据量的方法。实验证明,这些方法都可以大大减少矢量PDF地图的数据量。

猜你喜欢

栅格数据量位数
栅格环境下基于开阔视野蚁群的机器人路径规划
超声速栅格舵/弹身干扰特性数值模拟与试验研究
高刷新率不容易显示器需求与接口标准带宽
暑假训练营·两位数乘两位数和小数的初步认识
《两位数除以一位数笔算除法》教学设计
反恐防暴机器人运动控制系统设计
AMAC
比大小有窍门
电力营销数据分析中的数据集成技术研究
叶丽娅的年龄