一种用于降低矢量多边形空间数据精度的方法及装置的制造方法_3

文档序号:9472186阅读:来源:国知局
至点9之间的原始曲线段划分为点I至点6、点6至点9这两条曲线段,如图5所示。求出点2至点5到点I和点6连线的垂距,垂距最大距离即为点4到点I和点6的连线的垂距d2,由于d2大于距离限差D,则以点4为界,将点I至点6之间的曲线段划分为点I至点4、点4至点6这两条曲线段;点7至点8到点6和点9连线的最大垂距即为点7到点6和点9的连线的垂距d3,由于d3小于距离限差D,则点6至点9曲线段上的点全部舍去,即点7、点8舍去,如图6所示。求出点2至点3到点I和点4连线的垂距,垂距最大距离即为点3到点I和点4的连线的垂距d4,由于d4小于距离限差D,则点I至点4曲线段上的点全部舍去,即点2、点3舍去;点5到点4和点6连线的最大垂距即为d5,由于d5小于距离限差D,则点4至点6曲线段上的点全部舍去,即点5舍去,经过矢量多边形空间数据有损压缩之后的曲线段为点1、点4、点6、点9连接的曲线段,如图7所示。图8是国土资源管理中某地区原始的矢量多边形空间数据,图9是图8中的原始数据经过矢量多边形空间数据有损压缩方法压缩后的数据,压缩的距离限差设置为15米,如图9所示压缩后的矢量多边形空间数据保存原有的基本特征且数据点减少。
[0090]步骤2:获取多边形中每一点的double型坐标,将其保存到新的int型坐标中,SP原坐标小数点后的数据被省略。
[0091]对于图9所示的点A,它的原始double型坐标为(31531210.564703, 4824186.518254),保存为 int 型点坐标,即为(31531210,4824186)。
[0092]步骤3:根据选定的精度,用int型坐标对精度做除法运算,获取运算结果的整数部分作为新的点坐标。
[0093]步骤31:选择精度为10的η次幂(η彡O);
[0094]步骤32:将int型坐标中的X坐标与Y坐标分别对精度做除法运算,获取运算结果的整数部分作为新的点坐标。
[0095]选择精度为10的I次幂,即精度为10。将int型坐标(31531210,4824186)中的X坐标与Y坐标分别除以精度10,产生的新的点坐标即为(3153121,482418)。
[0096]步骤4:将新的点坐标中的X坐标与Y坐标合成为一个double型数据,作为伪随机种子,并对该种子进行模运算,确定偏移方向;
[0097]步骤41:将新的点坐标中的X坐标与Y坐标合成为一个double型数据;
[0098]步骤42:判断该double型数据是否溢出,若溢出,则用步骤32得到的新的点坐标中的X坐标与Y坐标分别对预设大素数8191 (2的13次幂-1)求模,将求模后得到的两个值合成为伪随机种子;若未溢出,直接将该double型数据作为伪随机种子;
[0099]步骤43:将伪随机种子的值进行模2运算,决定其偏移方向,余数为O表示偏移方向为正向,余数为I表示偏移方向为反向。
[0100]将点坐标(3153121,482418)中的X坐标与Y坐标合成一个double型数据,SP3153121482418,由于该数值未超过double型数据的最大范围(1.7与10的308次幂的乘积),则该数值没有溢出,直接将其作为伪随机种子。用3153121482418进行模2运算,余数为0,即原数据偏移方向为正向。
[0101]步骤5:利用伪随机种子生成随机数,且保证伪随机种子值相同的点随机数相同,根据精度对随机数进行缩放,将缩放后得到的结果作为原始点坐标的偏移距离;
[0102]利用伪随机种子调用随机数生成函数生成随机数,假设生成的随机数为3,判断随机数与精度数量级的大小关系,由于精度为10,随机数3的数量级小于精度10的数量级,则将随机数与精度做乘法运算,得到的结果30即为原始点的偏移距离。由于本发明使用的伪随机方法采用点坐标作为伪随机种子,伪随机种子相同的点对应相同的偏移方向与随机数,则不同多边形数据中坐标相同的点在进行精度降低运算时能保持相同的偏移距离与方向,从而保持了原数据的基本特征。
[0103]步骤6:利用偏移距离与偏移方向对原始坐标进行距离和方向上的偏移,达到精度降低的目的。
[0104]根据以上步骤得知,坐标偏移距离为30,偏移方向为正向,则相当于对原始坐标(31531210.564703, 4824186.518254)的X坐标与Y坐标分别加30,即进行矢量多边形空间数据的精度降低之后,该坐标转换为(31531240.564703,4824216.518254),如图10中点A’所示。
[0105]本发明在进行矢量多边形空间数据精度降低之前首先进行矢量多边形空间数据有损压缩,经过有损压缩之后,减少了原始矢量多边形空间数据中非特征点数据的数量,只保留特征点数据,再进行基于伪随机的矢量多边形空间数据精度降低方法,可以有效地减少数据边缘锯齿状的现象。图11是没有进行矢量多边形空间数据有损压缩,直接进行矢量多边形空间数据精度降低的数据结果图,在图8所示的原始矢量多边形空间数据的椭圆B区域中,该区域的边缘是平滑的曲线段,但从图11中可以看出,直接进行矢量多边形空间数据精度降低之后,椭圆B区域中的边缘变成非常尖锐的锯齿状,造成了图像失真的情况,且不能保持原数据的基本图形轮廓。图10是本发明提出的一种矢量多边形空间数据的精度降低方法处理后的数据,椭圆B区域中的边缘没有产生锯齿状,且基本保持了原始矢量多边形空间数据的图像特征。并且本发明基于伪随机的矢量多边形空间数据精度降低方法采用点坐标作为伪随机种子,保证伪随机种子相同的点坐标在进行精度降低处理中的偏移距离和方向相同,使其能够保持原始矢量多边形空间数据的拓扑关系与数据基本特征,由此可见本发明非常适用于国土资源管理中矢量多边形空间数据的安全共享。
[0106]另一方面,本实施例提供一种用于降低矢量多边形空间数据精度的装置,如图12所示,包括:
[0107]打开文件模块201,用于打开矢量多边形空间数据文件,获取矢量多边形空间数据;
[0108]有损压缩模块202,用于对矢量多边形空间数据进行有损压缩,得到只包含特征点的多边形压缩数据;
[0109]本实施例中,有损压缩模块202,具体包括:
[0110]获取最大距离值子模块,用于对矢量多边形空间数据中每一条曲线,获取该曲线的起点和终点,计算该曲线起点和终点之间各个点分别到起点和终点连线的距离,并从中获取最大距离值。
[0111]曲线分割子模块,用于当最大距离值不小于预设距离限差时,将最大距离值对应的点作为特征点,并以该特征点为界,把该曲线分割为第一曲线和第二曲线,对第一曲线和第二曲线分别进行压缩,重复上述过程,依次获取每条曲线上的所有特征点,将其作为压缩后的数据。
[0112]获取模块203,用于对压缩后的数据中的每个多边形,分别获取多边形中的每一点的原始坐标;
[0113]生成种子模块204,用于根据原始点坐标生成伪随机种子;
[0114]本实施例中,生成种子模块204,具体包括:
[0115]类型转换子模块,用于将原始点坐标转换成第一数据类型的坐标;
[0116]缩小范围子模块,用于根据预设的精度范围对第一数据类型的坐标进行缩小范围处理,得到缩小范围后的点坐标;其中,缩小范围子模块,具体用于将第一数据类型的坐标中的X坐标与Y坐标分别对预设精度做除法运算,将运算结果的整数部分作为缩小范围后的点坐标。
[0117]合成子模块,用于将缩小范围后的点坐标中的X坐标与Y坐标合成一个第二数据类型的数据;
[0118]溢出判断子模块,用于判断第二数据类型的数据是否溢出;
[0119]溢出处理子模块,用于在第二数据类型的数据溢出时,用缩小范围后的点坐标中的X坐标与Y坐标分别对预设大素数做求模运算,将得到的运算结果合成为一个第二数据类型的数据,作为伪随机种子;
[0120]未溢出处理子模块,用于将第二数据类型的数据直接作为伪随机种子。
[0121]生成偏移方向模块205,用于对伪随机种子与预设数据进行模运算,将得到的运算结果作为原始点的偏移方向;
[0122]本实施例中,生成偏移距离模块205,具体包括:
[0123]生成随机数子模块,用于根据伪随机种子调用随机数生成函数生成随机数;
[0124]精度判断子模块,用于判断随机数与预设精度数量级的大小关系;
[0125]数量级较小处理子模块,用于在随机数的数量级小于预设精度的数量级时,将随机数与预设精度做乘法运算,得到的结果作为原始点的偏移距离;
[0126]数量级较大处理子模块,用于在随机数的数量级大于预设精度的数量级时,将随机数与预设精度做除法运算,得到的结果作为原始点的偏移距离;
[0127]数量级相等处理子模块,用于在随机数的数量级等于预设精度的数量级时,将随机数直接作为原始点的偏移距离。
[0128]生成偏移距离模块206,用于利用伪随机种子生成随机数,且伪随机种子值相同的点坐标生成的随机数相同,根据预设精度对随机数进行缩放,将缩放后的随机数作为原始点的偏移距离;
[0129]偏移模块207,用于根据偏移距离以及偏移方向对原始点坐标进行偏移,
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1