基于空间计算域相似度匹配的网络地图预加载方法

文档序号:9911137阅读:536来源:国知局
基于空间计算域相似度匹配的网络地图预加载方法
【技术领域】
[0001] 本发明涉及网络地理信息系统技术,尤其是一种基于空间计算域相似度匹配的网 络地图预加载方法。
【背景技术】
[0002] 网络地图的预加载是网络地理信息系统(WebGIS)中需要解决的重要问题之一,将 网络地图历史访问数据存储到客户端本地缓存,能够提高下一次访问相同地理位置的网络 地图的效率,但在访问新的没有访问过的网络地图数据时,由于在客户端缓存中不存在目 标网络地图数据,用户需要长时间等待新的网络地图数据逐个实时加载,地图显示效率低, 降低了网络地图用户的操作体验。

【发明内容】

[0003] 本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于空间计算域 相似度匹配的网络地图预加载方法。
[0004] 本发明解决其技术问题所采用的技术方案是:一种基于空间计算域相似度匹配的 网络地图预加载方法,包括以下步骤:
[0005] 1)建立用于存储历史访问地图记录的空间计算域数据库;所述数据库中的数据记 录字段如下{标识,瓦片名称,瓦片起始行号,瓦片起始列号,瓦片结束行号,瓦片结束列号, 瓦片级数,访问时间};
[0006] 2)初始化地图容器对象map,设置地图原点(〇X,〇y),创建瓦片地图图层类对象实 例,设置瓦片地图图层名name,将瓦片地图图层添加到地图容器中,添加地图容器的地图变 化事件的事件监听,调用瓦片地图服务接口获取瓦片地图元数据信息,从中获取瓦片地图 空间范围;
[0007] 3)当地图可视化范围发生变化时,获取map对象当前可视地图空间范围;计算当前 瓦片地图空间计算域的地理空间范围;
[0008] 4)取地图容器map当前地图级别和当前地图级别的分辨率,计算当前瓦片地图空 间计算域访问的瓦片数据的起止行列范围
[0009] 5)在空间计算域数据库中查询与当前空间计算域请求的瓦片数据相似度匹配最 佳的空间计算域数据记录;
[0010] 6)若找到,则预加载该相似度匹配最佳的空间计算域的下一条空间计算域数据记 录。
[0011] 按上述方案,步骤6)中,查找到相似度匹配最佳的空间计算域数据记录后,根据相 似度匹配最佳的空间计算域的数据记录的标识,查询该记录的下一条空间计算域数据记 录,并循环预加载目标空间计算域访问的所有瓦片图像。
[0012] 按上述方案,所述步骤5)中查询与当前空间计算域请求的瓦片数据相似度匹配最 佳的空间计算域数据记录具体如下:
[0013] 5.1)在数据表中查询与当前空间计算域请求的瓦片名称和瓦片级别相同的空间 计算域记录,记为数组accordltems
[0014] 5.2)若accordltems的数组大小大于0,则需要依次对accordltems数组中的每一 项进行分析,如果accordltems数组中的第i项(即accordItems[i])与当前瓦片地图空间计 算域有交集,则计算accordItems[i]与当前瓦片地图空间计算域之间的相同的瓦片块数 量,瓦片块数量记为8;[1]1;[1&1';^7 ;如果&(^(^(11〖61]18[;[]与当前瓦片地图空间计算域没有交 集,则继续进行下一个数据项的空间计算域相似度分析;
[0015] 5.3)根据计算结果,找到simi larity大于0且similarity最大的数组项集合 maxAccordlterns;如果数组项集合的数组大小等于0,则停止瓦片数据预加载过程;如果数 组项集合的数组大小等于1,则对应的空间计算域记录为与当前空间计算域相似度匹配最 佳的空间计算域;如果maxAc cord I terns的数组大小大于1,则将访问时间最新的一条记录作 为与当前空间计算域相似度匹配最佳的空间计算域。
[0016] 本发明产生的有益效果是:本发明能够基于空间计算域的历史访问数据进行空间 计算域相似度匹配,预测下一步最有可能访问的空间计算域,提前预加载下一步可能访问 的网络地图数据,提高网络地图数据的显示效率,增强网络地图服务网站的用户检验。
【附图说明】
[0017] 下面将结合附图及实施例对本发明作进一步说明,附图中:
[0018] 图1是本发明的方法流程图;
[0019] 图2是本发明以基于Openlayers和HTML5的网络地图预加载功能为实施例的方法 流程图。
【具体实施方式】
[0020] 为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明 进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限 定本发明。
[0021] 如图1所示,一种基于空间计算域相似度匹配的网络地图预加载方法,其包括以下 步骤:
[0022] 步骤1:初始化地图容器对象map,设置地图原点(〇X,〇y),创建瓦片地图图层类对 象实例,设置瓦片地图图层名name,将瓦片地图图层添加到地图容器中,添加地图容器的地 图变化事件的事件监听,设置该事件的回调函数eventsCallBack。调用瓦片地图服务接口 获取瓦片地图元数据信息,从中获取瓦片地图空间范围mapValidExtent(mapSx,mapSy, mapEx,mapEy)〇
[0023] 判断客户端是否存在空间计算域数据库userHistoryFootprintDB和数据表 11861'取81:〇^。如果不存在,则初始化数据库118 61']^81:(^5^〇〇丨卩1';[11丨013,以及数据表 userHistory,如表1所示;反之,不作处理;
[0024] 表1瓦片地图空间计算域的数据表(userHistory)结构
[0025]
[0026] 步骤2 :当地图可视化范围发生变化时,获取map对象当前可视地图空间范围 bounds(viewSx,viewSy,viewEx,viewEy) 〇计算mapValidExtent与bounds的相交空间范围 mapBounds(boxSx,boxSy,boxEx,boxEy),mapBounds为当前瓦片地图空间计算域的地理空 间范围。mapBounds的计算公式如公式(1)-(4)所示:
[0027] boxSx=Max(mapSx,viewSx)公式(1)
[0028] boxSy=Max(mapSy,viewSy)公式(2)
[0029] boxEx=Min(mapEx,viewEx)公式(3)
[0030] boxEy=Min(mapEy,viewEy)公式(4)
[0031 ] 步骤3:获取地图容器map当前地图级别level和当前地图级别的分辨率res,计算 当前瓦片地图空间计算域访问的瓦片数据的起止行列范围,包括:起始行(sx)、起始列 (sy)、结束行(ex)、结束列(ey),其计算公式如公式(5)-(8)所示。将当前瓦片地图空间计算 域的起止行列范围、瓦片图层名称name、瓦片级别level和当前访问时间time作为当前的瓦 片地图空间计算域的数据记录。设当前空间计算域为curRecordltem,单张瓦片的高宽均为 256像素。
[0032] sx = boxSx_ox/(res*256)公式(5)
[0033] sy = oy_boxEy/(res*256)公式(6)
[0034] ex = boxEx_ox/(res*256)公式(7)
[0035] ey = oy_boxSy/(res*256)公式(8)
[0036] 步骤4:构造空间计算域数据库查询sql语句,调用数据库操作函数从userHistory 数据表中查询与当前空间计算域请求的瓦片名称和瓦片级别相同的空间计算域记录数组 已(3(3(^(1]^61118。如果3(^(^(1]^61118的数组大小等于0,则11861']^81:〇巧数据表中没有与当前空 间计算域相似的数据记录,停止瓦片数据预加载过程,转步骤6;如accordl terns的数组大小 大于〇,则需要依次对accordltems数组中的每一项进行分析,如果accordltems数组中的第 i项(即accordItems[i])与当前瓦片地图空间计算域有交集,则计算accordItems[i]与当 前瓦片地图空间计算域之间的相同的瓦片块数量,将其作为瓦片地图空间计算域相似度 (similarity)评价依据;如果accordltems[i]与当前瓦片地图空间计算域没有交集,贝lj s imi lari ty = 0,继续进行下一个数据项的空间计算域相似度分析。
[0037] 根据计算结果,找到similarity大于0且similarity最大的数组项集合 maxAccordltems。如果maxAccordltems的数组大小等于0,则停止瓦片数据预加载过程,转 步骤6;如果maxAccordltems的数组大小等于1,则maxAccordItems[0]为与当前空间计算域 相似度匹配最佳的空间计算域;如果maxAccordltems的数组大小大于1,则依据每一项空间 计算域的访问时间(time)进行选择,将访问时间最新的一条记录作为与当前空间计算域相 似度匹配最佳的空间计算域。设找到的与当前空间计算域相似度匹配最佳的空间计算域数 据记录的id值为target ID。
[0038] 步骤5:根据相似度匹配最佳的空间计算域的数据记录的标识(id),从 userHi story数据表中查询id = targetID+l的空间计算域数据记录,获得该瓦片地图空间 计算域的name,sx,sy,ex,ey,level。如果该数据记录不存在,则停止瓦片数据预加载过程, 转步骤6;如果目标记录存在,则通过创建html中的img控件循环预加载目标空间计算域访 问的所有瓦片图像。
[0039] 步骤6:调用数据库操作函数,将当前瓦片地图空间计算域[name,sx,sy,ex,ey, level,time]添加到数据表userHistory中。结束。
[0040] 本发明最明显的不同在于利用了 html5中的浏览器离线数据库存储功能,将空间 计算域访问历史记录存储在浏览器客户端,每次地图发生变化时,从客户端本地的空间计 算域历史数据库查找到与当前空间计算域相似度匹配最佳的历史空间计算域,然后预加载 最佳匹配的空间计算域的下一条空间计算域所访问的网络地图数据,并提前存储到浏览器 的本地缓存中,当用户进行下一步地图操作时,已缓存过的网络地图数据可以直接从本地 缓存读取,提高网络地图数据的显示速度,增强用户体验,尤其是在低带宽网络环境下,该 方法的优势更加明显。
[0041] 实施例一:
[0042] 为了更清晰的说明本发明的思想,下面结合附图2,对基于空间计算域相似度匹配 的瓦片地图预加载方法进行进一步的说明,以Openlayers开发库作为地图显示框架,使用 HTML5中的本地存储技术实现瓦片地图空间计算域的存储,单张瓦片的高
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1