一种地图瓦片数据的读取、分发方法及读取、分发系统的利记博彩app

文档序号:9417510阅读:535来源:国知局
一种地图瓦片数据的读取、分发方法及读取、分发系统的利记博彩app
【技术领域】
[0001]本发明涉及地理数据处理技术领域,具体涉及一种地图瓦片数据的读取、分发方法及读取、分发系统。
【背景技术】
[0002]由于WebGIS是从服务器端读取地理数据,而每次读取的数据量有限,加上WebGIS需要支持多客户端读取地理数据,因此对于服务器端地理数据的获取,采用了使用瓦片数据的方法。而最常见的瓦片数据有256*256大小的jpg数据,png数据等栅格数据,以及相应大小的矢量瓦片数据。以栅格瓦片数据为例,常见的譬如ArcGIS的栅格瓦片数据,是以瓦片级别作为大的文件夹,行列号计算出来分级文件夹,最终存储的是256*256大小的jpg或者png数据的。在发布服务时,客户端是直接通过IIS或者Apache等Web服务器端软件,通过一定规则直接获取服务器端栅格瓦片数据文件的。这样的做法存在几个弊端:
[0003]1、由于使用IIS或者Apache直接读取小文件,服务器对于瓦片影像数据的管理存在困难。一个普通的机械硬盘能够达到最大的存储容量是4TB左右,即使采取磁盘阵列,硬盘柜等方式来扩大存储容量,能够得到的存储提升量也是有限的。若要提供全球影像服务,在提供的服务级别达到17级的时候需要的硬盘存储容量就需要达到240T,而显然对于大部分的单一存储来说,这个量显然是达不到的。因此,想要把所有的文件存储在同一个存储容器上,显然是不现实的。这样,就需要提供有分布式的文件系统来支撑这一需求。但是分布式的文件系统并不是操作系统原生的文件系统,采用这种文件系统需要服务器端另外的程序来实现。所以对于数据量稍微大一点的情况,直接读取小文件的方案基本无解。
[0004]2、这种方案对于不存在于服务器存储上的文件访问有性能上的缺失。特别是对于有大量瓦片文件缺失的情况下,客户端直接访问服务器端缺失的瓦片,会让服务器磁盘做一次文件是否存在的判断。而如果很多访问请求同时进行的话,对于磁盘1也是个不小的负担。
[0005]3、如果要实现大量访问的负载均衡,应用这种方案则需要增加相同数据容量的服务器存储。有多少个出口服务,就需要实现多少份的冗余存储,由于第一条的原因,这种冗余存储复制的速度太慢,会严重拖慢数据更新的速度,导致服务质量下降。而数据的冗余存储,服务器数量的增加,也都带来了服务端成本的上升。
[0006]4、依赖于Web服务器端软件进行服务器切片发布,增加了操作的复杂程度,用户需要比较专业的服务器知识和GIS软件知识才能顺利进行操作。以ArcGIS Server为例,对切片进行部署发布时需要进行一系列复杂操作,并且由于安全策略等问题经常会发生服务器无法访问的问题,这些问题比较影响工作效率,并且对服务发布人员的专业要求提高了。

【发明内容】

