一种基于EnersunWebCache动态生成缓存电网地图瓦片的方法

文档序号:9844134阅读:482来源:国知局
一种基于EnersunWebCache动态生成缓存电网地图瓦片的方法
【技术领域】:
[0001 ] 本发明是利用EnersunWebCache服务器拦截来至客户端的请求,判断本次请求的 数据是否已经被缓存。如果请求数据已被缓存,则将这些缓存图片直接渲染至客户端;如果 请求数据没有被缓存,则发送请求至WMS ServeH提供网络地图服务的服务器),由服务器 处理请求数据,并返回给EnersunWebCache服务器,EnersunWebCache服务器进过植染及缓 存数据图片后绘制到客户端。
【背景技术】:
[0002] 随着电网规模的不断发展,背景地图所占各类电网GIS系统的比例不断提高,已经 发展到了相当大的规模。手工、纸质的地图已经无法满足"合理规划、科学管理、优质服务" 的要求。在取得发展的同时,地图切片的技术也存在一定的问题。在地图切片的过程中常见 的问题具体表现在以下几个方面,如:切片时间长、地图瓦片的存储容量不断增大、局部更 新繁琐、地图瓦片发布周期长等问题。这些问题的存在给电网GIS系统更新背景地图造成了 很大的困难。其次是地图数据处理入库成本居高不下。随着营配信息集成工作的开展, 0.4kV低压设备的持续录入,对各个供电局所在城区的地图精度和地图详细程度都提出了 更高的要求。同时,在云南电网公司GIS系统的建设过程中,还存在着个别地市无高精度矢 量地图、无高分辨率影像的问题急需解决。为此,云南电网公司针对地图数据处理技术采用 EnersunWebCache动态生成缓存瓦片技术以解决GIS系统建设对地图数据处理的需求。
[0003] EnersunWebCache通过存储(缓存)地图图片或瓦片,当它们被请求时, EnersunWebCache致力于充当客户端(OpenLayer或Google Maps)服务端(GeoWebCache或其 他WMS服务)间的代理。EnersunWebCache(EWC)是一个米用Java实现用于缓存WMS(Web Map Service)Tile的开源项目。当地图客户端请求一张新地图和Tile时,EnersunWebCache将拦 截这些调用然后返回缓存过的Tiles。如果找不到缓存再调用服务器上的Tiles,从而提高 地图展示的速度,实现更好的用户体验。如图1所示,服务器中蓝色的柱体就是瓦片的仓库。 事实上,我们只需直接请求瓦片仓库而不需要咨询WMS服务,就可以拼凑出庞大的地图,因 为EnersunWebCache每秒钟可以应答成百上千的请求。
[0004] (本发明是在满足云南电网GIS平台的需求下,通过EnersunWebCache动态生成缓 存瓦片技术,把云南电网公司下属的所有供电局所有GIS系统的背景地图处理并更新。)

【发明内容】

