空间数据压缩、解压与渐进传输的有关方法与装置与流程

文档序号:12891136阅读:363来源:国知局
空间数据压缩、解压与渐进传输的有关方法与装置与流程
本发明涉及空间信息技术、计算机图形学和计算机操作系统领域,尤其涉及空间数据的压缩、解压缩和渐进传输的方法及装置,以及确定存储压缩后的空间数据的最大数据位的方法、将增量数据插入在先缓存的空间数据的方法、增量数据的压缩、解压缩的方法及装置。

背景技术:
空间数据的视图表示方式主要是通过电子地图来展示的,电子地图是将空间数据通过一定的硬件和软件在电子屏幕上显示的可视地图,是空间数据在电子屏幕(视图窗口)上栅格化显示的过程。视图是根据给定的空间条件来选择空间数据在视图窗口中显示的界面。现有的视图显示空间数据的过程就是空间数据的栅格化的过程:首先通过空间数据索引将符合给定空间条件的空间数据取出来经过传输介质传给空间数据使用者即请求发送端,然后对空间数据进行一系列的几何变换和处理,绘制成一幅栅格图像,在屏幕上显示或输出,如计算机屏幕显示、在纸上打印输出及生成图像文件输出等。随着空间信息技术的快速发展,获取高分辨率、高精度的空间数据成为可能,基于网络的空间信息的广泛应用给GIS(GeographicInformationSystem,地理信息系统)的发展和应用带来了机遇,也带来了挑战。相对现有的网络带宽的增加而言,空间信息传输的数据量呈爆炸式增长。为了能够按需传输和减少网络延时,解决高精细地图的海量空间数据的实时自适应快速传输和显示问题的重要途径之一是将空间数据进行压缩和渐进传输。空间数据分为栅格数据和矢量数据两大基本数据结构。栅格数据的分块渐进传输已经有较完善的解决方案,而矢量对象间的空间关系复杂,不适合采用分块方法,因此,目前矢量数据结构的空间数据压缩和渐进传输的研究进展不尽人意,分别叙述如下:1、压缩存在的问题:目前空间数据压缩通常采用将空间坐标的数据类型从float型或者double型转换为short型或int型,通过降低数据精度来减少数据量,但该方式不能保证压缩后的空间数据的显示效果不变,而且压缩后的空间数据到底需要多少个数据位存储,即最大数据位的确定,也没有确切的判断依据。2、渐进传输存在的问题:目前的技术不能解决在空间数据渐进传输中保持空间关系不变和渐进传输方法计算量大、效率低的问题,因此,需要对原始数据进行预处理,按多尺度分层存储,如果原始数据发生改变,则需要重新处理。由于一个空间数据按多尺度分层存储,如分成10层,则一个空间数据按照分辨率在10层中分别进行存储,将增加很多索引数据和控制数据,增加了存储空间。如果空间数据显示时的分辨率在划分的两层之间,则显示就会失真,无法实现无损显示的渐进传送,即不能做到自适应渐进传送。此外,目前空间数据的渐进传输采用坐标点的渐进传输方式,没有实现对于坐标点数据的按照数据位的渐进传输,对增量数据的压缩只是采用通常的压缩方法,如ZIP压缩,压缩比低,没有考虑在先缓存的空间数据同渐进传输的增量数据之间的空间关系,进一步的减少数据量。由上可知,不能确保任意复杂的矢量数据在进行压缩和渐进传输过程中,始终保持矢量数据本身及矢量数据之间空间关系的正确显示,制约了矢量数据压缩和渐进传输技术的实用化。

技术实现要素:
有鉴于此,本发明提供了一种空间数据压缩方法及装置、空间数据解压缩方法、确定存储压缩后的空间数据的最大数据位数的方法、空间数据渐进传输方法及装置、将增量数据插入到在先缓存的空间数据的方法、增量数据的压缩方法及装置、增量数据解压缩方法。本发明实施例提供的空间数据的压缩方法包括:依据预先设定的视图控制参数得到压缩参数Z;依据所述视图控制参数确定参照点P;依据压缩参数Z将空间数据的坐标点的坐标值和参照点P的坐标值变换为整数;将所述空间数据的坐标点的坐标值变换为整数后的值和所述参照点P的坐标值变换为整数后的值的差值作为压缩后的数据。本发明实施例提供的空间数据的压缩装置包括:压缩参数获得单元、参照点确定单元、整数变换单元和运算单元,其中:所述压缩参数获得单元,用于依据预先设定的视图控制参数得到压缩参数Z;所述参照点确定单元,用于依据所述视图控制参数确定参照点P;所述整数变换单元,用于依据压缩参数Z将空间数据的坐标点的坐标值和参照点P的坐标值变换为整数;所述运算单元,用于将所述空间数据的坐标点的坐标值变换为整数后的值和所述参照点P的坐标值变换为整数后的值的差值作为压缩后的数据。本发明实施例提供的与上述方法对应的空间数据的解压缩方法包括:依据预先设定的视图控制参数得到压缩参数Z和参照点P,所述参照点P和压缩空间数据时用的参照点为相同的点;依据压缩参数Z按照与压缩空间数据时相同的方式将参照点P的坐标值变换为整数;将所述压缩后的空间数据的坐标点的数据值和所述参照点P的坐标值变换为整数后的值相加,然后按照与压缩空间数据时相反的方式将相加的结果依据压缩参数Z反算出空间数据的坐标点的值,完成空间数据的解压。本发明实施例提供的确定存储按照上述方法压缩后的空间数据的最大数据位数的方法包括:依据预先设定的视图控制参数中视图窗口的宽度和高度中的最大值来确定用于存储压缩后的空间数据每个坐标值所需要的最大的数据位数n。本发明实施例提供的一种空间数据渐进传输方法包括:当确定需要请求增量数据时,发送增量数据请求,所述请求中包含传输控制参数,当请求发送端存储有在先缓存的空间数据时,所述传输控制参数包括当前视图窗口的压缩参数CZ和在先缓存的空间数据的压缩参数PZ,当请求发送端未存储在先缓存的空间数据时,所述传输控制参数包括当前视图控制参数;接收依据所述请求包含的传输控制参数对原始的空间数据进行分析后获得的增量数据,所述增量数据为请求接收端依据所述传输控制参数,确定出在先缓存的空间数据中没有,且依据所述传输控制参数需要的空间数据的数据位。本发明提供的又一种空间数据渐进传输方法包括:接收请求发送端发送的增量数据请求,所述增量数据请求中包含传输控制参数,当请求发送端存储有在先缓存的空间数据时,所述传输控制参数包括当前视图窗口的压缩参数CZ和在先缓存的空间数据的压缩参数PZ,当请求发送端未存储在先缓存的空间数据时,所述传输控制参数包括当前视图控制参数;依据所述请求包含的传输控制参数对原始的空间数据进行分析处理,获得请求发送端所需要的增量数据,所述增量数据为请求接收端依据所述传输控制参数,确定出在先缓存的空间数据中没有,且依据所述传输控制参数需要的空间数据的数据位;发送所述增量数据到所述请求发送端。本发明实施例提供的空间数据渐进传输装置包括:请求接收单元、分析单元和数据发送单元,其中:所述请求接收单元,用于接收请求发送端发送的增量数据请求,所述增量数据请求中包含传输控制参数,当请求发送端存储有在先缓存的空间数据时,所述传输控制参数包括当前视图窗口的压缩参数CZ和在先缓存的空间数据的压缩参数PZ,当请求发送端未存储在先缓存的空间数据时,所述传输控制参数包括当前视图控制参数;所述分析单元,用于依据所述请求包含的传输控制参数对原始的空间数据进行分析处理,获得请求发送端所需要的增量数据;所述数据发送单元,用于发送所述增量数据到所述请求发送端。本发明实施例提供的将增量数据插入到在先缓存的空间数据的方法包括:依据当前的视图窗口的视图控制参数计算空间数据的放大比例R;依据所述放大比例R计算出当前视图窗口的压缩参数CZ;依据所述当前视图窗口的压缩参数CZ计算得到坐标变换参数CV;找到增量数据(dx,dy)所对应的在先缓存的空间数据中的坐标点P(X,Y);在R大于或等于1时:如果所述P(X,Y)的X大于或等于0,则将所述P(X,Y)的X乘以CV后加上所述dx,然后再除以CV,即(X*CV+dx)/CV,如果X小于0,则将所述P(X,Y)的X乘以CV后减去所述dx,然后再除以CV,即(X*CV-dx)/CV;如果所述P(X,Y)的Y大于或等于0,将所述P(X,Y)的Y乘以CV后加上所述dy,然后再除以CV,即(Y*CV+dy)/CV,如果Y小于0,将所述P(X,Y)的Y乘以CV后减去所述dy,然后再除以CV,即(Y*CV-dy)/CV;在R小于1时:如果所述P(X,Y)的X大于或等于0,则将所述P(X,Y)的X除以CV后加上所述dx,然后再乘以CV,即(X/CV+dx)*CV,如果X小于0,则将所述P(X,Y)的X除以CV后减去所述dx,然后再乘以CV,即(X/CV-dx)*CV;如果所述P(X,Y)的Y大于或等于0,则将所述P(X,Y)的Y除以CV后加上所述dy,然后再乘以CV,即(Y/CV+dy)*CV,如果Y小于0,将所述P(X,Y)的Y除以CV后减去所述dy,然后再乘以CV,即(Y/CV-dy)*CV。本发明实施例提供的增量数据的压缩方法包括:依据预先设定的视图控制参数确定增量数据的参照点P;将所述增量数据和所述参照点P的差值作为压缩后的数据。本发明实施例提供的增量数据的压缩装置包括:参照点确定单元和增量数据压缩单元,其中:所述参照点确定单元,用于依据预先设定的视图控制参数确定增量数据的参照点P;所述增量数据压缩单元,用于将所述增量数据和所述参照点P的差值作为压缩后的数据。本发明实施例提供的与上述方法对应的增量数据的解压缩方法包括:依据预先设定的视图控制参数,从在先缓存的空间数据中确定增量数据的参照点P;将所述压缩后的增量数据和所述参照点P相加,完成增量数据的解压。从上述的技术方案可以看出,本发明实施例公开的空间数据压缩方法及装置,解决了现有技术中通过降低数据精度来减少数据量,不能保证压缩后的空间数据的显示效果不变的问题,解决了压缩后的空间数据到底需要多少个数据位存储的判断依据的问题。从上述的技术方案可以看出,本发明实施例公开的空间数据渐进传输方法及装置,解决了坐标点数据按照数据位的渐进传输的问题,即请求发送端在发送增量数据请求时,在请求中携带有当前需要进行显示的视图窗口的压缩参数,使得请求接收端可以依据压缩参数进行分析,如果需要更多空间数据的坐标值中的数据位才能保证空间数据的无损显示,只要将这些需要新增的数据位的数据从原始空间数据中取出作为增量数据传输给请求发送端,请求发送端将所述增量数据插入到所对应的已有空间数据的数据位的后面,即可保证空间数据的无损显示。从上述的技术方案可以看出,本发明实施例公开的增量数据的压缩方法及装置,通过在先缓存的空间数据同渐进传输的增量数据之间的空间关系,以在先缓存的空间数据作为参照点进行压缩,这时不需要传输压缩用的参照点,获得了更大的压缩比。而且,本发明实施例公开的增量数据的压缩方法不但适用于矢量数据结构的增量数据压缩,也适合于栅格数据结构的增量数据压缩。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例公开的一种空间数据压缩方法流程图。图2为本发明实施例公开的一种空间数据解压缩方法流程图。图3为本发明实施例公开的请求发送端的空间数据渐进传输方法流程图。图4为本发明实施例公开的请求接收端的空间数据渐进传输方法流程图。图5为本发明实施例公开的一种空间数据压缩装置。图6为本发明实施例公开的一种空间数据解压缩装置。图7为本发明实施例公开的请求发送端的空间数据渐进传输装置。图8为本发明实施例公开的请求接收端的空间数据渐进传输装置。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。为了方便描述,本申请文件中将需要处理的空间数据称之为原始空间数据,需要处理的空间数据的坐标称之为原始空间数据的原始坐标,需要处理的空间数据的坐标点称之为原始空间数据的原始坐标点,或直接称之为原始坐标点。下面分别叙述本发明的各种实施例。实施例一本发明公开的一种空间数据压缩的方法实施例的流程如图1所示,该实施例包括:步骤S11、依据预先设定的视图控制参数来确定用于存储压缩后的空间数据每个坐标值所需要最大的数据位数n;本实施例中的视图控制参数包括:视图窗口的外包矩形参数,视图窗口的外包矩形参数是显示空间实体的视图窗口范围(0,0,ViewWidth,ViewHeight),如计算机屏幕地图显示窗口的范围,包括:视图窗口的外包矩形的宽度ViewWidth和视图窗口的外包矩形的高度ViewHeight,通过这两个参数,可以确定实际视图窗口中用于显示图形、图像的窗口的大小范围。计算所述视图控制参数中视图窗口的宽度和高度中的最大的数值并且乘以10,设定为M,即M=max(W,H)*10;或,将所述视图控制参数中视图窗口的宽度和高度中的最大的数值设定为M,即M=max(W,H),其中max表示取最大值,W表示视图窗口的宽度,H表示视图窗口的高度;将计算机中用于存储M所需要的数据位数作为所述存储压缩后的空间数据每个坐标值所需要最大的数据位数n。其中max表示取最大值。步骤S12、依据所述视图控制参数将空间数据的坐标值变换为所述最大的数据位数为n的范围内的数据。参见图5,该图示出了与上述空间数据压缩方法对应的压缩装置。该压缩装置包括:数据位数确定单元和坐标值变换单元,所述数据位确定单元,用于依据预先设定的视图控制参数的视图窗口的分辨率(即视图窗口的宽度和高度)来确定用于存储压缩后的空间数据每个坐标值所需要最大的数据位数n;所述坐标值变换单元,用于依据所述视图控制参数将空间数据的坐标值变换为所述最大的数据位数为n的范围内的数据。实施例二空间数据的显示是对空间数据的坐标点的坐标值进行一系列的坐标变换,变换为视图窗口下的像素坐标,然后通过绘图算法绘制成一幅栅格图像,在屏幕上显示。将空间数据的原始坐标变换为所述视图窗口上的视图坐标的过程如下所示,假设视图窗口的外包矩形为ViewRect(0,0,W,H),其中W为外包矩形的宽度,H为外包矩形的高度,视图中空间数据的放大比例为R,所述视图窗口中显示出来的空间数据的矩形范围为(X轴最小值gxmin,Y轴最小值gymin,X轴最大值gxmax,Y轴最大值gymax),则所述视图窗口中显示出来的空间数据的矩形范围的中心点CP(cx,cy),其中cx=(gxmin+gxmax)/2,cy=(gymin+gymax)/2;原始空间数据的坐标点为p(x,y),所述视图窗口坐标系下的像素坐标点为p’(x’,y’),int表示取整数,其将p(x,y)变换为p’(x’,y’)的坐标变换方法为:x’=int((x-cx)*R)+W/2;y’=H/2-int((y-cy)*R)。由于视图窗口的分辨率是有限的,p’(x’,y’)只有在所述视图窗口的外包矩形ViewRect(0,0,W,H)范围内,也就是说int((x-cx)*R)+W/2在0和W之间,H/2-int((y-cy)*R)在0和H之间,才能在所述视图窗口中显示出来,如果R大于或等于1,R中整数部分中数的位数设为压缩参数Z,10的Z次方设为V,那么int((x-cx)*R)的作用是将所述x和cx数值中小数点Z位开始,后面的数据位都去掉了,而int((x-cx)*V)保留的数据的位数多于int((x-cx)*R)取整后数据的位数,因此用int(x*V-cx*V)来压缩x,压缩后的数据为dx,解压的方法为(dx+cx*V)/V,用int(y*V-cy*V)来压缩y,压缩后的数据为dy,解压的方法为(dy+cy*V)/V,其中cx和cy是参照点P;如果R小于1,则将R的倒数的整数部分中数的位数减去1作为压缩参数Z,表示空间数据在所述视图窗口中显示时,空间数据的坐标值从小数点前第Z位开始,后面的数据位对空间数据在所述视图窗口中显示时不起作用,压缩的方法为:用int(x/V-cx/V)来压缩x,压缩后的数据为dx,解压的方法为(dX+cX/V)*V,用int(y/V-cy/V)来压缩y,压缩后的数据为dy,解压的方法为(dy+cy/V)*V,其中cx和cy是参照点P。在空间数据的压缩解压过程中要保证压缩时的参照点和解压时用的参照点是同一个点。按照这种方法来压缩空间数据不会影响解压后的空间数据在所述视图控制参数所确定的视图窗口中的显示效果。上述内容描述了本发明的一种空间数据压缩、解压的方法实施例,即空间数据的压缩方法包括:依据预先设定的视图控制参数得到压缩参数Z;依据所述视图控制参数确定参照点P;依据压缩参数Z将空间数据的坐标点的坐标值和参照点P的坐标值变换为整数;将所述空间数据的坐标点的坐标值变换为整数后的值和所述参照点P的坐标值变换为整数后的值的差值作为压缩后的数据。参见图2,与上述压缩方法所对应的空间数据的解压缩方法包括:S21、依据预先设定的视图控制参数得到压缩参数和参照点P;S22、依据压缩参数将参照点P的坐标值变换为整数;S23、将压缩后的空间数据的坐标点的数据值和所述参照点P的坐标值变换为整数后的值相加,然后通过和所述压缩参数的运算,反算出空间数据的坐标点的值,完成空间数据的解压。需要说明的是:在上述实施例中尽管是将放大比例R的整数部分的位数或者R倒数的整数部分中数的位数减1作为压缩参数Z,但在视图控制参数包括不同的参数内容时,获取R的方式存在差别。为明确起见,下面示例性地提供三种确定R的方式,本领域技术人员基于这三种方式可以推知多种其他等同或变形方式。确定放大比例R的方式之一:在已明确视图控制参数包括视图窗口的宽度和高度以及在视图窗口中显示出来的空间数据的矩形范围时,一种确定放大比例R的方式为:用所述视图窗口的宽度乘以所述视图窗口的高度获得VR;用所述视图窗口中显示出来的空间数据的矩形范围的宽度乘以矩形范围的高度获得DR;用VR除以DR的值作为放大比例R。确定放大比例R的方式之二:当视图参数包括视图窗口的宽度和高度以及在视图窗口中显示出来的空间数据的矩形范围时,还可以按照如下方式确定放大比例R:先根据视图窗口的宽度、高度及矩形范围确定横向比例和纵向比例,即:横向比例:doubledRadioX=double(nViewWidth/rcMapBound.Width());纵向比例:doubledRadioY=double(nViewHeight/rcMapBound.Height());其中:double表示浮点精度,dRadioX表示在视图窗口中X轴方向空间数据的放大比例,dRadioY表示在视图窗口中Y轴方向空间数据的放大比例;nViewWidth表示视图窗口的宽度,nViewHeight表示视图窗口的高度,rcMapBound表示视图窗口中显示出来的空间数据的矩形范围,rcMapBound.Width()表示获得rcMapBound的宽度W,rcMapBound.Height()表示获得rcMapBound的高度;然后将dRadioX和dRadioY中的最小值、最大值或平均值作为空间数据的放大比例R。确定放大比例R的方式之三:当所述视图模式为三维模式时,所述视图控制参数包括:视图窗口的宽度和高度,视点参数和投影参数,所述视点参数包括视点在世界坐标系中的位置、视点所观察的目标位置和虚拟照相机向上的向量;所述投影参数包括:正交投影和透视投影,则再一种确定视图窗口中显示的空间数据的放大比例R的方式为:根据视图控制参数计算出沿各坐标轴方向的比例dRadioX、dRadioY和dRadioZ,其中:dRadioX表示在视图窗口中X轴方向空间数据的放大比例,dRadioY表示在视图窗口中Y轴方向空间数据的放大比例,dRadioZ表示在视图窗口中Z轴方向空间数据的放大比例,计算方法为:三维实体在视图窗口坐标系下投影后在X轴的长度除以三维实体在原始用户坐标系下的投影到X轴的长度,计算结果为dRadioX,同理可以求出dRadioY和dRadioZ;将dRadioX、dRadioY和dRadioZ中的最小值、最大值、平均值或者将沿各坐标轴方向的比例分别作为空间数据的放大比例R。在上述三种方式中,第一种方式是基于R直接得出的压缩参数Z,后两种方式实际上是通过确定空间数据的坐标点的坐标值中从小数点前或者小点后的某个数据位开始的数据位的数据对空间数据在视图窗口中显示时是否起作用的方式来确定的压缩参数,即:在R大于或等于1的情形下,如果空间数据在所述视图窗口中显示时,空间数据的坐标值从小数点后第Z位开始后面的数据位的数据对空间数据在视图窗口中显示时不起作用,该Z为R中整数部分中数的位数,则将该Z作为压缩参数;在R小于1的情形下,如空间数据在所述视图窗口中显示时,空间数据的坐标值从小数点前第Z位开始后面的数据位的数据对空间数据在所述视图窗口中显示时不起作用,该Z为R的倒数的整数部分中数的位数减去1,则将该Z作为压缩参数。还需要说明的是:在上述实施例中为实现对空间数据的压缩或解压提及到参照点P这一术语,但本发明并不限定采用何种具体的方式确定参照点P,任何一种不妨碍本发明的发明目的实现的方式均可。比如,当所述视图控制参数包括在所述视图窗口中显示出来的空间数据的矩形范围时,可以按照如下方式确定参照点P:依据所述视图控制参数中的在所述视图窗口中显示出来的空间数据的矩形范围来确定参照点P,即取所述矩形范围的中心点、任一一个顶点或者所述矩形范围内的其他点或者与被压缩的点最为接近的点作为参照点P。还比如,当所述视图模式为三维模式时,所述视图控制参数还包括:视点参数和投影参数,所述视点参数包括视点在世界坐标系中的位置、视点所观察的目标位置和虚拟照相机向上的向量;所述投影参数包括:正交投影和透视投影,则依据所述视图控制参数确定参照点P的过程包括:依据所述视图控制参数所确定的视锥体来确定参照点P,取所述视锥体的中心点、任一一个顶点或者所述视锥体范围内的其他点或者与被压缩的点最为接近的点作为参照点P。与上述空间数据的压缩方法相对应地,本发明还提供了一种空间数据的压缩装置的实施例。该压缩装置实施例包括:压缩参数获得单元、参照点确定单元、整数变换单元和运算单元,其中:所述压缩参数获得单元,用于依据预先设定的视图控制参数得到压缩参数Z;所述参照点确定单元,用于依据所述视图控制参数确定参照点P;所述整数变换单元,用于依据压缩参数Z将空间数据的坐标点的坐标值和参照点P的坐标值变换为整数;所述运算单元,用于将所述空间数据的坐标点的坐标值变换为整数后的值和所述参照点P的坐标值变换为整数后的值的差值作为压缩后的数据。该压缩装置实施例的工作过程与前述空间数据的压缩方法相同,为避免重复,不再赘述。同理,本领域技术人员基于上述示例还可以构建出与空间数据解压方法相对应的空间数据解压装置的实施例,参见图6,该图示出了本发明实施例公开的空间数据解压装置,该装置包括参数确定单元、坐标变换单元和运算解压单元,所述参数确定单元,用于依据预先设定的视图控制参数得到压缩参数Z和参照点P,所述参照点P和压缩空间数据时用的参照点为相同的点;所述坐标变换单元,用于依据压缩参数Z按照与压缩空间数据时相同的方式将参照点P的坐标值变换为整数;所述运算解压单元,用于将所述压缩后的空间数据的坐标点的数据值和所述参照点P的坐标值变换为整数后的值相加,然后按照与压缩空间数据时相反的方式将相加的结果依据压缩参数Z反算出空间数据的坐标点的值,完成空间数据的解压。实施例三在上述实施例中压缩空间数据后需要确定存储该压缩后的空间数据的最大数据位数,为此,本发明公开了一种确定存储压缩后的空间数据的最大数据位数的方法,即依据预先设定的视图控制参数中视图窗口的宽度和高度中的最大值来确定用于存储压缩后的空间数据每个坐标值所需要的最大的数据位数n。也就是说,在所述视图窗口中显示的空间数据压缩后需要存储的最大的数据位数由视图窗口的宽度和高度确定。具体而言,本发明优选按照如下方式确定n:先获取所述视图控制参数的视图窗口的宽度和高度中最大的的数值,然后用该最大的值乘以10所需要的数据位数作为所述存储压缩后的空间数据每个坐标值所需要最大的数据位数n。举例而言,视图窗口的宽度为1024,高度为768,则用1024乘以10等于10240,如果存储10240需要14个比特位,因此,可以用2个字节的short数据类型来存储。下面对上述方法存在的依据进行说明。将空间数据的原始坐标变换为所述视图窗口上的视图坐标的过程如下所示,假设视图窗口的外包矩形为ViewRect(0,0,W,H),其中W为外包矩形的宽度,H为外包矩形的高度,视图中空间数据的放大比例为R,所述视图窗口中显示出来的空间数据的矩形范围为(X轴最小值gxmin,Y轴最小值gymin,X轴最大值gxmax,Y轴最大值gymax),则所述视图窗口中显示出来的空间数据的矩形范围的中心点CP(cx,cy),其中cx=(gxmin+gxmax)/2,cy=(gymin+gymax)/2;原始空间数据的坐标点为p(x,y),所述视图窗口坐标系下的像素坐标点为p’(x’,y’),int表示取整数,其计算方法为:x’=int((x-cx)*R)+W/2;y’=H/2-int((y-cy)*R)。由于视图窗口的分辨率是有限的,p’(x’,y’)只有在所述视图窗口的外包矩形ViewRect(0,0,W,H)范围内,也就是说int((x-cx)*R)+W/2在0和W之间,H/2-int((y-cy)*R)在0和H之间,才能在所述视图窗口中显示出来,如果R大于或等于1,R中整数部分中数的位数设为Z,Z的含义是:表示空间数据在所述视图窗口中显示时,空间数据的坐标值从小数点后第Z位开始后面的数据位的数据对空间数据在所述视图窗口中显示时不起作用,10的Z次方设为V,V大于R,同时小于R乘以10,因此int((x-cx)*V)+W/2的值小于W乘以10,同理H/2-int((y-cy)*V)的值小于H乘以10,int((x-cx)*V)保留的数据的位数多于int((x-cx)*R)取整后数据的位数,而int((x-cx)*V)的作用是将所述x和cx数值中小数点Z位开始,后面的数据位都去掉了,同理可以推理出当R小于1的情况。因此先获取所述视图控制参数的视图窗口的宽度和高度中最大的的数值,然后用存储该最大的值乘以10所需要的数据位数作为所述存储压缩后的空间数据每个坐标值所需要最大的数据位数n,既能保证存储的数据不会因为存储空间不够而丢失数据,又能最大程度的利用存储空间。如果为了获得更大的压缩比,或者直接将原始空间数据的坐标点变换为所述视图窗口坐标系下的像素坐标点p’(x’,y’)作为压缩后的数据,则可以将存储所述视图控制参数的视图窗口的宽度和高度中最大的的数值所需要的数据位数作为所述存储压缩后的空间数据每个坐标值所需要最大的数据位数n。实施例四按照前述实施例的方式压缩空间数据后将其进行传输到目的终端,解压后不但能保证空间数据的无损显示,做到自适应压缩,而且能保证空间数据之间空间关系显示的正确性,因为在显示效果上,压缩前和压缩后显示的效果是一样的。当地图放大时,R值变大,如果通过R计算出来的压缩参数Z值也变大,则需要更多空间数据的坐标值中的数据位才能保证能保证空间数据的无损显示,只要将这些数据位从原始空间数据中取过来并插入到所对应的在先缓存空间数据的数据位的后面,才可以保证空间数据的无损显示,实现矢量数据的渐进传输。由于视图窗口的分辨率是有限的,当高分辨率的空间数据在视图窗口上显示时,会有表现空间数据细节部分的数据,如矢量数据的坐标点,或者栅格数据中的数据单元(像素)会绘制在视图窗口上相同的像素上,这时只要取绘制在此像素上的一个坐标点或者数据单元就可以保证空间数据的无损显示了,其它绘制在此像素上坐标点或者数据单元可以去掉,当地图放大时,空间数据显示到屏幕上填充的像素个数比较多(空间数据显示的图形比较大),需要更多的坐标点或者数据单元来表现空间数据的细节部分,只要将这些坐标点或者数据单元(增量数据)从原始空间数据中取过来并插入到所对应的已有空间数据中去,仍然可以保证空间数据的无损显示,对于新增的坐标点或者数据单元的压缩,选取参照点P,可以选取和坐标点或者数据单元最为接近数值做差值计算,比如与所述新增的坐标点或者数据单元在由先缓存的空间数据所记录的视图控制参数所确定的视图窗口中空间数据显示时绘制在相同的像素上并且已经存在于在先缓存的数据中的坐标点或者数据单元作为参照点P,因为这样的差值较小,需要存储的数据量较少,而且不需要传输参照点P,进一步的减小传输的数据量,实现了空间数据的压缩和渐进传输,本压缩和渐进传输的方法不但适合于矢量数据也适合于栅格数据,对与栅格数据,如果所述差值小于或等于预先设定的值,则可以不用传输,直接使用做参照点P所对应的在先缓存中的数据单元(或像素)来代替。下面以不同的实施例分别叙述空间数据的渐进传输、将增量数据插入在先缓存的空间数据(实施例五)、增量数据的压缩(实施例六)等问题。空间数据渐进传输可以从请求发送端的角度进行描述,也可以从请求接收端的角度进行描述。对于请求发送端而言,参见图3,本实施例的空间数据渐进传输方法包括:步骤S61:当请求发送端判断出需要请求增量数据时,向请求接收端发送增量数据请求,该请求中包含传输控制参数。该传输控制参数的内容依据请求发送端的状态不同而不同,比如,当请求发送端存储有在先缓存的空间数据时,该传输控制参数包括当前视图窗口的压缩参数CZ和在先缓存的空间数据的压缩参数PZ或者当前视图窗口的压缩参数和在先缓存的空间数据的坐标点在原始空间数据中的位置信息,使得请求接收端可以根据所述传输控制参数对空间数据进行化简分析,获取增量数据。当请求发送端未存储在先缓存的空间数据时,则此时的传输控制参数包括当前视图控制参数。步骤S62:接收依据所述请求包含的传输控制参数对原始的空间数据进行分析后获得的增量数据,所述增量数据为请求接收端依据所述传输控制参数,确定出在先缓存的空间数据中没有,且依据所述传输控制参数需要的空间数据的数据位。上述步骤提及在需要请求增量数据时才发送增量数据请求,这里确定是否需要增量数据的方式可以有多种方式,本实施例优选如下两种方式确定需要请求增量数据:方式之一:依据当前的视图窗口的视图控制参数计算空间数据的放大比例R;依据所述放大比例R计算当前视图窗口的压缩参数CZ;如果R大于或等于1,则判断所述在先缓存的空间数据的压缩参数PZ是否小于所述当前视图窗口的压缩参数CZ,若小于,则需请求增量数据,若不小于,则不需请求增量数据;如果R小于1,则判断所述在先缓存的空间数据的压缩参数PZ是否大于所述当前视图窗口的压缩参数CZ,若大于,则需请求增量数据,若不大于,则不需请求增量数据。方式之二:依据当前的视图窗口的视图控制参数计算空间数据的放大比例R;依据所述放大比例R计算当前视图窗口的压缩参数CZ;如果R大于或等于1,则判断所述在先缓存的空间数据的压缩参数PZ是否小于所述当前视图窗口的压缩参数CZ,若小于,则需请求增量数据;若不小于,则判断R是否大于在先缓存的空间数据所记录的在先放大比例,如果大于,则需要请求增量数据,否则,不需请求增量数据;如果R小于1,则判断所述在先缓存的空间数据的压缩参数PZ是否大于所述当前视图窗口的压缩参数CZ,若大于,则需请求增量数据,若不大于,则判断R是否大于在先缓存的空间数据所记录的在先放大比例,如果大于,则需要请求增量数据,否则,不需请求增量数据。上述方式之二中,传输控制参数的内容还可以包括当前的视图窗口的空间数据的放大比例R。对于从请求接收端而言,参见图4,本实施例的空间数据渐进传输方法包括:步骤S101:接收请求发送端发送的增量数据请求,所述增量数据请求中包含传输控制参数,与前述从请求发送端描述一致,这里的传输控制参数的具体内容与请求发送端的状态相关,即当请求发送端存储有在先缓存的空间数据时,所述传输控制参数包括当前视图窗口的压缩参数CZ和在先缓存的空间数据的压缩参数PZ或者当前视图窗口的压缩参数和在先缓存的空间数据的坐标点在原始空间数据中的位置信息;当请求发送端未存储在先缓存的空间数据时,所述传输控制参数包括当前视图控制参数。步骤S102:依据所述请求包含的传输控制参数对原始的空间数据进行分析处理,获得请求发送端所需要的增量数据;步骤S103:发送所述增量数据到所述请求发送端。在请求发送端存储有在先缓存的空间数据的情形下,上述步骤提及的“依据请求包含的传输控制参数对原始的空间数据进行分析处理,获得请求发送端所需要的增量数据”的具体实现方式有多种,本实施例示例性地给出如下两种方式,本领域技术人员可以在此基础上进行等同变换获知多种方式:对原始的空间数据进行分析处理,获得请求发送端所需要的增量数据的方式之一:1)依据所述当前视图窗口的压缩参数CZ计算得到坐标变换参数CV,CV等于10的CZ次方,即CV=10CZ;2)依据所述当前视图窗口的压缩参数CZ和在先缓存的空间数据的压缩参数PZ计算出所需要取出空间数据的坐标值中数据位的个数DB,即DB=CZ-PZ;3)依据所述DB计算出数据位的获取参量DV,DV等于10的DB次方,即DV=10DB;4)依据所述坐标变换参数CV和DV,从需要获取增量数据的空间数据坐标点P(X,Y)中获取增量数据DP(DX,DY):首先依据CV将所述坐标点P(X,Y)中坐标值的变换为整数值,并取其绝对值xValue和yValue,xValue=abs(X*CV);yValue=abs(Y*CV);然后获取所需要的增量数据DP(DX,DY),DX=xValue-int(xValue/DV)*DV;DY=yValue-int(yValue/DV)*DV;其中abs表示取绝对值,int表示取整数。对原始的空间数据进行分析处理,获得请求发送端所需要的增量数据的方式之二:依据在先缓存的空间数据所记录的在先放大比例对原始的空间数据进行化简,获得在先化简结果,通过所述在先化简结果的空间数据来获得在先缓存的空间数据所对应的增量数据:1)依据所述当前视图窗口的当前放大比例计算出当前视图窗口的压缩参数CZ;2)依据所述当前视图窗口的压缩参数CZ计算得到坐标变换参数CV,CV等于10的CZ次方,即CV=10CZ;3)依据所述当前视图窗口的压缩参数CZ和在先缓存的空间数据的压缩参数PZ计算出所需要取出的空间数据的坐标值中数据位的个数DB,即DB=CZ-PZ;4)依据所述DB计算出数据位的获取参量DV,DV等于10的DB次方,即DV=10DB5)依据所述坐标变换参数CV和DV,从需要获取增量数据的空间数据坐标点P(X,Y)中获取增量数据DP(DX,DY):首先依据CV将所述坐标点P(X,Y)中坐标值的变换为整数值,并取其绝对值xValue和yValue,xValue=abs(X*CV);yValue=abs(Y*CV);然后获得所需要的增量数据DP(DX,DY),DX=xValue-mt(xValue/DV)*DV;DY=yValue-int(yValue/DV)*DV;其中abs表示取绝对值,int表示取整数。依据所述当前视图窗口的当前放大比例和所述在先化简结果对原始的空间数据进行化简分析,获得新增坐标点,即确定在所述当前化简结果中,且不在所述在先化简结果中的原始坐标点为新增的坐标点,对所述新增的坐标点数据进行如下处理,获得新增坐标点压缩数据;依据所述当前视图窗口的压缩参数CZ计算得到坐标变换参数CV,CV等于10的CZ次方,即CV=10CZ;与所述新增的坐标点在由先缓存的空间数据所记录的视图控制参数所确定的视图窗口中空间数据显示时绘制在相同的像素上并且已经存在于在先化简结果中的坐标点作为参照点P(Xr,Yr);依据坐标变换参数CV将所述新增的坐标点的坐标值和参照点P(Xr,Yr)的坐标值Xr和Yr变换为整数;将所述新增的坐标点的坐标值变换为整数后的值和所述参照点P(Xr,Yr)的坐标值变换为整数后的值的差值作为所述新增的坐标点的压缩数据。将所述获得在先缓存的空间数据所对应的增量数据和所述新增的坐标点的压缩数据作为请求发送端所需要的增量数据。通过这种方式(方式之二)实现了对新增的坐标点作为增量数据的压缩。在请求发送端未存储在先缓存的空间数据时,即传输控制参数包括当前视图控制参数的情形下,上述步骤提及的“依据请求包含的传输控制参数对原始的空间数据进行分析处理,获得请求发送端所需要的增量数据”可以按照如下的方式进行:依据所述当前视图窗口的视图控制参数对原始的空间数据进行压缩;将压缩后的空间数据作为增量数据。本实施例的上述内容详细描述了空间数据渐进传输的方法,与该方法对应地,本发明还提供了一种空间数据渐进传输的装置。参见图8,该装置包括:请求接收单元、分析单元和数据发送单元,其中:所述请求接收单元,用于接收请求发送端发送的增量数据请求,所述增量数据请求中包含传输控制参数,当请求发送端存储有在先缓存的空间数据时,所述传输控制参数包括当前视图窗口的压缩参数CZ和在先缓存的空间数据的压缩参数PZ,当请求发送端未存储在先缓存的空间数据时,所述传输控制参数包括当前视图控制参数;所述分析单元,用于依据所述请求包含的传输控制参数对原始的空间数据进行分析处理,获得请求发送端所需要的增量数据;所述数据发送单元,用于发送所述增量数据到所述请求发送端。该空间数据渐进传输装置的工作过程与上述空间数据渐进传输方法基本相同,为避免重复,这里不再赘述。但需要说明的是:该空间数据传输装置仅仅是从请求接收端的角度描述的,本领域技术人员还可以在前述内容基础上构建出从请求发送端角度描述的空间数据渐进传输装置。参见图7,该图示出了本发明实施例公开的从请求发送端角度描述的空间数据渐进传输装置,该装置包括请求发送单元和数据接收单元,其中:所述请求发送单元,用于在确定需要请求增量数据时,发送增量数据请求,所述请求中包含传输控制参数,当请求发送端存储有在先缓存的空间数据时,所述传输控制参数包括当前视图窗口的压缩参数CZ和在先缓存的空间数据的压缩参数PZ,当请求发送端未存储在先缓存的空间数据时,所述传输控制参数包括当前视图控制参数;所述数据接收单元,用于接收依据所述请求包含的传输控制参数对原始的空间数据进行分析后获得的增量数据。实施例五如前所述,在获得增量数据后,需要将接收的增量数据插入到在先缓存的空间数据中,以便确保在地图放大比例发生变化时空间数据仍然能无损显示。本发明提供的将接收的增量数据插入到所述在先缓存的空间数据中的过程包括:依据当前的视图窗口的控制参数计算空间数据的放大比例R;依据所述放大比例R计算出当前视图窗口的压缩参数CZ;依据所述当前视图窗口的压缩参数CZ计算得到坐标变换参数CV;找到增量数据(dx,dy)所对应的在先缓存的空间数据中的坐标点P(X,Y);如果R大于或等于1:如果所述P(X,Y)的X大于或等于0,则将所述P(X,Y)的X乘以CV后加上所述dx,然后再除以CV,即(X*CV+dx)/CV,如果X小于0,则将所述P(X,Y)的X乘以CV后减去所述dx,然后再除以CV,即(X*CV-dx)/CV;如果所述P(X,Y)的Y大于或等于0,将所述P(X,Y)的Y乘以CV后加上所述dy,然后再除以CV,即(Y*CV+dy)/CV,如果Y小于0,将所述P(X,Y)的Y乘以CV后减去所述dy,然后再除以CV,即(Y*CV-dy)/CV;如果R小于1:如果所述P(X,Y)的X大于或等于0,则将所述P(X,Y)的X除以CV后加上所述dx,然后再乘以CV,即(X/CV+dx)*CV,如果X小于0,则将所述P(X,Y)的X除以CV后减去所述dx,然后再乘以CV,即(X/CV-dx)*CV;如果所述P(X,Y)的Y大于或等于0,则将所述P(X,Y)的Y除以CV后加上所述dy,然后再乘以CV,即(Y/CV+dy)*CV,如果Y小于0,将所述P(X,Y)的Y除以CV后减去所述dy,然后再乘以CV,即(Y/CV-dy)*CV。在按照上述步骤将增量数据中新增的数据位插入到了在先缓存的空间数据中,如果增量数据中包含新增的坐标点,则进行如下步骤:从在先缓存的空间数据中找到所述增量数据中的新增的坐标点XP(xdx,xdy)的参照点P(Xr,Yr),然后解压所述增量数据中的新增的坐标点XP(xdx,xdy),解压后的坐标点为JP(jdx,jdy);如果R大于或等于1,则将所述P(Xr,Yr)的Xr乘以CV后加上所述xdx,然后再除以CV,即jdx=(Xr*CV+xdx)/CV,将所述P(Xr,Yr)的Yr乘以CV后加上所述xdy,然后再除以CV,即jdy=(Yr*CV+xdy)/CV;如果R小于1,则将所述P(Xr,Yr)的Xr除以CV后加上所述xdx,然后再乘以CV,即jdx=(Xr/CV+xdx)*CV,将所述P(Xr,Yr)的Yr除以CV后加上所述xdy,然后再乘以CV,即jdy=(Yr/CV+xdy)*CV;将所述解压后的坐标点JP(jdx,jdy)插入到参照点P(Xr,Yr)的后面;在完成了增量数据的插入后,本发明还优选替换所述在先缓存的空间数据的压缩参数为所述当前视图窗口的压缩参数,替换所述在先缓存的空间数据的在先放大比例为所述的放大比例R。实施例六在前述实施例中的“对原始的空间数据进行分析处理,获得请求发送端所需要的增量数据”的过程实际上提到了一种对增量数据的压缩方法。该过程可以独立为一种增量数据的压缩方法,即构成本发明的第六实施例。该实施例包括:步骤一:依据预先设定的视图控制参数确定增量数据的参照点P;这里的视图控制参数可以包括:视图窗口的宽度W和高度H。此外,在某些情况下,视图控制参数还可以进一步包括其他内容。比如:当所述视图模式为二维模式时,所述视图控制参数还包括:在所述视图窗口中显示出来的空间数据的矩形范围。当所述视图模式为三维模式时,所述视图控制参数还包括:视点参数和投影参数,所述视点参数包括视点在世界坐标系中的位置、视点所观察的目标位置和虚拟照相机向上的向量;所述投影参数包括:正交投影和透视投影。步骤二:将所述增量数据和所述参照点P的差值作为压缩后的数据。上述步骤一可以采用多种具体的方式依据视图控制参数确定参照点P,只要不妨碍本发明的发明目的实现即可。本发明优选按照如下方式依据预先设定的视图控制参数确定增量数据的参照点P:将存在于在先缓存中且和增量数据在所述视图控制参数所确定的视图窗口上显示时绘制在同一个像素上的空间数据作为参照点P。具体地,这种优选方式可以按照如下步骤实现:依据所述视图控制参数,将增量数据的坐标进行变换得到在所述视图控制参数所确定的视图窗口中的视图坐标PV;依据所述视图控制参数,找到存在于在先缓存中的空间数据坐标变换得到的所述视图控制参数所确定的视图窗口的视图坐标等于PV的空间数据作为参照点P。此外,还可以按照如下步骤实现上述优选方式:依据所述视图控制参数得到在视图窗口中的一个坐标单位,并得到所述一个坐标单位所代表的原始空间数据的原始坐标系下的长度vLength;依据所述视图控制参数,找到存在于在先缓存中的空间数据坐标点和增量数据坐标点之间的距离小于vLength的空间数据,将找到的空间数据的坐标点作为参照点P。上述方法描述了一种增量数据的压缩过程,与此相对应地,本发明还公开了一种增量数据的解压过程,即依据预先设定的视图控制参数,从在先缓存的空间数据中确定增量数据的参照点P;将所述压缩后的增量数据和所述参照点P相加,完成增量数据的解压。与上述增量数据的压缩方法相对应,本发明还公开了一种增量数据的压缩装置。该装置包括:参照点确定单元和增量数据压缩单元,其中:所述参照点确定单元,用于依据预先设定的视图控制参数确定增量数据的参照点P;所述增量数据压缩单元,用于将所述增量数据和所述参照点P的差值作为压缩后的数据。需要说明的是:除上述增量数据的压缩装置之外,本领域技术人员还可以在前述内容基础上构建出增量数据的解压装置。本发明公开的数据处理装置可以设置在计算机内,也可以设置在手机或其他可以使用本发明的设备内,或者是其他智能设备。其既可以设置在请求接收端,在将请求发送端请求的数据发送之前,首先对空间数据进行处理,也可将其设置在请求发送端,在将其发送到实际的视图窗口前,将数据进行处理,或者同时设置在服务器和请求发送端,根据实际情况选择由哪一方或者双方共同进行处理。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1