WebGIS矢量数据高效传输方法
【技术领域】
[0001]本发明涉及网络地理信息系统技术,尤其是一种面向网络的WebGIS矢量数据高效传输方法。
【背景技术】
[0002]矢量数据高效传输是网络地理信息系统(WebGIS)中需要解决的重要问题之一,地理坐标点是矢量数据的重要组成部分,要提高WebGIS中矢量数据的网络传输效率,必须首先解决地理坐标点的高效传输问题。将矢量数据的地理坐标数值转换为字符串格式,然后使用字符串压缩算法对字符串进行压缩,可以达到减小网络数据传输量的目的,但压缩算法耗时,地理坐标点越多,压缩时间越长,且客户端接收数据后还需要进行数据解压缩,难以满足对实时性要求较高的WebGIS服务的需求。为了使客户端能够快速的解析矢量数据,目前常用的WebGIS服务中大多都没有采用压缩转换方法,而是将矢量数据坐标点的数值直接转换为字符串形式返回给客户端,传输量较大,难以支持面向大规模矢量数据的WebGIS 服务。
【发明内容】
[0003]本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种WebGIS矢量数据高效传输方法,将矢量数据坐标点的数值直接转换为在计算机内存中存储的原始二进制的字节数组,在不增加服务端和客户端额外的计算开销下,实现矢量数据的快速压缩,减小矢量数据坐标点在网络中的传输大小。
[0004]本发明解决其技术问题所采用的技术方案是:一种WebGIS矢量数据高效传输方法,其包括以下步骤:
步骤I)根据客户端传递的检索条件在服务器端检索矢量数据;
步骤2)提取检索到的矢量数据的地理坐标点;
步骤3)根据矢量数据地理坐标点的数值类型判断坐标值在计算机内存中的二进制位宽b,获取每个坐标值在计算机内存中的二进制数据,根据坐标值二进制位宽计算坐标值字节长度B=b/8,依次获取每个坐标值的各个字节,将每个坐标点快速压缩为B个字节,将矢量数据的各个地理坐标点的数值快速转换为二进制字节数组;
这里需要说明的是:因为各个数值类型在计算机内存中占用的位宽都是固定的,所以数据压缩转换过程中不需要考虑不足位的处理;
步骤4)将地理坐标点以二进制字节流的形式发送给客户端;
步骤5)客户端接收地理坐标点的二进制字节流数据;
步骤6)将各个地理坐标点的二进制字节数组快速转换为数值类型,提供给WebGIS客户端使用。
[0005]按上述方案,所述步骤3)中还包括将转换后的二进制的每个坐标点数值压缩为长度固定的字节数组的步骤。
[0006]本发明产生的有益效果是:本发明的有益效果是能够快速的对矢量数据进行压缩,减小矢量数据网络传输数据量,提高矢量数据网络传输效率,同时能够保证WebGIS客户端能够对矢量数据地理坐标点进行快速的解析,为WebGIS大规模用户的并发访问提供技术支持。
[0007]
【附图说明】
[0008]下面将结合附图及实施例对本发明作进一步说明,附图中:
图1是本发明的方法流程图;
图2是是本发明以一个点要素查询功能为实施例的方法流程图。
【具体实施方式】
[0009]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0010]如图1所示,图1是本发明提供的WebGIS矢量数据高效传输方法流程图,所述方法包括以下步骤:
在步骤I)中,WebGIS服务器端根据客户端传递的矢量数据检索条件从矢量数据中检索客户端请求的矢量数据;
在步骤2)中,服务器端提取检索到的矢量数据的地理坐标点,得到每个坐标点的数值;
在步骤3)中,服务器端获取矢量数据地理坐标点的数值类型,根据数值类型判断坐标点数值在计算机内存中占用的字节长度(如:浮点型字节长度为4,32位整型字节长度为4,64位整型字节长度为8),将各个地理坐标点的数值直接快速转换为在计算机内存中存储的二进制形式,将每个坐标点数值快速压缩为长度固定的字节数组;
这里需要说明的是:不同的数值类型在计算机内存中占用字节长度不同,但其压缩转换方法是相同的,只是不同数值类型的坐标值压缩后得到的字节数组的长度不同而已。
[0011]在步骤4)中,服务器端将所有地理坐标点以二进制字节流的形式发送给客户端; 在步骤5)中,客户端接收请求的矢量数据的地理坐标点的二进制字节数组数据; 在步骤6)中,客户端将各个地理坐标点的二进制字节数组装载到计算机内存中,然后快速地将其直接转换为数值类型,得到原始的地理坐标数值,提供给WebGIS客户端使用,过程结束。
[0012]本发明最明显的不同在于利用了数值类型数据在计算机内存中的存储特点,直接获得矢量数据地理坐标点数值在内存中的字节数组,然后将其发送给客户端,既实现了矢量数据的快速压缩,又保证了客户端能够快速地进行数据解析。
[0013]实施例一:
为了更清晰的说明本发明的思想,下面结合附图2以客户端请求一个点图层中的一个点要素(x,y)的地理坐标为实施例进行进一步的说明,其中χ=114.364757588563,y=30.8765486547617。设点图层中矢量数据地理坐标的数值类型采用浮点型(一个浮点型数据在计算机内存中占用4个字节)。某个点要素的地理坐标高效传输方法的具体步骤如下:
步骤201)、服务器端根据客户端的请求参数从点图层中检索客户端请求的目标点要素;
步骤202)、服务器端从点图层中提取目标点要素的地理坐标(X,y)数值;
步骤203)、服务器端将转换为计算机内存中的二进制存储形式并压缩,分别获得X的4个字节数组和y的4个字节数组;
步骤204)、服务器端将X和y的4个字节拼接为8个字节数组,并将其以二进制字节流的形式返回给客户端;
步骤205)、客户端接收8个字节组成的目标点要素的地理坐标数据;
步骤206)、客户端解析字节数组,将第O至第3个字节加载到计算机内存,直接将其转换为浮点型数值,获得X的原始数值;将第4至第7个字节加载到计算机内存,直接将其转换为浮点型数值,获得y的原始数值。至此完成了目标点要素从服务端到客户端的整个传输过程。
[0014]如果用目前WebGIS服务中将坐标值转换为字符串形式在网络中传输,例如转换为“114.364757588563,30.8765486547617”,则每个坐标值需要占用16个字节,再加上每个坐标值的数字位数可能不同,必须在X和y之间添加分隔符以区分,总共至少需要传输33个字节。而该实施例中本发明将X和I分别压缩到4个字节,因为其字节长度相同,中间不需要添加分隔符,客户端可直接按4个字节长度依次解析,因此总共只需要8个字节,与现在方法相比,数据压缩比约为4倍。一方面实现了地理坐标数据的快速压缩,提高传输效率,另一方面客户端能够进行快速的解析,不需要使用专用的字符串压缩算法,避免了压缩和解压缩耗时问题。
[0015]应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【主权项】
1.一种WebGIS矢量数据高效传输方法,其特征在于,一种WebGIS矢量数据高效传输方法,其包括以下步骤: 步骤I)根据客户端传递的检索条件在服务器端检索矢量数据; 步骤2)提取检索到的矢量数据的地理坐标点; 步骤3)将矢量数据的各个地理坐标点的数值快速转换为二进制字节数组形式; 步骤4)将地理坐标点以二进制字节流的形式发送给客户端; 步骤5)客户端接收地理坐标点的二进制字节流数据; 步骤6)将各个地理坐标点的二进制字节数组快速转换为数值类型,提供给WebGIS客户端使用。2.根据权利要求1所述的传输方法,其特征在于,所述步骤3)中还包括将转换后的二进制的每个坐标点数值压缩为长度固定的字节数组的步骤。3.根据权利要求1所述的传输方法,其特征在于,所述步骤3)中将矢量数据的各个地理坐标点的数值快速转换为二进制字节数组形式的具体步骤如下: 根据矢量数据地理坐标点的数值类型判断坐标值在计算机内存中的二进制位宽b,获取每个坐标值在计算机内存中的二进制数据;根据坐标值二进制位宽计算坐标值字节长度B=b/8,依次获取每个坐标值的各个字节,将每个坐标点快速压缩为B个字节,将矢量数据的各个地理坐标点的数值快速转换为二进制字节数组形式。
【专利摘要】本发明公开了一种WebGIS矢量数据高效传输方法,其包括以下步骤:步骤1)服务器端根据客户端传递的检索条件检索矢量数据;步骤2)提取矢量数据的地理坐标点;步骤3)将矢量数据的所有地理坐标数值快速转换为二进制形式;步骤4)将转换后的所有地理坐标值的二进制数据发送给客户端;步骤5)客户端接收二进制格式的地理坐标值数据;步骤6)将地理坐标从二进制形式快速转换为数值类型,提供给WebGIS客户端使用。本发明能够快速的将矢量数据的地理坐标值进行压缩,减小WebGIS中矢量数据地理坐标在网络中的传输大小,提高数据传输效率,为大规模用户的并发访问提供支持。
【IPC分类】G06F17/30
【公开号】CN104899311
【申请号】CN201510328632
【发明人】郭明强, 谢忠, 吴亮, 罗显刚, 黄颖
【申请人】中国地质大学(武汉)
【公开日】2015年9月9日
【申请日】2015年6月15日