本发明涉及一项测绘与地理信息行业数据存储方式。
背景技术:
目前主要使用的gis瓦片存储技术有两种一种是数据库文件存储,另一种是压缩包存储方式;数据库存储文件方式存在存储数据的冗余,数据格式体积较大的缺点;存储方式,索引文件和数据文件分离,不易读取数据内容、访问时效率不高。
技术实现要素:
针对上述现有技术中存在的不足之处,本发明提供了一种数据索引与数据文件统一,数据易写入、易读取,数据存储减少冗余的gis瓦片地图的存储方式。
为了解决上述技术问题,本发明采用了如下技术方案:
一种gis瓦片地图的存储方式,该存储方式包括两个部分,第一部分是文件头用于控制文件版本、存储加密信息;第二部分是数据组部分,其中数据组部分包括数据块部分和数据索引部分;
所述文件组织具体是,每一个文件只包含一个文件头信息,包含多个数据组部分来存储瓦片地图的每一级数据;数据块部分是将所有的瓦片按照从左往右的,按照最小的行号和列号到最大的行号和列号的数据进行依次写入存储;数据组中的数据索引部分是依次写入数据总量大小、该层总行数、该层总列数、地图开始行号、地图的开始列号、该层的开始行号、该层的开始列号、瓦片切片策略的开始的x坐标、瓦片切片策略的开始y坐标、该层的列号、该层的数据组字节长度。
作为本发明的一种优选方案,地理信息瓦片地图数据存储采用一种多分辨率层次的金字塔模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变;每个格子代表一张256x256像素的图片,从0级开始每一级的图片数量是上一级的4倍,构成整个瓦片金字塔。
相比现有的数据库存储,文件占有体积更小适合在移动端应用场景,相比现有的arcgistpk压缩包数据,结构简单、访问效率高,体积更小,写入读取更方便。
附图说明
图1为一种gis瓦片地图的存储方式中的文件结构图;
图2为地理信息瓦片地图金字塔模型图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细地描述。
一种gis瓦片地图的存储方式,该存储方式包括两个部分,第一部分是文件头用于控制文件版本、存储加密信息;第二部分是数据组部分,其中数据组部分包括数据块部分和数据索引部分。
文件组织具体是,每一个文件只包含一个文件头信息,包含多个数据组部分来存储瓦片地图的每一级数据;数据块部分是将所有的瓦片按照从左往右的,按照最小的行号和列号到最大的行号和列号的数据进行依次写入存储;数据组中的数据索引部分是依次写入数据总量大小(即最后一层的c*n)、该层总行数、该层总列数、地图开始行号、地图的开始列号、该层的开始行号、该层的开始列号、瓦片切片策略的开始的x坐标、瓦片切片策略的开始y坐标、该层的列号、该层的数据组字节长度,组织结构可以表达为图1所示。
地理信息瓦片地图数据存储采用一种多分辨率层次的金字塔模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变;每个格子代表一张256x256像素的图片,从0级开始每一级的图片数量是上一级的4倍,构成整个瓦片金字塔,其模型表示如图2所示。
实施例1
以一个五级瓦片数据结构为例,地图切片原点为(x0,y0),瓦片切片开始行列号为(n,m)。0级瓦片数为1,总行数1,总列数为1,开始行列号(n,m);1级瓦片数为4,总行数2,总列数为2,开始行列号(n1,m1);2级瓦片数16,总行数4,总列数为4,开始行列号(n2,m2);3级瓦片数为64,总行数8,总列数为8,开始行列号(n3,m3);4级瓦片数为256,总行数16,总列数为16,开始行列号(n4,m4)。0级瓦片行列号(0,0),1级瓦片行列号为(0,0)(0,1)(1,0)(1,1)按照规律以此类推。
依照上面的要存入的金字塔数据模型,存入本发明数据文件中,首先存入文件的版本号信息和数据的加密算法信息方便读取时解码数据。将第0级,坐标为(0,0)瓦片数据加密结果写入文件,最后写入索引部分,首先写入数据量偏移量和加密数据内容(瓦片加密的瓦片数据字节大小)的大小信息,依次写入行数1,列数1,地图开始行号n,地图开始列m,本级瓦片开始的行号n,本级瓦片开始的列号m,地图切片原点x坐标x0,地图切片原点y坐标y0,写入地图等级号0,写入数据内容的总量。将此后每一级数据按照0级写入的方法写入文件。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。