CN105117451B - 一种地图瓦片文件的存储方法 - Google Patents
一种地图瓦片文件的存储方法 Download PDFInfo
- Publication number
- CN105117451B CN105117451B CN201510504116.3A CN201510504116A CN105117451B CN 105117451 B CN105117451 B CN 105117451B CN 201510504116 A CN201510504116 A CN 201510504116A CN 105117451 B CN105117451 B CN 105117451B
- Authority
- CN
- China
- Prior art keywords
- tile
- data
- row
- apmb package
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公布了一种地图瓦片文件的存储方法,步骤如下:(1)针对各层级,将瓦片数据按照固定结构及数量打包形成瓦片包文件,每个瓦片包文件分为固定长度的索引区和可任意扩展的数据区,索引区按瓦片数据的[Row,Column]顺序记录瓦片数据的偏移位置,对应[Row,Column]的瓦片数据存储在索引记录的偏移位置。针对比例尺增大时所产生的瓦片的个数急剧增加、存储空间增加、磁盘频繁的I/O操作、时间复杂度高、对主节点管理压力过大的情况,这种地图瓦片文件的存储方法能够减少存储空间,提高检索效率和便于实现海量小文件的迁移,有效地提高地图瓦片数据的拷贝和删除效率,并提供瓦片数据的打包、更新及读取操作。
Description
技术领域
本发明涉及Web地图服务中瓦片数据的存储方法;旨在将海量瓦片数据打包到大空间的瓦片包文件中进行管理及读取,具体涉及地图瓦片数据在瓦片包文件的插入、更新及读取操作;本发明适用于Web地图服务中服务端和客户端的瓦片数据的缓存组织和管理。
背景技术
地图瓦片技术是一种地图预缓存技术。地图瓦片技术将配置好的一定坐标范围的地图,按照固定的若干个比例尺(瓦片级别)和指定图片尺寸,切成若干行及列的正方形图片,按一定的命名规则和组织方式存储到目录系统中或是数据库系统里,形成金字塔模型的静态地图缓存,地图切图所获得的地图切片也叫瓦片(Tile)。地图瓦片技术在WebGIS和地图服务中得到了广泛的应用。瓦片金字塔模型是一种多分辨率层次模型,从瓦片金字塔的底层到顶层,分辨率越来越低,但表示的地理范围不变。
瓦片地图的优点在于提前缓存数据,减少网络传输数据量,较矢量数据模型更加适合于网络地图服务器的情况,其缺点在于比例尺较大情况下,瓦片的个数急剧增加,这些数据均以瓦片地图小文件的形式存放在一级目录下,造成了存储空间增加,在海量小文件中检索某个文件会磁盘频繁的I/O操作,时间复杂度高,在利用分布式存储管理时,产生对主节点管理压力过大的情况。急需一种对这些海量小文件的高效的组织方式,来减少存储空间,提高检索效率,同时,便于实现海量小文件在分布式服务器上进行迁移操作。ARCGIS在9.3之后的版本,提出小文件过多的问题的解决方案,即将瓦片地图利用紧凑(Compact)格式进行存储,紧凑型文件有两个,一个文件存储了瓦片地图在另一个大文件中的位置和长度信息,在另一个聚合大文件中存储了原始瓦片地图的信息。这种方法的弊端在于索引文件和聚合文件个数相当,在压缩瓦片地图文件的个数的同时,增加了新的小文件数量。
发明内容
本发明的目的是为地图服务中的海量地图瓦片数据提供一种便利的存储方法,极大地提高了地图瓦片数据的拷贝及删除效率,并提供瓦片数据的打包、更新及读取操作。
本发明的思路为:针对各层级,将瓦片数据按照固定结构及数量打包形成瓦片包文件,在瓦片包文件中分别存储瓦片的索引位置及数据信息;通过海量瓦片包数据的合并形成更大尺度的瓦片包文件,从而提高瓦片数据管理的效率。
本发明的技术方案提供了地图瓦片数据的存储结构,其特征包括以下组成部分:
1)针对各层级,将瓦片数据按照固定结构及数量打包形成瓦片包文件,在瓦片包文件中分别存储瓦片的索引位置及数据信息;2)通过海量瓦片包数据的合并形成更大尺度的瓦片包文件,每个瓦片包文件存储该层级的瓦片数据,瓦片包结构分为索引区及数据区,索引区以固定长度8*512*512字节记录其物理位置对应瓦片的数据偏移量,偏移量指向的数据区记录对应瓦片的数据,数据区长度可扩展;其中单个瓦片数据的插入步骤如下:a、首先根据瓦片文件的层级Level、行Row及列Column信息确定其对应的瓦片包文件路径;b、其次根据Row、Column计算瓦片包文件中该瓦片索引的物理位置,计算公式:
Rnew=R-Rpack*512 (1),Cnew=C-Cpack*512 (2),
其中,[Rnew,Cnew]为换算后对应的索引位置,[R,C]为原始瓦片的Row,Column,[Rpack,Cpack]为瓦片打包后的Row和Column;c、在索引区记录该瓦片存放的数据偏移量,由于每次瓦片插入都是在原数据包文件的尾部,即数据偏移量为原数据包文件的字节数;d、在数据区即原数据包文件尾部写入瓦片数据的大小及数据实体。
进一步地,瓦片的更新操作与插入操作相同,即步骤c中将新的偏移量覆盖原始位置的索引值。
进一步地,索引区按瓦片数据的[Row,Column]顺序记录瓦片数据的偏移位置,对应[Row,Column]的瓦片数据存储在索引记录的偏移位置。
进一步地,每次数据插入及更新操作将瓦片大小及数据信息插入至瓦片包文件的尾部,并将偏移值记录或覆盖在对应索引区。
本发明具有以下特点:各层级瓦片包存储的瓦片个数固定,并以索引区索引瓦片数据的实际位置,实现瓦片数据的整合,从而提高其拷贝、删除的效率;同时实现了地图瓦片的插入、更新及读取操作。
附图说明
图1是瓦片包文件结构图
图2是瓦片数据插入及更新过程
图3是瓦片数据的读取过程
具体实施方式
图1是瓦片包文件结构图。每个瓦片包文件存储该层级的瓦片数据,且存放数量固定,在实际应用中根据单个瓦片的大小以512*512进行打包,以每个瓦片文件大小为256KB作为基准,一次打包后瓦片包文件大小在[0GB,64GB+3MB]范围内,多次打包瓦片包文件大小在文件系统可以支持的范围内。具体实施方式中以512*512的打包规则为例进行说明,打包前后Row,Column换算规律如下表所示:
通过打包方式能够有效减少瓦片文件的个数。瓦片包结构分为索引区及数据区,索引区以固定长度8*512*512字节记录其物理位置对应瓦片的数据偏移量。偏移量指向的数据区记录对应瓦片的数据:其中前4字节记录数据大小,后面字节记录数据实体。
图2是单个瓦片数据的插入与更新流程图。具体流程如下:
1)首先根据瓦片文件的Level、Row及Column信息确定其对应的瓦片包文件路径,对应方式如上表中所示;
2)根据Row、Column计算瓦片包文件中该瓦片索引的物理位置,计算公式:
Rnew=R-Rpack*512
Cnew=C-Cpack*512
其中[Rnew,Cnew]为换算后对应的索引位置,[R,C]为原始瓦片的Row,Column,[Rpack,Cpack]为瓦片打包后的Row和Column。
3)在索引区记录该瓦片存放的数据偏移量,由于每次瓦片插入都是在原数据包文件的尾部,即数据偏移量为原数据包文件的字节数;
4)在数据区即原数据包文件尾部写入瓦片数据的大小及数据实体。
瓦片的更新操作与插入操作相同,即步骤3)中将新的偏移量覆盖原始位置的索引值。
图3是瓦片数据的读取流程图。该过程即插入过程的逆过程,具体流程如下:
1)首先根据瓦片文件的Level、Row及Column信息确定其对应的瓦片包文件路径,对应方式如上表中所示;
2)根据公式1,2计算瓦片包文件中该瓦片索引的物理位置;
3)在索引区记录该瓦片存放的数据偏移量;
4)根据偏移位置在数据区读取瓦片大小,并读取相应大小的瓦片数据。
本发明的实例在x86微机平台上实现,该瓦片存储方法能够提高海量瓦片数据的拷贝更新操作;且实现地图瓦片的增量插入、地图瓦片数据的更新、瓦片数据的读取,方便对瓦片数据的操作管理。本发明的地图瓦片存储方法可广泛应用于Web地图服务的服务器端的瓦片数据管理中。
Claims (5)
1.一种地图瓦片文件的存储方法,具体步骤是:1)针对各层级,将瓦片数据按照固定结构及数量打包形成瓦片包文件,在瓦片包文件中分别存储瓦片的索引位置及数据信息;2)通过海量瓦片包数据的合并形成更大尺度的瓦片包文件,每个瓦片包文件存储该层级的瓦片数据,瓦片包结构分为索引区及数据区,索引区以固定长度8*512*512字节记录其物理位置对应瓦片的数据偏移量,偏移量指向的数据区记录对应瓦片的数据,数据区长度可扩展;其中单个瓦片数据的插入步骤如下:a、首先根据瓦片文件的层级Level、行Row及列Column信息确定其对应的瓦片包文件路径;b、其次根据Row、Column计算瓦片包文件中该瓦片索引的物理位置,计算公式:
Rnew=R-Rpack*512 (1),
Cnew=C-Cpack*512 (2),
其中,[Rnew,Cnew]为换算后对应的索引位置,[R,C]为原始瓦片的Row,Column,[Rpack,Cpack]为瓦片打包后的Row和Column;c、在索引区记录该瓦片存放的数据偏移量,由于每次瓦片插入都是在原数据包文件的尾部,即数据偏移量为原数据包文件的字节数;d、在数据区即原数据包文件尾部写入瓦片数据的大小及数据实体。
2.如权利要求1所述的一种地图瓦片文件的存储方法,其特征在于,瓦片的更新操作与插入操作相同,即步骤c中将新的偏移量覆盖原始位置的索引值。
3.如权利要求2所述的一种地图瓦片文件的存储方法,其特征在于,索引区按瓦片数据的[Row,Column]顺序记录瓦片数据的偏移位置,对应[Row,Column]的瓦片数据存储在索引记录的偏移位置。
4.如权利要求2所述的一种地图瓦片文件的存储方法,其特征在于,每次数据插入及更新操作将瓦片大小及数据信息插入至瓦片包文件的尾部,并将偏移值记录或覆盖在对应索引区。
5.如权利要求2所述的一种地图瓦片文件的存储方法,其特征在于,索引区的物理顺序对应瓦片数据的[Row,Colunm],索引区记录的偏移位置对应瓦片数据实体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510504116.3A CN105117451B (zh) | 2015-08-17 | 2015-08-17 | 一种地图瓦片文件的存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510504116.3A CN105117451B (zh) | 2015-08-17 | 2015-08-17 | 一种地图瓦片文件的存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105117451A CN105117451A (zh) | 2015-12-02 |
CN105117451B true CN105117451B (zh) | 2018-10-26 |
Family
ID=54665441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510504116.3A Active CN105117451B (zh) | 2015-08-17 | 2015-08-17 | 一种地图瓦片文件的存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105117451B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106777107A (zh) * | 2016-12-15 | 2017-05-31 | 山东数字人科技股份有限公司 | 一种数字标本瓦片数据存储的方法 |
CN106991404B (zh) * | 2017-04-10 | 2019-06-28 | 山东师范大学 | 基于众源地理数据的地表覆盖更新方法及系统 |
CN107885867A (zh) * | 2017-11-22 | 2018-04-06 | 苏州联讯图创软件有限责任公司 | 地图切片数据的合成方法和合成系统 |
CN108874905A (zh) * | 2018-05-24 | 2018-11-23 | 西安恒歌数码科技有限责任公司 | 一种海量地理信息瓦片数据的高效存储方法 |
CN111611212A (zh) * | 2020-05-15 | 2020-09-01 | 交通运输部规划研究院 | 对栅格地图文件进行打包的方法、装置以及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003263440A (ja) * | 2002-03-11 | 2003-09-19 | Fuji Micro Corp | マイクロフィルムと電子媒体による文書・図面の保存・閲覧方法 |
CN103279487A (zh) * | 2013-04-25 | 2013-09-04 | 中国科学院遥感与数字地球研究所 | 一种地图瓦片缓存的组织和管理方法 |
CN103412962A (zh) * | 2013-09-04 | 2013-11-27 | 国家测绘地理信息局卫星测绘应用中心 | 一种海量瓦片数据的存储方法及读取方法 |
CN103744855A (zh) * | 2013-11-29 | 2014-04-23 | 航天恒星科技有限公司 | 一种基于聚合文件的瓦片地图存储方法 |
CN103793496A (zh) * | 2014-01-22 | 2014-05-14 | 百度在线网络技术(北京)有限公司 | 一种瓦片图的处理方法及系统 |
CN104217023A (zh) * | 2014-09-25 | 2014-12-17 | 山东康威通信技术股份有限公司 | 一种利用打包技术解决地图瓦片存储的方法 |
-
2015
- 2015-08-17 CN CN201510504116.3A patent/CN105117451B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003263440A (ja) * | 2002-03-11 | 2003-09-19 | Fuji Micro Corp | マイクロフィルムと電子媒体による文書・図面の保存・閲覧方法 |
CN103279487A (zh) * | 2013-04-25 | 2013-09-04 | 中国科学院遥感与数字地球研究所 | 一种地图瓦片缓存的组织和管理方法 |
CN103412962A (zh) * | 2013-09-04 | 2013-11-27 | 国家测绘地理信息局卫星测绘应用中心 | 一种海量瓦片数据的存储方法及读取方法 |
CN103744855A (zh) * | 2013-11-29 | 2014-04-23 | 航天恒星科技有限公司 | 一种基于聚合文件的瓦片地图存储方法 |
CN103793496A (zh) * | 2014-01-22 | 2014-05-14 | 百度在线网络技术(北京)有限公司 | 一种瓦片图的处理方法及系统 |
CN104217023A (zh) * | 2014-09-25 | 2014-12-17 | 山东康威通信技术股份有限公司 | 一种利用打包技术解决地图瓦片存储的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105117451A (zh) | 2015-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105117451B (zh) | 一种地图瓦片文件的存储方法 | |
CN103744855B (zh) | 一种基于聚合文件的瓦片地图存储方法 | |
CN102419766B (zh) | 基于hdfs分布式文件系统的数据冗余及文件操作方法 | |
CN107423422B (zh) | 基于网格的空间数据分布式存储及检索方法和系统 | |
CN103605805B (zh) | 一种海量时序数据的存储方法 | |
CN102768662B (zh) | 一种加载图片的方法和装置 | |
CN102662992B (zh) | 一种海量小文件的存储、访问方法及装置 | |
JP6011421B2 (ja) | ストレージシステム、情報処理装置の制御プログラム及びストレージシステムの制御方法 | |
US11132336B2 (en) | Filesystem hierarchical capacity quantity and aggregate metrics | |
US7716445B2 (en) | Method and system for storing a sparse file using fill counts | |
CN103279487A (zh) | 一种地图瓦片缓存的组织和管理方法 | |
CN102821138B (zh) | 一种适用于云存储系统的元数据分布式存储方法 | |
CN109522283B (zh) | 一种重复数据删除方法及系统 | |
CN102902724B (zh) | 海量栅格瓦块地图发布方法 | |
CN107958079A (zh) | 聚合文件删除方法、系统、装置及可读存储介质 | |
CN105095421A (zh) | 一种实时数据库的分布式的存储方法 | |
CN102375853A (zh) | 分布式数据库系统、在其中建立索引的方法和查询方法 | |
CN103327052A (zh) | 数据存储方法和系统以及数据访问方法和系统 | |
Povar et al. | Forensic data carving | |
CN105009067A (zh) | 管理对存储数据单元的操作 | |
CN104331453A (zh) | 一种分布式文件系统及分布式文件系统的构建方法 | |
CN104217023A (zh) | 一种利用打包技术解决地图瓦片存储的方法 | |
CN103559229A (zh) | 基于MapFile的小文件管理服务SFMS系统及其使用方法 | |
CN104199888A (zh) | 弹性文件系统的数据恢复方法和装置 | |
CN104536908B (zh) | 一种面向单机的海量小记录高效存储管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |