地理瓦片图拼接方法

文档序号:6428076阅读:1599来源:国知局
专利名称:地理瓦片图拼接方法
技术领域
本发明涉及电力调度系统中一种地理背景图的瓦片拼接展示方法,属于计算机图形学可视化技术领域。
背景技术
图形软件中如果要展示大范围的地理地图,并能够在不同放大缩小比例下显示不同比例下的地图,每一级放缩图片显示精度不变,即不会出现图片拉伸后出现的马赛克,即需要使用瓦片地理图技术,在拥有大量相同尺寸大小不同层级的地理瓦片图的基础上,使用的瓦片拼接算法来实现动态输出任意所需层级上所需范围下的清晰图片。当前很多算法都不能够使算法的时间复杂度和空间复杂度都保持在0 (1),而且未能够很好的以接口方式服务于电力系统中的能量管理系统(EMS)中。

发明内容
本发明的发明目的是本发明所要解决的第一个技术问题是如何有效的实现拼接算法,并能够使得算法的时间复杂度和空间复杂度都能够保持在0(1)的复杂度,即在给定输出图范围后,复杂度基本恒定,不与缩放层级N成正比例关系。本发明所要解决的另一个技术问题是如何以良好的接口方式服务于电力能量管理系统(EMS)中,可以直接提供通用接口给系统下各应用调用。为达到上述发明目的,本发明是采用以下的技术方案来实现的一种地理瓦片图拼接方法,其特征在于,包括以下步骤1)设定初始环境,包括适用于EMS系统的算法接口出入参数规范、瓦片图资源文件名称的编码方式、初始参数;2)通过所需图片范围和层级直接确定对应层级下瓦片行号列号范围;3)找到对应层级下瓦片行列号和瓦片文件名称之间的关系,即通过瓦片行列号和层级返回对应瓦片文件的名称,通过与前次搜索瓦片缓存比对,缓存中没有该图的再从磁盘获取图片内容到内存;4)通过步骤3)中获取的瓦片文件内容拼接成整幅图片并与步骤2)中所需图片范围相交并获取最终输出图片;针对电力能量管理系统(EMS)的平台需求,本算法是建立在满足以下地理瓦片图编码规则的基础上提出的设定瓦片图资源文件名称的编码方式,每一幅瓦片图的大小恒定在256X256像素大小的尺寸上,文件命名按照如下规则,示意图见附图1 ;a)全球地图延展开,第一层划分为4个瓦片图,每放大一层,将对应前一层的瓦片图再划分为四个瓦片图,以此类推,根据不同的放缩将全球比例划分为2nX2n(N为全球绝对层级)的图片;
b)瓦片图文件名称的命名方式为一系列0、1、2、3之中数字组合而成,瓦片编码按照左上瓦片-0右上瓦片-1左下瓦片-2右下瓦片-3规则,设当前瓦片的前一级瓦片的编码为XXX,那么根据该瓦片所属瓦片位置确定该瓦片编码(左上为ΧΧΧ0、右上为XXXI、左下为XXX2、右下为XXX3);c)根据这种编码,则可以根据文件名编码的长度就可以获知瓦片对在全球位置的全部信息;前述的地理瓦片图拼接方法,其特征在于在所述步骤1)中,所述算法接口出入参数规范的范围为EMS系统中当前地理环境下所需要看到的最大范围,即EMS系统中地理背景图形范围,以四个瓦片号和一个矩形范围来约束,四个瓦片号代表最上层可以包含所需最大地理范围下的四个瓦片图;一个矩形范围来描述在这四个瓦片图下的初始范围,以左上点坐标、右下点坐标来决定,左上点坐标和右下点坐标两点坐标范围归一化在(0-1) 之间。以此为初始环境,为算法接口作出如下规范,输入为1、N当前层级;2,0UT_SIZE(widthXheight)输出图片尺寸;3、(REQUEST_X, REQUEST_Y)输出图片中心点;建立一个以初始范围左上点为原点下的笛卡尔坐标系,那么该输出图片中心点为在该坐标系下的坐标(坐标归一化在0-1范围内),例如坐标(0. 5,0. 5)为在初始矩形范围内正中心点的坐标;该输入参数的设定充分考虑了 EMS系统应用架构的特殊性,以归一化的范围坐标作为输入参数极大的方便了 EMS系统中其他应用对于该接口的调用;输出为满足输出图片尺寸的当前层级下的完整图片。前述的地理瓦片图拼接方法,其特征在于在所述步骤2)中,通过所需图片范围和层级直接确定对应层级下瓦片行号列号范围,如附图3所示,通过步骤1)中输入3和输入2以及初始矩形范围,可以计算出所需图片范围矩形,再根据步骤1)中输入1和所需图片范围矩形,可以将4个初始环境矩形分别与所需图片范围矩形相交操作可以快速得到对应需求层级下的瓦片行列数范围,行列数计算公式如下初始行号Rowl = f (X1Mm),其中&为所需图片范围归一化矩形左上角X轴坐标, N为当前层级,f()函数为取整操作;初始列号Coll = f (Y1Mm),其中Y1为所需图片范围归一化矩形左上角Y轴坐标, N为当前层级,f()函数为取整操作;结束行号Row2 = f OC2Mm),其中为所需图片范围归一化矩形右下角X轴坐标, N为当前层级,f()函数为取整操作,另若)(2 = 1,f()函数为取整操作再减1 ;结束列号Col2 = f ( ^),其中\为所需图片范围归一化矩形右下角Y轴坐标, N为当前层级,f()函数为取整操作,另若1 = l,f()函数为取整操作再减1。前述的地理瓦片图拼接方法,其特征在于步骤3)和4)中将得到的各个地图瓦片文件名称并将文件内容IO到内存空间后,将前一次的所有地图瓦片内容缓存下来,提供给下一次请求使用,在下一次接口请求来到时,再将前一次缓存中需要的图片取出直接使用, 对于某一瓦片名称,判断它在前一次瓦片内存缓存中是否已经存在,若已经存在,则直接从前次瓦片内存中获取数据,若尚不存在,再从磁盘IO图片内容;然后删除掉缓存中该次请求没有需要的瓦片,同时加入新的瓦片到缓存,保持前次瓦片缓存内容是最新的。一般来说特别是在地图平移的操作中,相对于前一次请求来说将有大量的相同瓦片图被搜索出来待拼接,那么这样将极大减少了磁盘10、内存创建删除工作,极大的提高了性能;本发明的有益效果本发明的方法效果稳定有效,在算法时间复杂度上和空间复杂度基本上呈现0(1)的复杂度,基本不与缩放层级N成正比例关系,达到该点的原因是步骤(2)中无论层级LEVEL是多少,可以直接获取对应层级下瓦片行号列号范围,并且该范围内瓦片数目基本上与层级无关,只与输入参数所需图片范围有关;瓦片缓存机制也极大的减少了重复10,提高了性能;算法接口参数的设定使用归一化参数,避免了繁杂的地理坐标和延展视图坐标之间的相互转换。


