一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法
【专利摘要】本发明公开了一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法,首先确定下载瓦片地图的缩放级别,并在客户端与服务器端地图选取多组相对应的特征点建立地图配准坐标对;其次,对客户端所有特征点按照逐点插入法建立Delaunay三角网;接着对Delaunay三角网的所有三角形进行仿射变换的参数计算;最后,进行瓦片地图下载、拼接及重采样计算。本发明利用地图特征点进行Delaunay三角网的构建,并对Delaunay三角网中每个三角形的最小外包矩形是否适合基于.NET库进行图片拼接和Delaunay三角网中相邻三角形公共边是否有偏移的两个判断,提高了瓦片地图下载与拼接的自动化程度,降低了系统性误差,提高了工作效率。
【专利说明】—种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法
【技术领域】
[0001]本发明涉及地图影像信息的叠加访问领域,尤其涉及一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法。
【背景技术】
[0002]自从Google地图走进大众的视野之后,各种瓦片组织形式的大范围区域的瓦片地图便陆续推出,如我国的百度地图、天地图、腾讯地图等。同时,在数据庞大的情况下,一些专项的信息内容也选择以瓦片形式进行网络发布,如城市规划信息。为什么瓦片组织形式的web地图如此深受欢迎?主要原因为它是根据用户浏览需求(如位置范围等)进行数据下载,这样保证了只需要少量的数据便可以满足用户实际需要。同时,采用分等级的竖向组织形式(分辨率较低的地图瓦片图片对应的等级较低,分辨率较高的地图瓦片图片对应的等级较高),如果用户观察的要求不是很仔细,那么只需要下载少量的分辨率较低的地图瓦片。另外,随着手机瓦片地图的广泛使用,离线瓦片地图使用的频率越来越高。为减少网络流量,人们更加喜欢使用离线的瓦片数据,同时所得到的处理速度也更快。
[0003]与此同时,随着瓦片地图的大规模使用,人们发现由于行业保护、地图投影、绘制规范等差异造成了用户自身所拥有的数据与所需要参考的瓦片地图数据在地理位置上出现了严重不一致。对于规划设计等行业来说,更多地时候不仅仅是希望在web页面上浏览地图信息,而是要在c\s客户端去叠加发布的瓦片数据。因此,将瓦片地图数据下载、拼接并配准便成为一项重要的工作。
[0004]然而,如果需要大范围的处理瓦片地图数据,要将下载到本地的大数据量瓦片进行分块拼接和地图配准,形成多张地图图像,那么分块拼接规则便成为工作效率好坏的关键所在。这是因为:
(I)受到windows操作系统、net图像处理库的限制,拼接单幅图像大小尽管有一定的限制,但是速度较快。如果采用一些专业图像处理库,如开源GDAL类库,尽管所能拼接的图片尺寸较大,但所消耗的时间成倍增加,同时对于内存的要求也会影响系统其他程序的运行。因此,选择net图像处理库进行单幅图像拼接比较适合提高工作效率。但是在现有工作中缺乏拼接单幅图像大小自动判断的提示,往往需要反复进行拼接尝试,增加了无效的拼接过程。
[0005](2)相邻的地图图像应当是匹配的。若是将分块图像都拼接处理完,发现了不匹配的现象,则需要重新处理并观察到分块图像间已经匹配为止。这个过程由于缺乏自动提示是否匹配的问题,往往增加了处理时间,特别是容易增加很多无效的图像拼接过程。
[0006]综上所述,寻找到合适的分块拼接大小与特征点间距设置是解决问题的关键。此夕卜,相邻分块的匹配程度也是需要重点解决的问题。
【发明内容】
[0007]本发明所要解决的技术问题是针对【背景技术】的缺陷,提供一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法,能够有效减小图像拼接时间,并较为快速地保证了分块拼接图像间的匹配度。
[0008]本发明为解决上述技术问题采用以下技术方案:
一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法,包含以下步骤:
步骤1),确定下载瓦片地图的缩放级别,并在客户端与服务器端地图选取至少三组特征点建立地图配准坐标对;
步骤2),对客户端所有特征点按照逐点插入法建立Delaunay三角网;
步骤3),对Delaunay三角网的所有三角形进行仿射变换的参数计算;
步骤4),根据下载瓦片地图的缩放级别以及Delaunay三角网中所有三角形仿射变换的参数进行瓦片地图下载、拼接及重采样计算。
[0009]作为本发明一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法的优化方案,步骤2)中所述对客户端所有特征点按照逐点插入法建立Delaunay三角网的详细步骤如下:
步骤2.1 ),定义包含所有特征点的超三角形,初始三角形集合中只有超三角形;
步骤2.2),插入一个特征点到三角网中,找出该特征点所在的三角形;
步骤2.3),连接该特征点与其所在的三角形的三个顶点,形成三个新的三角形;
步骤2.4),用Lawson LOP算法优化三角网,即插入一个点后,构成的三角网要满足Delaunay三角网的最大-最小角准则,如果三角网不满足最大-最小角准则,须通过交换对角线对Delaunay三角网中的三角形进行修正;
步骤2.5),重复步骤2.2)至步骤2.4),直到所有的特征点插入结束;
步骤2.6),删除包含超三角形顶点的三角形;
步骤2.7),对Delaunay三角网中的所有三角形进行遍历,以三角形的最小外包矩形的任意一条对角线的两个端点坐标和下载瓦片地图的缩放级别为参数,计算三角形的最小外包矩形的长和宽的像素长度,如果长和宽的像素长度大于给定阈值,则调整与此三角形相关的特征点位置,并转至步骤2.1)。
[0010]作为本发明一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法的优化方案,步骤3)中所述包括对Delaunay三角网的所有三角形进行仿射变换的参数计算的详细步骤如下:
步骤3.1),选择Delaunay三角网中的任意一个三角形,根据三角形的三个顶点坐标对和仿射变换公式计算出缩放尺度参数、旋转尺度参数以及平移尺度参数;
步骤3.2),完成第一个三角形的仿射变换参数计算后,寻找与第一个三角形相邻的有公共边的三角形,并采取左侧优先遍历的原则,按照步骤3.1)的方式,计算出左侧三角形相应的仿射变换参数;如果没有与左侧边公共的三角形,则寻找与右侧边公共的三角形,并计算出相应的仿射变换参数;
步骤3.3),对步骤3.1)和步骤3.2)中选择出的两个三角形的公共边的两个顶点A、B,分别按照这两个三角形计算出的仿射变换参数进行仿射变换坐标计算,结果分别记为(Al、BI)和(A2、B2);
步骤3.4),根据八142坐标以及下载瓦片地图的缩放级别,计算Al到A2的空间距离,记为LI,根据B1、B2坐标以及瓦片地图下载级别n,计算BI到B2的空间距离,记为L2 ;如果LI或者L2大于给定阈值y,则认为这两个相邻的三角形结果仿射变换后公共边发生较为严重偏移,局部调整特征点后转到步骤3.2);如果LI和L2都小于或等于给定阈值1,则继续寻找相邻三角形,直到完成所有三角形仿射变换参数计算。
[0011]作为本发明一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法的优化方案,步骤4)中所述进行瓦片地图下载、拼接及重采样计算的详细步骤如下:
步骤4.1),遍历Delaunay三角网中的所有三角形,以每个三角形的最小外包矩形的任意一条对角线的两个端点坐标和下载瓦片地图的缩放级别为参数,计算所需要的瓦片编号,将所有瓦片下载到本地;
步骤4.2),对下载至本地的瓦片进行拼接,并对瓦片地图进行仿射变换配准及重采样成图操作。
[0012]作为本发明一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法的优化方案,步骤4.2)中利用.NET库对下载至本地的瓦片进行拼接。
[0013]本发明采用以上技术方案与现有技术相比,具有以下技术效果:
1)在符合条件的Delaunay三角网建立之后,将自动生成所有的分块图像,自动化程度较高,通过此发明,用户只需要根据提示调整特征点的位置,而不用关心如何分块才能得到最为快速的拼接效果;
2)通过空间特征点建立Delaunay三角网的方式划分平面空间,有利于降低配准误差,同时,通过Delaunay三角网的相邻三角形公共边是否偏移的判断,保证了所有最终拼接图像的整体一致性。
【专利附图】
【附图说明】
[0014]图1是基于Delaunay三角网精度控制的瓦片地图下载与拼接方法流程示意图; 图2是基于Delaunay 二角网精度控制处理方法不意图。
【具体实施方式】
[0015]下面结合附图对本发明的技术方案做进一步的详细说明:
如图1所示,首先确定下载瓦片地图的级别n,并在客户端与服务器端地图选取多组相对应的特征点建立地图配准坐标对。这里的下载级别η主要是用于计算将要下载瓦片地图的像素坐标,即利用地理坐标和瓦片地图级别反算出瓦片地图的相关坐标。一般而言,地图级别越高,相同的地理坐标所计算出来的像素坐标会越大,如采用Google地图的17级,整个苏南地区的卫星影像瓦片数据量是非常庞大的。如果以两个不相同的地理坐标进行像素坐标计算,两者像素坐标相减所得值的绝对值便是图片中的以像素为单位的长度值。
[0016]在客户端与服务器端的特征点选择时,尽量按照仿射变化的基本要求,即特征点要均匀分布在研究区,避免所得配准图像变形过大。
[0017]对客户端所有特征点按照逐点插入法建立Delaunay三角网,具体包括以下7个步骤:
步骤2.1),定义包含所有数据点的超三角形,初始三角形集合中只有超三角形。
[0018]步骤2.2),插入一点P到三角网中,找出P所在的三角形t。[0019]步骤2.3),连接P与t的三个顶点,形成三个三角形。
[0020]步骤2.4),用局部优化算法优化三角网。
[0021]这里的局部优化算法是指Lawson LOP法则,即是指插入一个点后,构成的三角网要满足Delaunay三角网的最大-最小角准则,如果三角网不满足最大-最小角准则,须通过交换对角线对Delaunay三角网中的三角形进行修正。
[0022]步骤2.5),重复步骤2.2)至步骤2.4),直到所有的特征点插入结束。
[0023]步骤2.6),删除包含超三角形顶点的三角形。
[0024]步骤2.7),对Delaunay三角网中的所有三角形进行遍历操作。
[0025]首先,对遍历中所获得的三角形计算出最小外包矩形,并根据这个三角形的三个顶点坐标对和仿射变换公式计算出缩放尺度参数、旋转尺度参数以及平移尺度参数,如图2所示。
[0026]其次,利用最小外包矩形的任意一条对角线的两个端点(记为g和h)坐标为仿射变换输入值和上述已经求解出公式未知参数的仿射变换公式求出相应的两个点(记为gl和hi)的坐标。
[0027]接着,利用下载瓦片地图级别n、gl和hi的坐标值计算出相对应的两个点(记为g2和h2)的像素坐标。
[0028]最后,分别求出g2和h2的横坐标相减值的绝对值(记为kl)以及g2和h2的纵坐标相减值的绝对值(记为k2),如果gl和h2的值大于给定阈值10000,则调整与此三角形相关的特征点位置,并转至步骤2.1 ),否则,继续遍历下一个三角形,直到遍历完Delaunay三角网中的所有三角形。
[0029]对Delaunay三角网的所有三角形进行仿射变换的参数计算,具体包括以下4个步骤:
步骤3.1),选择Delaunay三角网中的任意一个三角形,根据三角形的三个顶点坐标对和仿射变换公式计算出缩放尺度参数、旋转尺度参数以及平移尺度参数。
[0030]步骤3.2),完成第一个三角形的仿射变换参数计算后,寻找与第一个三角形相邻的有公共边的三角形,并采取左侧优先遍历的原则,按照步骤I方式,计算出左侧三角形相应的仿射变换参数。如果没有与左侧边公共的三角形,则寻找与右侧边公共的三角形。
[0031]步骤3.3),对步骤3.1)和步骤3.2)中选择出的两个三角形的公共边的两个顶点(记为A,B,如图2所示),分别按照这两个三角形计算出的仿射变换参数进行仿射变换坐标计算,结果分别记为(Al、BI)和(A2、B2)。
[0032]步骤3.4),根据Al、A2坐标以及瓦片地图下载级别n,计算Al到A2的空间距离,记为LI。根据B1、B2坐标以及瓦片地图下载级别n,计算BI到B2的空间距离,记为L2 ;如果LI或者L2大于给定阈值500,则认为这两个相邻的三角形经过仿射变换后公共边发生较为严重偏移,需要局部调整特征点,并转到步骤3.2);如果LI和L2都小于或等于给定阈值500,则继续寻找相邻三角形,直到完成所有三角形仿射变换参数计算。
[0033]这里需要指出的是:线段AlBl与A2B2在理想的情况下,是完全重合在一起的,但是由于数据源、地图投影等误差的存在,线段AlBl与A2B2不可能处于完全重合的状态,实际工作中只要二者不是偏移很大距离便认为是可以接受的。
[0034]如图2所示,本发明简化为对Al到A2的空间距离和BI到B2的空间距离限制的计算。
[0035]瓦片地图下载、拼接及重采样计算,其预订的开发环境为Visual Studi0.NET开发环境,具体包括以下2个步骤:
步骤4.1),遍历Delaunay三角网中的所有三角形,以每个三角形的最小外包矩形的任意一条对角线的两个端点坐标和下载瓦片地图级别η为参数,计算所需要的瓦片编号,并以多线程形式将瓦片下载到本地;
步骤4.2),利用.NET库对下载至本地的瓦片进行拼接,并对瓦片地图进行仿射变换配准及重采样成图操作。如利用.NET库的中System.Drawing.Graphics类的DrawImage方法可以快速的将瓦片拼接成一张整图。
【权利要求】
1.一种基于Delaunay三角网精度控制的瓦片地图下载与拼接方法,其特征在于,包含以下步骤: 步骤1),确定下载瓦片地图的缩放级别,并在客户端与服务器端地图选取至少三组特征点建立地图配准坐标对; 步骤2),对客户端所有特征点按照逐点插入法建立Delaunay三角网; 步骤3),对Delaunay三角网的所有三角形进行仿射变换的参数计算; 步骤4),根据下载瓦片地图的缩放级别以及Delaunay三角网中所有三角形仿射变换的参数进行瓦片地图下载、拼接及重采样计算。
2.按权利要求1所述的基于Delaunay三角网精度控制的瓦片地图下载与拼接方法,其特征在于,步骤2)中所述对客户端所有特征点按照逐点插入法建立Delaunay三角网的详细步骤如下: 步骤2.1),定义包含所有特征点的超三角形,初始三角形集合中只有超三角形; 步骤2.2),插入一个特征点到三角网中,找出该特征点所在的三角形; 步骤2.3),连接该特征点与其所在的三角形的三个顶点,形成三个新的三角形; 步骤2.4),用Lawson LOP算法优化三角网,即插入一个点后,构成的三角网要满足Delaunay三角网的最大-最小角准则,如果三角网不满足最大_最小角准则,须通过交换对角线对Delaunay三角网中的三角形进行修正; 步骤2.5),重复步骤2.2)至步骤2.4),直到所有的特征点插入结束; 步骤2.6),删除包含超三角形顶点的三角形; 步骤2.7),对Delaunay三角网中的所有三角形进行遍历,以三角形的最小外包矩形的任意一条对角线的两个端点坐标和下载瓦片地图的缩放级别为参数,计算三角形的最小外包矩形的长和宽的像素长度,如果长和宽的像素长度大于给定阈值,则调整与此三角形相关的特征点位置,并转至步骤2.1)。
3.按权利要求1所述的基于Delaunay三角网精度控制的瓦片地图下载与拼接方法,其特征在于,步骤3)中所述包括对Delaunay三角网的所有三角形进行仿射变换的参数计算的详细步骤如下: 步骤3.1),选择Delaunay三角网中的任意一个三角形,根据三角形的三个顶点坐标对和仿射变换公式计算出缩放尺度参数、旋转尺度参数以及平移尺度参数; 步骤3.2),完成第一个三角形的仿射变换参数计算后,寻找与第一个三角形相邻的有公共边的三角形,并采取左侧优先遍历的原则,按照步骤3.1)的方式,计算出左侧三角形相应的仿射变换参数;如果没有与左侧边公共的三角形,则寻找与右侧边公共的三角形,并计算出相应的仿射变换参数; 步骤3.3),对步骤3.1)和步骤3.2)中选择出的两个三角形的公共边的两个顶点A、B,分别按照这两个三角形计算出的仿射变换参数进行仿射变换坐标计算,结果分别记为(Al、BI)和(A2、B2); 步骤3.4),根据八142坐标以及下载瓦片地图的缩放级别,计算Al到A2的空间距离,记为L1,根据B1、B2坐标以及瓦片地图下载级别n,计算BI到B2的空间距离,记为L2 ;如果L1或者L2大于给定阈值 y,则认为这两个相邻的三角形结果仿射变换后公共边发生较为严重偏移,局部调整特征点后转到步骤3.2);如果LI和L2都小于或等于给定阈值y,则继续寻找相邻三角形,直到完成所有三角形仿射变换参数计算。
4.按权利要求1所述的基于Delaunay三角网精度控制的瓦片地图下载与拼接方法,其特征在于步骤4)中所述进行瓦片地图下载、拼接及重采样计算的详细步骤如下: 步骤4.1),遍历Delaunay三角网中的所有三角形,以每个三角形的最小外包矩形的任意一条对角线的两个端点坐标和下载瓦片地图的缩放级别为参数,计算所需要的瓦片编号,将所有瓦片下载到本地; 步骤4.2),对下载至本地的瓦片进行拼接,并对瓦片地图进行仿射变换配准及重采样成图操作。
5.按权利要求4所述的基于Delaunay三角网精度控制的瓦片地图下载与拼接方法,其特征在于步骤4.2)中利用.NET库对下载至本地的瓦片进行拼接。
【文档编号】G06F17/30GK103902343SQ201410162577
【公开日】2014年7月2日 申请日期:2014年4月22日 优先权日:2014年4月22日
【发明者】韦胜, 袁锦富, 周生元 申请人:江苏省城市规划设计研究院