[0005] -种基于EnersunWebCache动态生成缓存电网地图瓦片的方法,其特征是,包括三 个模块:由访问控制模块、数据缓存模块、地图切图模块依序连接组成;其中:
[0006] 1)、访问控制模块:访问控制模块是整个程序的入口;当接收到地图访问请求时, 该模块会根据请求中的坐标范围或者指定固定层级、列、行的地图数据到数据缓存模块中 提取数据;如果数据缓存模块中未提取到请求的数据,控制访问模块会通知地图切图模块 对该区域进行地图切片,切片完成后先将地图返回给地图访问请求,然后再将地图存入数 据缓存模块;访问控制模块模块采用java语言开发,部署在apache-tomcat服务器上,支持 负载均衡与集群节点的动态增加与删除,可提供标准的疆1^、¥15、105、1?5服务;
[0007] 2)、数据缓存模块:数据缓存模块是基于Hadoop和Hbase搭建的快速文件访问模 块;可智能将访问量大的地图文件存储于内存中,当再次请求时直接从内存获取文件,访问 量降低后的地图文件会定期从内存中移除;如果内存中没有的地图文件,则会通过倒排索 引机制从磁盘读取;
[0008] 3)、地图切图模块:地图切图模块是基于开源框架OpenLayer通过java语言实现将 全区域(例如云南省)的矢量地图和卫星影片按照金字塔模型切割成固定像素的瓦片;先将 金字塔模型配置固化存储为OpenLayer的配置文件;输入切图的层级、行、列序号以接口形 式提供切图服务;部署在apache-tomcat服务器上,支持负载均衡与集群节点的动态增加与 删除。
[0009] 目前准备测试环境:戴尔T5610塔式服务器共4台,访问控制模块1台,数据缓存模 块1台,地图切图模块2台。对本发明产品进行性能测试,能在0.3秒左右告诉响应地图请求, 在没有全部地图完全切图的情况下能实现更完美的用户体验。见表1。
[0010] 表1
[0011]
[0012] 本发明的目的可通过以下的技术措施来实现:
[0013] 1.金字塔模型
[0014] 对于WebGIS而言,将矢量图层渲染为栅格数据是一个昂贵的计算过程。如果矢量 图层并不是经常修改,这样一次次重复描绘同样的线条就是在浪费宝贵的CPU。当谷歌地图 推出瓦片地图后,大一些的地图网站纷纷效仿,都是预先渲染好标注得很完美的海量图片, 然后将这些大图片分割为256*256像素的瓦片,这些瓦片很小,以致它们下载很快,它们的 文件名不会改变,以致浏览器能快速缓存起来。研究谷歌地图可以发现,谷歌地图有〇~17 共十八级缩放比例,其瓦片大小为256*256,当0级比例尺为1:10000公里时,是一副循环的 世界地图图片,以后每放大一级,比例尺增大一倍,在上一级的瓦片基础上再一分为四个 256*256的瓦片,分辨率也越来越高,显示的内容越来越丰富,17级最丰富。这就是WebGIS中 常用的金字塔模型,如图1所示。
[0015] 2.地图切割原理
[0016] 创建地图缓存之前先要设计地图,在实际应用中Web地图通常包含底图和功能性 的专题图层,需要对它们分别切割。本专利也可采用自定义的切割方法,切割完的图片按照 l_r_c. png的格式进行编码命名,其命名规则如图2所示;其中,"瓦片数据集"为瓦片数据的 根目录,其下的目录为地图瓦片的金字塔层,目录名命名方式:"层号",1、2、3、……17;金字 塔层目录下以该层的行为目录,目录名命名方式:"行号",1、2、3、……17,行目录下为具体 的瓦片数据文件。
[0017] 3.-致性机制
[0018] -致性维护机制保证Web缓存库中的地图信息与底层空间数据库中的地图信息一 致,各Web缓存数据库之间信息一致。具体的一致性维护是通过并行的两步实现的。
[0019] 第一,客户端修改地图,向服务器发出修改信息,Web服务器在完成修改后,会计算 出此次请求所改动的图片,于是向应用服务器请求并获得更新的图片,然后用新图片替代 缓存中的旧图片,从而使当前缓存数据库与底层空间数据库中的信息一致。
[0020] 第二,Web服务器感知信息,当应用服务器成功响应客户的修改地图请求后,应用 服务器会通知各Web服务器,各Web服务器判断此更改是否影响本地Web缓存,如果不影响就 不处理该消息,否则就向应用服务器发送新的获取地图请求,将缓存中原有地图图片替换。
[0021] 4.部署与访问
[0022]系统部署结构图如图3所示。
[0023] 地图请求访问流程:
[0024] 应用程序需要地图服务时,向EnersunWebCache服务器发出地图请求, EnersunWebCache服务器判断本次请求的数据是否已经被缓存。如果请求数据已被缓存,则 将这些缓存图片直接渲染至客户端;如果请求数据没有被缓存,则发送请求至切图服务器, 由切图服务器处理请求数据,并返回给EnersunWebCache服务器,EnersunWebCache服务器 进过渲染及缓存数据图片后绘制到客户端。图4为访问流程图。
[0025]本发明的有益效果:
[0026] 通过本方法可解决地图瓦片的切片时间以及地图瓦片的存放空间。其次通过本方 法切片时,无需一次性把所有瓦片都切完,可以先把工具部署到切片服务器上,通过客户端 动态浏览时系统就把当前浏览的区域缓存到数据库中,当下次再浏览到相同区域时,系统 就不会再次去缓存,提高地图访问的速度。因此,在电网行业中具有很好的推广使用价值。
[0027] 本发明的实施方式不限于此,在本发明上述基本技术思想前提下,按照本领域的 普通技术知识和惯用手段对本
【发明内容】
所做出其它多种形式的修改、替换或变更,均落在 本发明权利保护范围之内。
【附图说明】
[0028]图1金字塔模型;
[0029] 图2瓦片分割命名规范;
[0030] 图3为系统部署结构图;
[0031] 图4为访问流程图;
[0032]图5为发布后的云南省矢量电子地图;
[0033]图6为发布后的云南省影像电子地图;
[0034]图7为本发明的模块结构图。
【具体实施方式】
[0035] -种基于EnersunWebCache动态生成缓存电网地图瓦片的方法,其特征是,包括三 个模块:由访问控制模块、数据缓存模块、地图切图模块依序连接组成;其中:
[0036] 1)、访问控制模块:访问控制模块是整个程序的入口;当接收到地图访问请求时, 该模块会根据请求中的坐标范围或者指定固定层级、列、行的地图数据到数据缓存模块中 提取数据;如果数据缓存模块中未提取到请求的数据,控制访问模块会通知地图切图模块 对该区域进行地图切片,切片完成后先将地图返回给地图访问请求,然后再将地图存入数 据缓存模块;访问控制模块模块采用java语言开发,部署在apache-tomcat服务器上,支持 负载均衡与集群节点的动态增加与删除,可提供标准的疆1^、¥15、105、1?5服务;
[0037] 2)、数据缓存模块:数据缓存模块是基于Hadoop和Hbase搭建的快速文件访问模 块;可智能将访问量大的地图文
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1