基于大图切割的矢量数据瓦片裁图加速方法

文档序号:9597844阅读:509来源:国知局
基于大图切割的矢量数据瓦片裁图加速方法
【技术领域】
[0001]本发明涉及网络地理信息系统技术,尤其涉及一种基于大图切割的矢量数据瓦片裁图加速方法。
【背景技术】
[0002]对矢量数据进行裁图并以瓦片地图的形式进行发布是目前广泛采用的矢量地图网络发布方法。瓦片裁图过程非常耗时,瓦片级数越大,耗时越长。为了提高瓦片裁图效率,目前主要有多进程并行裁图和集群环境下并行裁图两类优化方案,这两类方案的共同点都是将瓦片裁图任务分配给多个裁图工作单元并行执行,以缩短总体裁图时间,但对于大规模矢量数据,每个裁图工作单元的效率仍然很低。通过提升裁图服务器的硬件配置或增加集群中裁图工作结点数目可以提高裁图的效率,但是资源利用率低、硬件成本高。

【发明内容】

[0003]本发明要解决的技术问题在于针对现有技术中的缺陷,提供一种基于大图切割的矢量数据瓦片裁图加速方法,该方法能够减少瓦片裁图过程中矢量数据的检索次数,有效地提高瓦片裁图工作单元的裁图效率,提高资源利用率,降低硬件成本,为大规模矢量数据的实时瓦片裁图提供支持。
[0004]本发明解决其技术问题所采用的技术方案是:基于大图切割的矢量数据瓦片裁图加速方法,包括以下步骤:
[0005]1)打开矢量地图,获取矢量地图操作对象;所述矢量地图操作对象为map对象;
[0006]2)设置瓦片裁图参数,所述参数包括裁图原点、每个瓦片级别的分辨率、每张瓦片图像的像素大小和裁图的空间范围;
[0007]3)设置大图像素大小,大图像素大小是单张瓦片图像像素大小的21咅,η为自然数;
[0008]4)根据大图像素大小计算每个瓦片级别中大图的行列号区间;
[0009]5)根据瓦片级别、大图的行列号和瓦片裁图参数计算大图对应的矢量数据空间范围;
[0010]6)使用Map对象根据大图对应的空间范围检索后提取矢量数据,循环绘制所有矢量图形,生成大图图像;
[0011]7)使用图形设备接口将大图图像快速切割为多个瓦片图像,保存到存储设备中;
[0012]8)循环生成所有大图图像并进行切割,最终完成所有瓦片的裁图工作。
[0013]本发明产生的有益效果是:本发明能够有效地减少瓦片裁图过程中检索矢量数据的次数,缩短每个瓦片裁图工作单元的裁图时间,实现瓦片裁图过程的加速。有助于提高集群环境下裁图工作结点的资源利用率、降低硬件成本,为大规模矢量数据的实时裁图提供技术支持。
【附图说明】
[0014]下面将结合附图及实施例对本发明作进一步说明,附图中:
[0015]图1是本发明实施例的方法流程图;
[0016]图2是本发明实施例用于加速经典的四叉树形式组织的第3级瓦片的裁图过程示意图。
【具体实施方式】
[0017]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0018]如图1所示,基于大图切割的矢量数据瓦片裁图加速方法,以经典的四叉树瓦片裁图为例,瓦片裁图原点位于左上角,其包括以下步骤:
[0019]步骤1),调用GIS平台组件中提供的矢量地图操作接口,打开矢量地图文件,获得矢量地图操作对象(Map);
[0020]步骤2),设置瓦片裁图参数,包括裁图原点(ox,oy)、每个瓦片级别的分辨率reSl、每张瓦片图像的像素大小P、裁图的空间范围和瓦片数据的存储目录,将参数信息保存到内存中;
[0021]步骤3),设置大图像素大小,其是单张瓦片图像像素大小的2n倍,η为自然数;
[0022]步骤4),根据步骤3)中设置的大图像素大小,计算每个瓦片级别i中大图的行(列)号区间,最小行(列)号BN_= 0,最大行(列)号BN_计算方法如公式⑴所示;
[0023]BNnax= 2 V2n-1 公式⑴
[0024]步骤5),根据瓦片级别、大图的行列号、瓦片裁图原点和瓦片分辨率计算大图B(i,r,c)对应的矢量数据空间范围(xmin, x_, ymin, ymax),如公式(2)-(5)所示;
[0025]xmin= ox+c.2 n.p.res;公式(2)
[0026]xmax= ox+(c+l).2 n.p.res;公式(3)
[0027]ymin= oy- (r+1).2 n.p.res;公式(4)
[0028]ymax= oy-r.2 n.p.res;公式(5)
[0029]步骤6),使用步骤1)中获得的Map对象检索并提取大图对应的空间范围内的矢量数据,并使用图形设备接口循环绘制所有矢量图形,生成大图图像;
[0030]步骤7),根据步骤3)中设置的大图像素大小和大图的行列号,计算大图包括的每个瓦片图像的真实行列号,使用图形设备接口将大图图像快速切割为2η.2η个瓦片图像,保存到存储设备中,从而达到加速瓦片裁图过程的目的;
[0031]步骤8)重复步骤4)至步骤7),循环生成每个瓦片级别中的所有大图图像并进行切割,当所有瓦片图像都生成并保存到存储设备中时,裁图过程结束。
[0032]本发明与现有方法最明显的不同在于采用了先生成大图,再将其快速切割为多个瓦片的裁图方法,以成倍的减少对矢量数据的检索次数,达到加速瓦片裁图效率的目的。
[0033]如图2所示,以经典的四叉树形式组织的第3级瓦片的裁图过程为例进行说明,瓦片总数为23*23= 64张,瓦片像素大小设置为256,大图像素大小设置为256*2 2= 1024,基于大图切割实现瓦片裁图加速的具体步骤如下:
[0034]步骤200)、先计算第3级瓦片大图行列号区间,大图行数(列数)=23*256/1024=2,大图的最大行(列)号BN_= 2 3/22-1 = 1,大图的行号(列号)的区间为[0,1],根据公式(2)-(5)计算第0个大图B(0,0)的空间范围;
[0035]步骤201)、使用地图操作对象从空间数据库中检索大图空间范围内的矢量数据;
[0036]步骤202)、从空间数据库中提取分布在大图空间范围内的矢量数据;
[0037]步骤203)、使用图形设备接口循环绘制提取到的所有矢量数据到大图图像中;
[0038]步骤204)、生成与大图空间范围相一致的大图图像文件;
[0039]步骤205)、使用图形设备接口将大图图像快速切割为22.22= 16张瓦片图像;
[0040]步骤206)、将16张瓦片图像存储到硬盘或其它存储设备中;
[0041]按以上步骤依次完成大图B(0,1)、B(1,0)、B(l,1)的裁图工作,最终完成第三级瓦片的整个裁图工作,在该实施例中使用大图切割技术,将矢量数据的检索次数从64次缩减到了 4次,有效地实现了瓦片裁图过程的加速。
[0042]应当理解的是,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,而所有这些改进和变换都应属于本发明所附权利要求的保护范围。
【主权项】
1.一种基于大图切割的矢量数据瓦片裁图加速方法,其特征在于,包括以下步骤: 1)打开矢量地图,获取矢量地图操作对象;所述矢量地图操作对象为map对象; 2)设置瓦片裁图参数,所述参数包括裁图原点、每个瓦片级别的分辨率、每张瓦片图像的像素大小和裁图的空间范围; 3)设置大图像素大小,大图像素大小是单张瓦片图像像素大小的2n倍,η为自然数; 4)根据大图像素大小计算每个瓦片级别中大图的行列号区间; 5)根据瓦片级别、大图的行列号和瓦片裁图参数计算大图对应的矢量数据空间范围; 6)使用Map对象根据大图对应的空间范围检索后提取矢量数据,循环绘制所有矢量图形,生成大图图像; 7)使用图形设备接口将大图图像快速切割为多个瓦片图像,保存到存储设备中; 8)循环生成所有大图图像并进行切割,最终完成所有瓦片的裁图工作。
【专利摘要】本发明公开了一种基于大图切割的矢量数据瓦片裁图加速方法,其包括以下步骤:步骤1)打开矢量地图,获取矢量地图操作对象;步骤2)设置瓦片裁图参数;步骤3)设置大图像素大小;步骤4)计算每个瓦片级别中大图的行列号区间;步骤5)计算大图对应的矢量数据空间范围;步骤6)根据大图对应的空间范围检索、提取矢量数据,并绘制生成大图图像;步骤7)将大图图像快速切割为多个瓦片图像,保存到存储设备中;步骤8)循环生成所有大图图像并进行切割,最终完成所有瓦片的裁图工作。本发明能够减少瓦片裁图过程中矢量数据的检索次数,有效地加速瓦片裁图过程,为大规模矢量数据的实时瓦片裁图提供支持。
【IPC分类】G06F17/30
【公开号】CN105354206
【申请号】CN201510328502
【发明人】郭明强, 谢忠, 吴亮, 罗显刚, 黄颖
【申请人】中国地质大学(武汉)
【公开日】2016年2月24日
【申请日】2015年6月15日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1