[0007]本发明所要解决的技术问题是提供一种地图瓦片数据的读取、分发方法及读取、分发系统,能够解决目前地图瓦片数据读取、分发的缺点和不足。
[0008]本发明解决上述技术问题的技术方案如下:
[0009]基于本发明的一个方面,提供了一种地图瓦片数据的读取方法,所述方法包括:
[0010]S11、建立虚拟服务网络,所述虚拟服务网络中包括多个服务器节点,其中,所述多个服务器节点之间通过预定通信协议互连;
[0011]S12、根据用户客户端发送的数据读取请求,在所述虚拟服务网络的当前服务器节点的内存缓存中查找是否存在对应的目标瓦片数据,若存在,则直接将对应的目标瓦片数据返回给用户客户端;若不存在,则执行步骤S13 ;
[0012]S13、通过在所述当前服务器节点上构建的R树查找所述数据读取请求对应的目标瓦片数据所在的服务器节点,若目标瓦片数据在当前服务器节点上,则访问当前服务器节点得到要查找的目标瓦片数据,并将该目标瓦片数据写入当前服务器节点的内存缓存中,再从内存缓存中取出该目标瓦片数据返回给用户客户端;若目标瓦片数据不在当前服务器节点上,则执行步骤S14;
[0013]S14、当前服务器节点将数据读取请求转发给存在目标瓦片数据的其它服务器节点,所述其它服务器节点在内存缓存中查找是否存在该目标瓦片数据,若存在,则将该目标瓦片数据发送给当前服务器节点,并存储于当前服务器节点的内存缓存中,再从当前服务器节点的内存缓存中提取目标瓦片数据返回给用户客户端;若不存在,则执行步骤S15 ;
[0014]S15、在所述其它服务器节点中查找对应的目标瓦片数据,并将查找到的目标瓦片数据存储于本服务器节点的内存缓存中,同时,将该目标瓦片数据发送给所述当前服务器节点,并写入当前服务器节点的内存缓存中,再从当前服务器节点的内存缓存中提取出目标瓦片数据返回给用户客户端。
[0015]基于本发明的另一个方面,提供了一种地图瓦片数据的分发方法,所述方法包括:
[0016]S21、接收用户客户端发送的数据读取请求,检测所述数据读取请求对应的目标瓦片数据类型;
[0017]S22a、若所述数据读取请求对应的目标瓦片数据为栅格地图瓦片数据,则服务器节点直接将目标瓦片数据分发给对应的用户客户端;
[0018]S22b、若所述数据读取请求对应的目标瓦片数据为矢量地图瓦片数据,则服务器节点先将目标瓦片数据渲染后再分发给对应的用户客户端。
[0019]基于本发明的又一个方面,提供了一种地图瓦片数据的读取系统,所述系统包括:
[0020]第一查找模块,用于根据用户客户端发送的数据读取请求,在所述虚拟服务网络的当前服务器节点的内存缓存中查找是否存在对应的目标瓦片数据,若存在,则直接将对应的目标瓦片数据返回给用户客户端;若不存在,则驱动第二查找模块工作,其中,所述虚拟服务网络中包括多个服务器节点,所述多个服务器节点之间通过预定通信协议互连;
[0021]第二查找模块,用于通过在所述当前服务器节点上构建的R树查找所述数据读取请求对应的目标瓦片数据所在的服务器节点;
[0022]第一数据访问模块,用于若目标瓦片数据在当前服务器节点上,则访问当前服务器节点得到要查找的目标瓦片数据,并将该目标瓦片数据写入当前服务器节点的内存缓存中,再从内存缓存中取出该目标瓦片数据返回给用户客户端;若目标瓦片数据不在当前服务器节点上,则驱动请求转发模块工作;
[0023]请求转发模块,用于通过当前服务器节点将数据读取请求转发给存在目标瓦片数据的其它服务器节点;
[0024]第三查找模块,用于在所述其它服务器节点的内存缓存中查找是否存在该目标瓦片数据,若存在,则将该目标瓦片数据发送给当前服务器节点,并存储于当前服务器节点的内存缓存中,再从当前服务器节点的内存缓存中提取目标瓦片数据返回给用户客户端;若不存在,则驱动第二数据访问模块工作;
[0025]第二数据访问模块,用于访问所述其它服务器节点得到要查找的目标瓦片数据,并将查找到的目标瓦片数据存储于本服务器节点的内存缓存中,同时,将该目标瓦片数据发送给所述当前服务器节点,并写入当前服务器节点的内存缓存中,再从当前服务器节点的内存缓存中提取出目标瓦片数据返回给用户客户端。
[0026]基于本发明的再一个方面,提供了一种地图瓦片数据的分发系统,所述系统包括:
[0027]检测模块,用于接收用户客户端发送的数据读取请求,检测所述数据读取请求对应的目标瓦片数据类型;
[0028]第一下发模块,用于若所述数据读取请求对应的目标瓦片数据为栅格地图瓦片数据,则直接将目标瓦片数据分发给对应的用户客户端;
[0029]第二下发模块,用于若所述数据读取请求对应的目标瓦片数据为矢量地图瓦片数据,则先在服务器节点上将目标瓦片数据渲染后再分发给对应的用户客户端。
[0030]本发明提供的一种地图瓦片数据的读取方法及读取系统,通过建立虚拟服务网络,只要数据存储于虚拟服务网络中,就会被任意一个服务节点访问到,多台服务器节点在内网中连接在一起,这多台服务器节点各自的服务能力等于这多台服务器节点的服务能力总和,增强了每一个服务器节点的服务能力;同时,只要数据在某一个服务器节点被访问至IJ,那么一段时间内该数据就会缓存在虚拟服务网络的某些服务器节点的内存缓存中,当下次访问时,可直接从内存缓存中读取,加快了数据读取的速度。
[0031]另外,本发明提供的一种地图瓦片数据分发的方法及系统,当接收到用户客户端发送的数据读取请求后,检测需要请求的数据的类型,若是栅格地图瓦片数据,则服务器节点直接将数据下发给用户客户端,若为矢量地图瓦片数据,则先在服务器节点上渲染后再下发给用户客户端,这样充分利用了服务器多核性能上的优势,极大地加快了出图渲染的速度。
【附图说明】
[0032]图1为本发明实施例一的一种地图瓦片数据的读取方法流程图;
[0033]图2为本发明实施例二的一种地图瓦片数据的读取系统示意图;
[0034]图3为本发明实施例三的一种地图瓦片数据的分发方法流程图;
[0035]图4为本发明实施例四的一种地图瓦片数据的分发系统示意图。
【具体实施方式】
[0036]以下结合附图对本发明的原理和特征进行描述
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1