本发明专利技术适用于地理信息系统技术领域,提供一种高效自适应三维地名瓦片生产方法及装置,所述方法包括:针对每层的三维地名瓦片生产,计算当前层的地名瓦片生产的总瓦片数C;计算当前层的每次查询范围窗口,该窗口为正方形窗口,其边长
Efficient self-adaptive three-dimensional place name tile producing method and device
The invention is applicable to the field of geographic information system technology, provide a method and apparatus for producing an efficient adaptive 3D place tiles, the method includes: for each layer of the three-dimensional tile production place, calculate the total production of the current tile names tile layer number C; calculation of each current layer range of query window, the window is a square window the length.
【技术实现步骤摘要】
一种高效自适应三维地名瓦片生产方法及装置
本专利技术属于地理信息系统GIS
,尤其涉及一种高效自适应三维地名瓦片生产方法及装置。
技术介绍
互联网技术的高速发展催生了GIS行业的瓦片地图技术,它解决了终端用户显示矢量数据的低效率问题,大大的提升了用户体验。瓦片技术非常适合各种互联网应用与GIS行业的大数据做交互,例如桌面端、手机端等终端,目前的瓦片技术不仅仅可以提供底图(栅格图像)给终端用户展示,甚至地名数据也可以使用瓦片技术来给终端用户做展示和查询。吉奥三维地名瓦片服务(WTFS服务),是一种可以将GeoGlobe的三维地名数据集发布为瓦片服务的一种服务。这种服务传输给终端的数据并不是栅格瓦片,而是按照栅格瓦片地理位置组织的地名数据,也就是矢量数据。瓦片技术在各种终端应用上比传统矢量快的数据本质是用更多的空间来换取了查询时间,也就是计算机最常用的空间换时间的方式。一个省的原始矢量或许只有1G,使用瓦片技术瓦片化之后它的存储量可能会成倍的增长,有时候如果需要高精度的数据,那么数据量可能成几何倍增长都可能,所以数据生产的成本是非常高的。传统的三维地名数据集瓦片生产的方式为循环每层级范围,一批一批的瓦片去生产,将地名数据组织为瓦片数据。即按照每张瓦片大小256*256像素的地理矩形范围查询矢量地名数据,然后将查询出的结果(此范围的地名信息)保存为一张瓦片。具体的,如图1所示的一张地名数据分布,如果按照现有瓦片生产方式生产地名数据,即按照每张瓦片大小256*256像素的地理矩形范围查询矢量地名数据,然后将查询出的结果(此范围的地名信息)保存为一张瓦片,最后入库成为瓦片数据,假设图1中某层的数据有n×n张瓦片范围地名数据,查询n×n次后,可以将所有数据三维地名数据瓦片生产成功。这种瓦片生产方式效率极为低下,效率测试,以下表1示出了各种数据库的地名瓦片生产效率:表1Oracle数据库、Mongo数据库和Sqlite数据库是目前市面上典型的数据库。现有技术的瓦片生产方法是对每层瓦片范围做瓦片数次数的数据库查询,这个查询速度对于1-18级别的数据,将是一个非常大的查询次数,对于矢量的地名数据来说这将是一个非常恐怖的耗时,按照全国范围18级别的瓦片数去生产将是亿级别以上的查询,这对于GIS空间数据库来说无疑是耗时巨大。
技术实现思路
鉴于上述问题,本专利技术的目的在于提供一种高效自适应三维地名瓦片生产方法及装置,旨在解决现有三维地名数据集瓦片生产的效率低下的技术问题,通过减少瓦片地名生产的查询耗时来减少瓦片生产总时间,达到提高整体瓦片生产效率,提升瓦片化的更新速度,简化生产流程。一方面,所述高效自适应三维地名瓦片生产方法包括下述步骤:针对每层的三维地名瓦片生产,计算当前层的地名瓦片生产的总瓦片数C;计算当前层的每次查询范围窗口,该窗口为正方形窗口,其边长其中D为矢量地名点数,P为数据库的批量提交量最优数,k为调节系数,|*|表示取整;根据所述查询范围窗口大小,按照一定顺序移动窗口,使得窗口遍历当前层所有的地名瓦片,在遍历过程中,对每次窗口所覆盖瓦片进行生产组织地名数据,然后继续下一层,直至所有层的地名瓦片生产完成。另一方面,所述高效自适应三维地名瓦片生产装置,包括:总瓦片计算单元,用于针对每层的三维地名瓦片生产,计算当前层的地名瓦片生产的总瓦片数C;窗口获取单元,用于计算当前层的每次查询范围窗口,该窗口为正方形窗口,其边长其中D为矢量地名点数,P为数据库的批量提交量最优数,k为调节系数,|*|表示取整;窗口遍历生产单元,用于根据所述查询范围窗口大小,按照一定顺序移动窗口,使得窗口遍历当前层所有的地名瓦片,在遍历过程中,对每次窗口所覆盖瓦片进行生产组织地名数据,然后继续下一层,直至所有层的地名瓦片生产完成。本专利技术的有益效果是:本专利技术方案动态结合数据库提交数据能力和实际地名数据量进行瓦片化生产,通过设计一个合理大小的查询范围窗口,最大限度利用数据库性能的情况下,保证了地名瓦片数据生产的效率,本质上减少了数据查询交互时间,提升地名命中瓦片效率,综合复杂度为N。经实验验证,Oracle数据库约有100倍提升,mongodb和Sqlite数据约有1000倍提升,地名瓦片生产效率大幅提高。附图说明图1是地名瓦片示意图;图2是19×12未分割的地名瓦片示意图;图3是高效自适应三维地名瓦片生产方法的流程;图4是一层地名瓦片的分割示意图;图5是N=14时地名瓦片的分割示意图;图6是高效自适应三维地名瓦片生产装置的结构方框图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。现有技术中,矢量数据查询还是一大难题,查询速度都很慢。数据库是存储数据的载体,目前市面上主流数据库都支持批量提交数据,假如查询的数据是批量查询,提交的数据也是批量提交的,那么就能最大限度的利用数据库性能。假如有如图2所示数据,其中的点为地名点数据,网格为瓦片,一块网格和网格内的所有地名点数据组织为一张地名瓦片,如够按照现有的地名瓦片生产方式,那么图2中共有19x12=228张瓦片,因此需要对数据库做228次查询,然后将地名点和每张瓦片组织为地名瓦片数据,这样首先要做228查询,然后再做228次提交数据库操作。与数据库的交互次数就达到了456次。图2只是一层瓦片的示例图,真实环境下瓦片数据都是千万级别的,这样必然需要做千万级别的数据库操作,那么耗时是相当多的。为了解决这个问题,本专利技术找到一种合适的分割方式将每层地名瓦片进行分割,通过降低查询次数,充分利用现有数据库的查询能力,最好是刚刚使用到查询能力的瓶颈,这样充分利用了数据库能力的情况下,保证的了地名瓦片数据生产的效率。本专利技术的目的就是减少瓦片地名生产的查询耗时来减少瓦片生产总时间,达到提高整体瓦片生产效率。为了说明本专利技术所述的技术方案,下面通过具体实施例来进行说明。实施例一:图3示出了本专利技术实施例提供的高效自适应三维地名瓦片生产方法的流程,为了便于说明仅示出了与本专利技术实施例相关的部分。如图3所示,本实施例方法包括下述步骤:步骤S1、针对每层的三维地名瓦片生产,计算当前层的地名瓦片生产的总瓦片数C。步骤S2、计算当前层的每次查询范围窗口,该窗口为正方形窗口,其边长其中D为矢量地名点数,P为数据库的批量提交量最优数,k为调节系数,|*|表示取整。步骤S3、根据所述查询范围窗口大小,按照一定顺序移动窗口,使得窗口遍历当前层所有的地名瓦片,在遍历过程中,对每次窗口所覆盖瓦片进行生产组织地名数据,然后继续下一层,直至所有层的地名瓦片生产完成。假设所选用的数据库的批量提交量最优数为P,一般这个数是固定的数值,某一层的地名瓦片生产的总瓦片数C,矢量地名点数为D,对于其中某一层的瓦片生产,P、C、D这三个参数均有一个固定的值。对于不同层的瓦片,C、D可能不同,因此在生产每层地名瓦片时,首先要当前层地名瓦片的C和D两个参数的值。考虑到每次查询的生产瓦片数据按照这三个参数的一定比例去提交,例如每次查询N行N列窗口大小的瓦片地名数据,然后按照该窗口大小去生产瓦片,那么对于某一层级的地名瓦片生产,有如本文档来自技高网...
【技术保护点】
一种高效自适应三维地名瓦片生产方法,其特征在于,所述方法包括下述步骤:针对每层的三维地名瓦片生产,计算当前层的地名瓦片生产的总瓦片数C;计算当前层的每次查询范围窗口,该窗口为正方形窗口,其边长
【技术特征摘要】
1.一种高效自适应三维地名瓦片生产方法,其特征在于,所述方法包括下述步骤:针对每层的三维地名瓦片生产,计算当前层的地名瓦片生产的总瓦片数C;计算当前层的每次查询范围窗口,该窗口为正方形窗口,其边长其中D为矢量地名点数,P为数据库的批量提交量最优数,k为调节系数,|*|表示取整;根据所述查询范围窗口大小,按照一定顺序移动窗口,使得窗口遍历当前层所有的地名瓦片,在遍历过程中,对每次窗口所覆盖瓦片进行生产组织地名数据,然后继续下一层,直至所有层的地名瓦片生产完成。2.如权利要求1所述高效自适应三维地名瓦片生产方法,其特征在于,在遍历过程中,正常情况下窗口内覆盖的瓦片为N行N列,若窗口移动到边界位置时,发现窗口内的瓦片行数或者列数小于N,则保持当前窗口覆盖并进行地名瓦片生产,此时窗口内的瓦片总数小于N的平方。3.如权利要求2所述高效自适应三维地名瓦片生产方法,其特征在于,对于某一层的瓦片数据,如果有以下范围的瓦片数据:nMinRow最小行号;nMinCol最小列号;nMaxRow最大行号;nMaxCol最大列号;则当前层的地名瓦片生产的总瓦片数:C=(nMaxCol-nMinCol)×(nMaxRow-nMinRow);查询范围窗口边长:
【专利技术属性】
技术研发人员:池晶,龙燕军,贺楷锴,朱伟奇,刘芬,王建光,
申请(专利权)人:武大吉奥信息技术有限公司,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。