一种动态地图投影下的网络地图配准及绘制方法

文档序号:7869394阅读:206来源:国知局
专利名称:一种动态地图投影下的网络地图配准及绘制方法
技术领域
本发明涉及大众地图网络发布、城市规划公众参与、不同地理信息整合领域,具体涉及一种动态地图投影下瓦片地图配准、加密绘制及更新方法。
背景技术
随着网络地图在日常生活中的广泛应用,人们对于网络地图的速度、美观性及时效性提出了更高的要求,对此,瓦片地图是一种很好的解决方案,如Google在线WEB地图、中国的天地图WEB版。瓦片地图采用了一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。瓦片地图的制作方法以ESRI公司的ArcGIS软件为例做介绍首先用ArcGIS软件对地图数据进行处理,配成需要的图层方案,并保存方案。再用软件自带功能进行切片,切片过程中选择切片方案,根据所选方案不同,例如金字塔级别不同,地图切片范围不同等,都会影响到切片的速度。切片之后的数据称为瓦片。每个瓦片可以按照行列号进行唯一的编号,并具有一个唯一的地图等级属性,即所在的多分辨率层次模型中某一层数。切割规则一般是将一定区域的地图按层次切割成大小相同的图片,这个图片一般是正方形,如像素为256X256的png格式图像,这样每个瓦片都会对应一个固定的地理范围值,如果给定一个地理范围值和所在的层次数,便可以求出所需要的所有瓦片,并按照所在的行列号进行统计出来。由于不同的地图服务供应商和政府机构所提供的地图服务的地理参考系不同,地图之间也存在几何误差。如果用户希望能够快速和高质量地叠加各种不同地图服务,需要解决地理参考系动态转换及几何误差的问题。当前,主要是对瓦片地图的发布、更新及缓存处理等方面的研究较多,而对瓦片地图的几何误差及对每一个瓦片加密的研究工作较少,其中瓦片的加密问题在社会应用中关注极少,不利于我国在线网络地图的广泛应用。另外实际应用中,客户端往往希望能够在C/S环境下去访问网络瓦片地图,因为在C/S环境下,用户能够将自身数据和网络瓦片数据很好地结合,分析的功能也更强大,在处理的速度上也会有大幅度的提升。客户端在需要将现有的瓦片进行更新时,应当能够提供对所需瓦片的加密更新,且这种加密机制应当尽可能的涉及到每一个瓦片。

发明内容
本发明所要解决的技术问题是是克服现有技术的不足,提出一种动态地图投影下瓦片地图配准及绘制方法,以解决网络瓦片地图的几何误差和瓦片地理信息加密和客户端更新数据的问题,这种方法不仅适用于B/S架构的地图服务,也非常适合于C/S架构的客户端对网络地图的访问。本发明为解决上述技术问题采用以下技术方案一种动态地图投影下的网络地图配准及绘制方法,包含以下步骤
步骤I)在客户端,获取并记录当前用户所浏览地图的地理范围值和所采用的地图投影类型;判断用户所采用地图投影与服务器端地图投影的类型是否一致若一致,直接进入步骤2);若不一致,则进行投影转换计算,将用户所请求的地理范围值转换为在服务器端地图投影下的地理范围值;步骤2)根据处理后用户所请求的瓦片地图的地理范围,反算出需要在客户端加载的所有瓦片行号、列号以及相应地图级别;新建一个三维数组,依次将所需瓦片的行号、列号以及相应地图级别存储起来;步骤3)在客户端和服务器端的地图上,分别利用η个特征点取误差平均值确定当前瓦片地图的待校准值,即求取偏移量(Λχ,Ay),其中η为自然数;步骤4)依次遍历步骤2)中的三维数组,以多线程方式下载每个地图瓦片;在每个地图瓦片下载完成时,为其计算相应的地理范围值,并利用步骤3)中所确定的待校准值(Δχ, Δγ)对这个地理范围值进行校准处理,再利用DES加密算法对每个瓦片的地图级别、行号、列号、校准后的地理范围值以及下载完成时间值进行加密,最终将加密处理后地图级另O、行号、列号、校准后的地理范围值以及下载完成时间值保存到一个与相应地图瓦片同名的ini格式文件中;步骤5)下载完所需全部瓦片后,通过解密每个相应ini格式的加密文件,读取到每个待绘制瓦片的地图级别、行号、列号以及校准后的地理范围值,根据这四个值将地图瓦片绘制到正确地理位置上。作为本发明的一种动态地图投影下瓦片地图配准及加密绘制方法的进一步优化方案,还包括步骤6):当需要更新一定区域和地图级别下的客户端瓦片地图时,对于本地客户端没有存储的瓦片,需要按步骤I)至4)进行下载;对于本地客户端已有的瓦片,需要将服务器端相关瓦片最新发布时间与通过步骤5)解密ini文件读取的相关瓦片下载到客户端时间值比较,如果下载到 客户端时间值小于服务器最新发布时间值时,则需要重新下载,反之则不需要重新下载。作为本发明的一种动态地图投影下瓦片地图配准及加密绘制方法的进一步优化方案,步骤3)所述的偏移量(ΛΧ,Ay)的求取步骤包括(I)分别获取客户端和服务器端地图的η对特征点,即在客户端选择η个特征点,再在服务器端地图上寻找到与这η个特征点具有相同位置的点,然后分别计算它们的横坐标与纵坐标的差值,将所述差值分别表示为(ΛΧι,Ax2,..., Axi,... Δχη),
(ΔΥι, Ay2,…,Ayi, , Ayn);(2)比较每对特征点值,若出现时,则丢弃该特征点,重新选取另一个特征点,直至满足+Ay,2 <5,其中,i e η,δ为用户给定的阈值;
ηη(3)确定待校准值(Λ X,Λ y),即Δτ = (J^Axj)Zn , Ay =η。
=\ =Ι本发明采用以上技术方案与现有技术相比,具有以下技术效果I)传统网络瓦片缺乏对几何误差的考虑,致使在数据叠加使用时出现很多错误,分析结果也产生很大的误差,特别是一些社会经济设计图与实际地图误差较大,给规划设计和政府决策带来了很大的困难,本发明实现了对网络瓦片地图的误差校准后再绘制,大大提高了数据的准确性,增强了数据的可分析性。
2)利用ini文件存储地图级别、行列号、已校准后的地理范围以及瓦片下载到客户端的时间值,并对存储的内容做了加密处理,这样即使离线的瓦片数据包在被窃取后,也很难投入使用,大大提高了客户端使用瓦片地图的安全性。这种加密处理方式涉及到了每个具体的瓦片,当在国家层面的使用时,可以推广到按省、市、县设置不同的加密方式,这样对瓦片地图的加密使用大大提高了安全性。