图1瓦片图文件名称编码示例图;图2算法某次运行根据请求输出地图环境示意图;图3通过所需图片范围矩形直接获取对应层级下瓦片行号列号范围示意图;图4求解直接获取对应层级下瓦片行号列号范围的算法流程图;图5算法在微机上计算机程序的完整流程图;图中1-初始4个瓦片号;2-得到相交瓦片行列;3-初始范围;4-接口请求尺寸; 5-接口请求中心点。
具体实施例方式以下结合附图对本发明作进一步详细的介绍。本发明涉及的在电力调度系统中一种地理图的瓦片拼接算法是自主开发软件实现,使用C++编程语言,并在现有的EMS系统图形架构中嵌入;下面通过一个具体应用请求来详述整个算法工作流程;从附图2中可以看到,我们设定当前算法的初始环境如下,1、初始范围瓦片号为 13020、13021、13022、13023 ;2、初始矩形范围为(0. 2,0. 24), (0.9,0.8);假设当前有如下算法请求,输入参数为1、中心点座标(0. 55,0. 5) ;2、需求层级为 4 ;3、需求输出图片尺寸(1800X1300);本发明的方法流程图如附图5所示,按以下步骤运行1)首先将参数与前一次输入参数比对,如果参数完全一致,则直接取前一次输出图片缓存中取出结果;该例中,我们假定参数不一致,则需要重新计算;2)如附图3,通过所需图片范围和需求层级直接确定对应层级下瓦片行号列号范围;首先,计算出归一化的所需图片范围矩形,然后依次把四个初始范围矩形和所需图片范围矩形相交计算,计算出两个矩形的相交矩形,通过这个相交矩形范围在当前层级下所包含的瓦片图行列号;在该例中,可以得到对应4个初始范围瓦片下的瓦片行列号范围 (13020对应(行号从5-7、列号从5-7)、13021对应(行号从5_7、列号从0-4)、13022对应 (行号从0-2、列号从5-7)、13023对应(行号从0_2、列号从0_4));程序流程如附图4所示;
3)通过得到的行列号可以直接获得该瓦片图所对应的编码,例如13020下第四层行5,列5的瓦片所对应的编码为13020303 ;4)通过对应行列号获取对应瓦片图文件名称并将其保存在队列中;5)开始遍历整个名称队列,对于某一瓦片名称,判断它在前一次瓦片内存缓存中是否已经存在,若已经存在,则直接从前次瓦片内存中获取数据即可,若尚不存在,那么通过瓦片图文件名称加载该图片内容到内存中;6)遍历完成,此时将在前次瓦片缓存中这次没有用到的瓦片内存清除,始终保持前次瓦片缓存内容是最新的;7)此时所需图片范围内的所有瓦片图内容均已经加载入内存,可以拼接出一张所需瓦片图范围下的整图(一般略大于最终输出图片),然后将此图与所需图片范围矩形相交操作,可以得到交集图形即最终所需图形内容,8)缓存该图形,以便下次输入如果输入参数完全一致则直接使用该图形;最后输出该图形结果;上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
权利要求
1.一种地理瓦片图拼接方法,其特征在于,包括以下步骤1)设定初始环境,包括适用于EMS系统的算法接口出入参数规范、瓦片图资源文件名称的编码方式、初始参数;2)通过所需图片范围和层级直接确定对应层级下瓦片行号列号范围;3)找到对应层级下瓦片行列号和瓦片文件名称之间的关系,即通过瓦片行列号和层级返回对应瓦片文件的名称,通过与前次搜索瓦片缓存比对,缓存中没有该图的再从磁盘获取图片内容到内存;4)通过步骤3)中获取的瓦片文件内容拼接成整幅图片并与步骤2)中所需图片范围相交并获取最终输出图片。
2.根据权利要求1所述的地理瓦片图拼接方法,其特征在于在所述步骤1)中,所述算法接口出入参数规范的范围为EMS系统中当前地理环境下所需要看到的最大范围,即 EMS系统中地理背景图形范围,以四个瓦片号和一个矩形范围来约束,四个瓦片号代表最上层包含所需最大地理范围下的四个瓦片图;一个矩形范围来描述在四个瓦片图下的初始范围,以左上点坐标、右下点坐标来决定,左上点坐标和右下点坐标两点坐标范围归一化在 (0-1)之间,输入包括a、N当前层级;b、0UT_SUE输出图片尺寸;c、(REQUEST_X,REQUEST_Y)输出图片中心点;建立一个以初始范围左上点为原点下的归一化笛卡尔坐标系,输出图片中心点为在该坐标系下的归一化坐标。
3.根据权利要求2所述的地理瓦片图拼接方法,其特征在于在所述步骤2)中,通过所需图片范围和层级直接确定对应层级下瓦片行号列号范围,通过步骤1)中输入c和输入 b以及初始矩形范围,计算出所需图片范围矩形,再根据步骤1)中输入a和所需图片范围矩形,将4个初始环境矩形分别与所需图片范围矩形相交操作快速得到对应需求层级下的瓦片行列数范围。
4.根据权利要求3所述的地理瓦片图拼接方法,其特征在于瓦片行列数计算公式如下初始行号Rowl = f(X产2N_0,其中&为所需图片范围归一化矩形左上角X轴坐标,N为当前层级,f()函数为取整操作;初始列号Coll = f(Y产2H),其中Y1为所需图片范围归一化矩形左上角Y轴坐标,N为当前层级,f()函数为取整操作;结束行号Row2 = f (X2Mm),其中为所需图片范围归一化矩形右下角X轴坐标,N为当前层级,f()函数为取整操作,另若)(2= l,f()函数为取整操作再减1;结束列号Col2 = f (Y一2N_0,其中\为所需图片范围归一化矩形右下角Y轴坐标,N为当前层级,f()函数为取整操作,另若1= l,f()函数为取整操作再减1。
5.根据权利要求1-4中任一项所述的地理瓦片图拼接方法,其特征在于步骤3)和4) 中将得到的各个地图瓦片文件名称并将文件内容从磁盘文件读取到内存空间后,将前一次的所有地图瓦片内容缓存下来,提供给下一次请求使用,在下一次接口请求来到时,再将前一次缓存中需要的图片取出直接使用,对于某一瓦片名称,判断它在前一次瓦片内存缓存中是否已经存在,若已经存在,则直接从前次瓦片内存中获取数据,若尚不存在,再从磁盘IO图片内容;然后删除掉缓存中该次请求没有需要的瓦片,同时加入新的瓦片到缓存,保持前次瓦片缓存内容是最新的。
全文摘要
本发明公开了一种地理瓦片图拼接方法,其特征在于,包括以下步骤1)设定初始环境,包括适用于EMS系统的算法接口出入参数规范、瓦片图资源文件名称的编码方式、初始参数;2)通过所需图片范围和层级直接确定对应层级下瓦片行号列号范围;3)找到对应层级下瓦片行列号和瓦片文件名称之间的关系;4)通过步骤3)中获取的瓦片文件内容拼接成整幅图片并与步骤2)中所需图片范围相交并获取最终输出图片。本发明的方法能够使得算法的时间复杂度和空间复杂度都能够保持在O(1)的复杂度,并以良好的接口方式服务于电力能量管理系统(EMS)中,可以直接提供通用接口给系统下各应用调用。
文档编号G06T5/50GK102254312SQ201110190070
公开日2011年11月23日 申请日期2011年7月8日 优先权日2011年7月8日
发明者刘晓梅, 唐涛南, 孙鹏, 董宁, 颜自坚 申请人:北京市电力公司, 国电南瑞科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1