图1是本发明的实施流程示意图;图2是三维数组瓦存储地图片信息示意图;图3是多个控制点校准地图示意图;图4是瓦片信息加密存储示意图。
具体实施例方式下面结合附图对本发明的技术方案做进一步的详细说明I)参见附图1,当客户的C/S端请求瓦片地图浏览和下载时,获取并记录当前用户所浏览地图的地理范围值和所采用的地图投影类型;判断用户所采用地图投影与服务器端地图投影的类型是否一致,若不一致,则进行投影转换计算,将用户所请求的地理范围值转换为在服务器端地图投影下的地理范围值;若一致,则不对用户所请求的地理范围进行投影转换计算;例如用户所采用的地图投影为高斯一克吕克投影,而服务器端所采用的地图投影类型为WEB墨卡托投影,则需要通过投影转换计算,将用户所请求显示的地理范围值转换为WEB在墨卡托投影下的地理范围值。2)根据处理 后用户所请求的地理范围,反算出需要在客户端加载的所有瓦片行号、列号以及相应地图级别。不同的瓦片地图系统可能具有不同的瓦片切割规则,但只需要根据瓦片的切割规则(如每个瓦片的大小为256X256像素、每个瓦片地图的级别所对应的地图比例尺范围等),便可以将指定地图级别和地理范围内所需瓦片反算出来。参见附图2,新建一个三维数组,依次将所需瓦片的行号、列号以及相应地图级别存储起来。3)参见附图3,本实施例中η个控制点(特征点)取4个,具体步骤包括①在客户端选择4个易于分辨的控制点,再在服务器端地图上寻找到与这4个控制点具有相同位置的点,分别计算这4对控制点的横坐标与纵坐标的差值,这些差值可表示为(Ax1, Δχ2, Δχ3, Δχ4) , (Ay1, Ay2, Ay3, Ay4);其中,服务器端地图的控制点可以通过服务器端地图的WEB在线版或者人工请求询问的方式获得。②比较每对控制点距离值,若出现^/Δτ;2 +Δν; > 5时,则重新选取此控制点,直至满足掏+ Ajf <厶,其中,i = 1,2,3,4,δ为用户给定的阈值。③确定待校准值(Δχ,Ay),ΒΡΔτ = (2^Δτ,.)/4 Ay = (IAyi)M;
;=1 =14)依次遍历步骤2中的三维数组,以多线程方式下载每个地图瓦片;在每个地图瓦片下载完成时,为其计算相应的地理范围值,并利用步骤3)中所确定的待校准值(Δχ, Δγ)对这个地理范围值进行校准处理,再利用DES加密算法对每个瓦片的地图级别、行号、列号、校准后的地理范围值以及下载完成时间值进行加密,最终将加密处理后地图级另|J、行号、列号、校准后的地理范围值以及下载完成时间值依次保存到一个与地图瓦片同名的ini格式文件中,参见附图3。5)下载完所需全部瓦片后,通过解密每个相应ini格式的加密文件,读取到每个待绘制瓦片的地图级别、行号、列号以及校准后的地理范围值,根据这四个值可以将地图瓦片绘制到正确地理位置上;例如,基于ESRI公司的ArcEngine组件的C/S客户端软件,只需要知道每个瓦片的地理范围,便可以很容易将其正确的绘制在图形界面上。6)当需要更新一定区域和地图级别下的客户端瓦片地图时,本地客户端没有存储的瓦片需要按步骤I)至4)进行下载,本地已有的瓦片需要将服务器端相关瓦片最新发布时间与通过解密ini文件读取的相关瓦片下载到客户端时间值比较,如果下载到客户端时间值小于服务器最新发布时间值时,则需要重新下载,反之则不需要重新下载。具体在实施更新时,客户端首先确定一个地图级别数和一个地理范围值,根据这两个参数反计算得到所有的瓦片行列号并以.NET中集合的形式存储起来,遍历集合中的所有瓦片如果遍历中某个瓦片在本地没有存储,则按步骤I)至4)下载到本地;如果本地已经拥有这个瓦片,则通过解密与此瓦片相关ini文件读取到其下载至客户端时间值并与服务器最新发布此瓦片的时间值比较,若下载到客户端时间值小于服务器最新发布时间值时,则需要重新下载,反之则不需要重新下载。以上只是对于本发明技术方案的一个简单示例,本领域技术人员在本发明实施例的基础上对本发明的方案所进行的任何等效替换和变形,都应属于本发明公开的范围之内。
权利要求
1.一种动态地图投影下的网络地图配准及绘制方法,其特征在于,包含以下步骤 步骤I)在客户端,获取并记录当前用户所浏览地图的地理范围值和所采用的地图投影类型;判断用户所采用地图投影与服务器端地图投影的类型是否一致 若一致,直接进入步骤2);若不一致,则进行投影转换计算,将用户所请求的地理范围值转换为在服务器端地图投影下的地理范围值; 步骤2)根据处理后用户所请求的瓦片地图的地理范围,反算出需要在客户端加载的所有瓦片行号、列号以及相应地图级别;新建一个三维数组,依次将所需瓦片的行号、列号以及相应地图级别存储起来; 步骤3)在客户端和服务器端的地图上,分别利用η个特征点取误差平均值确定当前瓦片地图的待校准值,即求取偏移量(Λχ,Ay),其中η为自然数; 步骤4)依次遍历步骤2)中的三维数组,以多线程方式下载每个地图瓦片;在每个地图瓦片下载完成时,为其计算相应的地理范围值,并利用步骤3)中所确定的待校准值(Δχ, Δγ)对这个地理范围值进行校准处理,再利用DES加密算法对每个瓦片的地图级别、行号、列号、校准后的地理范围值以及下载完成时间值进行加密,最终将加密处理后地图级另O、行号、列号、校准后的地理范围值以及下载完成时间值保存到一个与相应地图瓦片同名的ini格式文件中; 步骤5)下载完所需全部瓦片后,通过解密每个相应ini格式的加密文件,读取到每个待绘制瓦片的地图级别、行号、列号以及校准后的地理范围值,根据这四个值将地图瓦片绘制到正确地理位置上。
2.根据权利要求1所述的一种动态地图投影下的网络地图配准及绘制方法,其特征在于,还包括步骤6):当需要更新一定区域和地图级别下的客户端瓦片地图时,对于本地客户端没有存储的瓦片,需要按步骤I)至4)进行下载;对于本地客户端已有的瓦片,需要将服务器端相关瓦片最新发布时间与通过步骤5)解密ini文件读取的相关瓦片下载到客户端时间值比较,如果下载到客户端时间值小于服务器最新发布时间值时,则需要重新下载,反之则不需要重新下载。
3.根据权利要求1所述的一种动态地图投影下瓦片地图配准及加密绘制方法,其特征在于,步骤3)中所述偏移量(ΛΧ,Ay)的求取步骤包括 (O分别获取客户端和服务器端地图的η对特征点,即在客户端选择η个特征点,再在服务器端地图上寻找到与这η个特征点具有相同位置的点,然后分别计算它们的横坐标与纵坐标的差值,将所述差值分别表示为(ΛΧι,Ax2,..., Axi,... Δχη), (2 )比较每对特征点值,若出Ax;+A)^ > 5时,则丢弃该特征点,重新选取另一个特征点,直至满足^/δ^ + Ay12 <δ,其中,i e η, δ为用户给定的阈值; (3)确定待校准值(Λχ,= —
全文摘要
本发明公开了一种动态地图投影下的网络地图配准及绘制方法,首先根据客户端与服务器端的投影类型比较,进行地理范围值投影转换计算;然后利用瓦片地图切割规则和所请求参数,反计算获得需加载的所有瓦片的行列号和地图级别,并采用多个特征点获取得到的瓦片地图误差偏移值对每个瓦片的地理范围值进行误差校正。在下载完每个瓦片时候,利用DES加密算法进行加密,并按顺序保存到一个与此地图瓦片同名的ini格式文件中。待所有所需地图瓦片下载完成后,再解密ini文件,读取到校正后地理范围值等数值,实现每个地图瓦片的绘制。本发明实现了对网络瓦片地图的误差校准后再绘制,大大提高了数据的准确性,增强了数据的可分析性。
文档编号H04L29/06GK103065544SQ201210555879
公开日2013年4月24日 申请日期2012年12月19日 优先权日2012年12月19日
发明者韦胜 申请人:江苏省城市规划设计研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1