[go: up one dir, main page]

CN105205126B - A kind of storage method and its storage system of map tile - Google Patents

A kind of storage method and its storage system of map tile Download PDF

Info

Publication number
CN105205126B
CN105205126B CN201510581736.7A CN201510581736A CN105205126B CN 105205126 B CN105205126 B CN 105205126B CN 201510581736 A CN201510581736 A CN 201510581736A CN 105205126 B CN105205126 B CN 105205126B
Authority
CN
China
Prior art keywords
file
map tile
tile
map
metadata information
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.)
Expired - Fee Related
Application number
CN201510581736.7A
Other languages
Chinese (zh)
Other versions
CN105205126A (en
Inventor
程曦
史凤玲
袁红念
曹倩倩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuhan Yunkongjian Geography Information Technology Co Ltd
Original Assignee
Wuhan Yunkongjian Geography Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuhan Yunkongjian Geography Information Technology Co Ltd filed Critical Wuhan Yunkongjian Geography Information Technology Co Ltd
Priority to CN201510581736.7A priority Critical patent/CN105205126B/en
Publication of CN105205126A publication Critical patent/CN105205126A/en
Application granted granted Critical
Publication of CN105205126B publication Critical patent/CN105205126B/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical 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

本发明公开了一种地图瓦片的存储方法及其存储系统,所述方法包括:按照预定大小将电子地图顺序分割成地图瓦片,并按照第一预定规则进行分级;根据每一级数据文件中地图瓦片的数量,按照第二预定规则构建c个文件;若c大于第一预定数量,则按照第三预定规则构建d个文件夹;若d大于第二预定数量,则按照第四预定规则构建e个下一级文件夹,依次类推,直到下一级文件夹中存放的上一级文件夹的数量小于等于对应的预定数量。本发明通过对地图瓦片进行分级并构建文件及文件夹的形式将地图瓦片集中进行存储,有利于数据存储速度和后期的读取速度。

The invention discloses a method for storing map tiles and a storage system thereof. The method includes: sequentially dividing an electronic map into map tiles according to a predetermined size, and classifying according to a first predetermined rule; According to the number of map tiles in the map, construct c files according to the second predetermined rule; if c is greater than the first predetermined number, then construct d folders according to the third predetermined rule; if d is greater than the second predetermined number, then follow the fourth predetermined The rule constructs e lower-level folders, and so on, until the number of upper-level folders stored in the lower-level folders is less than or equal to the corresponding predetermined number. The invention centrally stores the map tiles by classifying the map tiles and constructing files and folders, which is beneficial to data storage speed and later reading speed.

Description

一种地图瓦片的存储方法及其存储系统A storage method and storage system for map tiles

技术领域technical field

本发明涉及数据存储技术领域,具体涉及一种地图瓦片的存储方法及其存储系统。The invention relates to the technical field of data storage, in particular to a method for storing map tiles and a storage system thereof.

背景技术Background technique

由于WebGIS是从服务器端读取地理数据,而每次读取的数据量有限,加上WebGIS需要支持多客户端读取地理数据,因此对于服务器端地理数据的获取,采用了使用瓦片数据的方法。而最常见的瓦片数据有256*256大小的jpg数据,png数据等栅格数据,以及相应大小的矢量瓦片数据。以栅格瓦片数据为例,常见的譬如ArcGIS的栅格瓦片数据,是以瓦片级别作为大的文件夹,行列号计算出来分级文件夹,最终存储的是256*256大小的jpg或者png数据的。在发布服务时,客户端是直接通过IIS或者Apache等Web服务器端软件,通过一定规则直接获取服务器端栅格瓦片数据文件的。这样的做法存在几个弊端:Because WebGIS reads geographic data from the server, and the amount of data read each time is limited, and WebGIS needs to support multiple clients to read geographic data, so for the acquisition of server-side geographic data, the method of using tile data is adopted. method. The most common tile data are raster data such as jpg data and png data of 256*256 size, and vector tile data of corresponding size. Taking raster tile data as an example, common raster tile data such as ArcGIS uses the tile level as a large folder, and the row and column numbers are calculated to classify folders, and the final storage is 256*256 jpg or PNG data. When publishing services, the client directly obtains the server-side raster tile data files through certain rules through web server-side software such as IIS or Apache. This approach has several disadvantages:

1、由于瓦片数据最终是256*256大小的jpg或者png文件,它们的文件大小太小;而由于要展现的影像数据数据量太大,例如Google标准的WebMercator坐标的全球17级影像瓦片数据量就能达到4的17次方约17179869184张影像瓦片。按照每张影像瓦片平均15KB大小来算,就有245760GB,即240TB数据量。而谷歌全球的影像数据约20级,在局部地区甚至达到了24级。若全部采用jpg格式来存放,将会带来大量小文件数据。由于计算机硬盘存储的特性,顺序存取的速度远远大于随机存取的速度。一般来说,对于现有的普通台式机机械硬盘,顺序存取能达到约200MB/S的速度,而随机4K存取最多只能达到约3MB/S的速度。因为零散jpg文件在硬盘上的存放往往不是连续的,在对它进行读写时的速度就类似于机械硬盘的随机4K存取速度。这个特性就导致了在拷贝分发切割好的栅格瓦片数据时,文件传输速度特别慢。据了解,采用这种方式进行栅格瓦片数据的分发,往往速度还达不到直接在目标存储上重新切割数据的速度,这就是第一个弊端。1. Because the tile data is finally a jpg or png file with a size of 256*256, their file size is too small; and because the amount of image data to be displayed is too large, such as the global 17-level image tile of Google's standard WebMercator coordinates The amount of data can reach 4 to the 17th power of about 17179869184 image tiles. Based on the average size of each image tile of 15KB, there are 245,760GB, or 240TB of data. Google's global image data is about 20 levels, and even reaches 24 levels in some areas. If all are stored in jpg format, it will bring a lot of small file data. Due to the characteristics of computer hard disk storage, the speed of sequential access is much faster than that of random access. Generally speaking, for existing ordinary desktop mechanical hard drives, sequential access can reach a speed of about 200MB/S, while random 4K access can only reach a speed of about 3MB/S at most. Because the storage of scattered jpg files on the hard disk is often not continuous, the speed of reading and writing it is similar to the random 4K access speed of a mechanical hard disk. This feature leads to a particularly slow file transfer speed when copying and distributing cut raster tile data. It is understood that the distribution of raster tile data in this way is often not as fast as re-cutting the data directly on the target storage. This is the first drawback.

2、仍然是由于瓦片文件太小,在客户端请求数据文件时,服务器端软件会直接一个个地读取小文件的数据。这种读取仍然是机械硬盘随机4K存取速度,因此以这种小文件作为影像瓦片数据,将会影响服务器提供影像瓦片服务的速度。在大多数情况下,这样部署的影像瓦片服务器,并不能够提供达到服务器出口带宽的服务速度。这样的话,就相当于服务器的CPU、内存资源都是浪费的,并没有对提高服务速度起到什么作用。2. Still because the tile file is too small, when the client requests a data file, the server-side software will directly read the data of the small files one by one. This kind of reading is still the random 4K access speed of the mechanical hard disk, so using such small files as image tile data will affect the speed at which the server provides image tile services. In most cases, the image tile server deployed in this way cannot provide a service speed that reaches the server egress bandwidth. In this case, it is equivalent to the waste of CPU and memory resources of the server, which does not play any role in improving the service speed.

3、这种小文件瓦片数据存储方式,无法有效做到在瓦片数据更新时,提供通知给浏览器客户端。目前业内对于这样的小文件瓦片数据更新,一般采取的做法是把更新后的瓦片数据作为一个新的地址来发布,这样来强制刷新用户的Cookie从而刷新瓦片数据。这样的做法在数据更新频繁的场景下是不太适用的,因为对于用户来说,浏览到一个地区之后就会在服务器发生更新时不断地更新到新的瓦片,而这个瓦片很可能并没有发生改变。这样就浪费了宝贵的带宽资源,还加重了服务器的负担。3. This small file tile data storage method cannot effectively provide a notification to the browser client when the tile data is updated. At present, the industry generally adopts the method of updating the tile data of such small files to release the updated tile data as a new address, so as to force refresh the user's cookie to refresh the tile data. This approach is not suitable for scenarios where data is frequently updated, because for users, after browsing to a region, they will continuously update to new tiles when the server is updated, and this tile is likely to be unavailable. Nothing has changed. This wastes valuable bandwidth resources and increases the burden on the server.

发明内容Contents of the invention

本发明所要解决的技术问题是提供一种地图瓦片的存储方法及其存储系统,能够解决现有技术中的缺点和不足。The technical problem to be solved by the present invention is to provide a method for storing map tiles and a storage system thereof, which can solve the shortcomings and deficiencies in the prior art.

本发明解决上述技术问题的技术方案如下:The technical scheme that the present invention solves the problems of the technologies described above is as follows:

基于本发明的一个方面,提供了一种地图瓦片的存储方法,所述方法包括:Based on one aspect of the present invention, a method for storing map tiles is provided, the method comprising:

S1、按照预定大小将电子地图顺序分割成地图瓦片,并对地图瓦片按照第一预定规则进行分级,形成b级数据文件,其中,b为正整数,b的取值为1、2、3…;S1. Sequentially divide the electronic map into map tiles according to a predetermined size, and classify the map tiles according to a first predetermined rule to form a b-level data file, wherein b is a positive integer, and the value of b is 1, 2, 3…;

S2、根据第i级数据文件中地图瓦片的数量,按照第二预定规则构建c个文件,构建的每一个所述文件中存放对应的若干地图瓦片,其中,i为整数,i的取值为0、1…(b-1),c为正整数,c的取值为1、2、3…;S2. According to the number of map tiles in the i-th level data file, c files are constructed according to the second predetermined rule, and each of the constructed files stores a corresponding number of map tiles, wherein i is an integer, and i is taken as The value is 0, 1...(b-1), c is a positive integer, and the value of c is 1, 2, 3...;

S3、若c大于第一预定数量,则按照第三预定规则构建d个文件夹,构建的每一个所述文件夹中存放对应的若干文件,其中,d正为整数,d的取值为1、2、3…;S3. If c is greater than the first predetermined number, construct d folders according to the third predetermined rule, and store corresponding files in each of the constructed folders, where d is an integer, and the value of d is 1 , 2, 3...;

S4、若d大于第二预定数量,则按照第四预定规则构建e个下一级文件夹,构建的每一个所述下一级文件夹存放对应的若干文件夹,依次类推,直到下一级文件夹中存放的上一级文件夹的数量小于等于对应的预定数量。S4. If d is greater than the second predetermined number, then construct e lower-level folders according to the fourth predetermined rule, and each of the constructed lower-level folders stores a corresponding number of folders, and so on until the next level The number of upper-level folders stored in the folder is less than or equal to the corresponding predetermined number.

基于本发明的另一个方面,本发明提供了一种地图瓦片的存储系统,所述系统包括:Based on another aspect of the present invention, the present invention provides a storage system for map tiles, the system comprising:

瓦片分级模块,用于按照预定大小将电子地图顺序分割成地图瓦片,并对地图瓦片按照第一预定规则进行分级,形成b级数据文件,其中,b正为整数,b的取值为1、2、3…;The tile grading module is used to sequentially divide the electronic map into map tiles according to a predetermined size, and classify the map tiles according to a first predetermined rule to form a b-level data file, wherein b is an integer, and the value of b is 1, 2, 3...;

文件构建模块,用于根据第i级数据文件中地图瓦片的数量,按照第二预定规则构建c个文件,构建的每一个所述文件中存放对应的若干地图瓦片,其中,i为整数,i的取值为0、1…(b-1),c为正整数,c的取值为1、2、3…;The file construction module is used to construct c files according to the second predetermined rule according to the number of map tiles in the i-th level data file, and store corresponding several map tiles in each of the constructed files, where i is an integer , the value of i is 0, 1...(b-1), c is a positive integer, and the value of c is 1, 2, 3...;

文件夹构建模块,用于若c大于第一预定数量,则按照第三预定规则构建d个文件夹,构建的每一个所述文件夹中存放对应的若干文件,其中,d为正整数,d的取值为1、2、3…;A folder construction module, used to construct d folders according to the third predetermined rule if c is greater than the first predetermined number, and store corresponding several files in each of the constructed folders, where d is a positive integer, and d The values are 1, 2, 3...;

下一级文件夹构建模块,用于若d大于第二预定数量,则按照第四预定规则构建e个下一级文件夹,构建的每一个所述下一级文件夹存放对应的若干文件夹,依次类推,直到下一级文件夹中存放的上一级文件夹的数量小于等于对应的预定数量。The next-level folder construction module is used to construct e lower-level folders according to the fourth predetermined rule if d is greater than the second predetermined number, and each of the constructed lower-level folders stores a corresponding number of folders , and so on, until the number of upper-level folders stored in the lower-level folder is less than or equal to the corresponding predetermined number.

本发明提供的一种地图瓦片的存储方法及其系统,先将地图瓦片进行分级,然后针对每一个级别的数据文件,按照数据文件中地图瓦片的数量构建文件、文件夹以及下一级文件夹,对地图瓦片层层进行分级,使对地图瓦片的管理更加容易,有利于数据存储速度和后期的读取速度。In the method and system for storing map tiles provided by the present invention, the map tiles are first graded, and then for each level of data files, files, folders, and next files are constructed according to the number of map tiles in the data files. Level folders are used to classify map tiles layer by layer, which makes the management of map tiles easier, and is conducive to data storage speed and later reading speed.

附图说明Description of drawings

图1为本发明实施例一的一种地图瓦片的存储方法流程图;FIG. 1 is a flowchart of a method for storing map tiles in Embodiment 1 of the present invention;

图2为本发明实施例二的一种地图瓦片的存储系统示意图。FIG. 2 is a schematic diagram of a storage system for map tiles according to Embodiment 2 of the present invention.

具体实施方式Detailed ways

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。The principles and features of the present invention are described below in conjunction with the accompanying drawings, and the examples given are only used to explain the present invention, and are not intended to limit the scope of the present invention.

实施例一、一种地图瓦片的存储方法。以下结合图1对本实施例提供的方法进行详细说明。Embodiment 1. A method for storing map tiles. The method provided in this embodiment will be described in detail below with reference to FIG. 1 .

参见图1,S1、按照预定大小将电子地图顺序分割成地图瓦片,并对地图瓦片按照第一预定规则进行分级,形成b级数据文件,其中,b正为整数,b的取值为1、2、3…。Referring to Fig. 1, S1, sequentially divide the electronic map into map tiles according to the predetermined size, and classify the map tiles according to the first predetermined rule to form a b-level data file, wherein b is an integer, and the value of b is 1, 2, 3….

具体的,首先按照预定大小将电子地图顺序分割成a张地图瓦片,并对所述a张地图瓦片进行分级,形成b级数据文件,其中,第i+1级数据文件中地图瓦片数量为第i级数据文件中地图瓦片数量对应的预定倍数,该预定倍数可以为整数倍数,也可以为小数倍数,且每相邻两级数据文件中地图瓦片数量的比值(即对应的预定倍数)可以为固定倍数,也可以为动态倍数,其中,i为整数,i的取值为0、1…(b-1),且第i级数据文件中地图瓦片组成一个m*n瓦片矩阵。其中,m和n均为正整数,m和n可以相等,则形成的瓦片矩阵为正方形瓦片矩阵(比如,Google坐标系统的瓦片地图),m和n也可以不相等,则形成的瓦片矩阵为长方形瓦片矩阵(比如,非Google坐标系统的瓦片地图)。Specifically, first, the electronic map is sequentially divided into a map tiles according to a predetermined size, and the a map tiles are classified to form a b-level data file, wherein the map tile in the i+1th level data file The number is a predetermined multiple corresponding to the number of map tiles in the i-level data file, and the predetermined multiple can be an integer multiple or a decimal multiple, and the ratio of the number of map tiles in each adjacent two-level data file (that is, the corresponding The predetermined multiple) can be a fixed multiple or a dynamic multiple, where i is an integer, and the value of i is 0, 1...(b-1), and the map tiles in the i-th level data file form an m*n tile matrix. Among them, m and n are both positive integers, m and n can be equal, then the formed tile matrix is a square tile matrix (for example, the tile map of the Google coordinate system), m and n can also be unequal, then the formed The tile matrix is a rectangular tile matrix (for example, a tile map in a non-Google coordinate system).

以常用的Google坐标系统的瓦片地图为例,Google坐标系统的瓦片地图是WebMercator坐标系统,瓦片地图标示的总范围是经度-180度到180度,纬度-85度到85度,按照电子地图表示的坐标规则对电子地图进行分割,并对分割后的地图瓦片进行分级。在本实施例中,第0级使用一张地图瓦片表示,从第1级开始,每一级的地图瓦片的横向和纵向方向上均提升到原来的两倍,即每一级地图瓦片数量是上一级地图瓦片数量的四倍。由于每一级数据文件中地图瓦片的数量均为上一级数据文件中地图瓦片数量的四倍,因此到达一定级别之后,该级别数据文件中地图瓦片总数量总是能够被65536整除。这样,本实施例可以设计一种文件系统,使得这种文件系统能够存储一定量的地图瓦片,并且能够满足性能和存储能力的要求。Take the tile map of the commonly used Google coordinate system as an example. The tile map of the Google coordinate system is the WebMercator coordinate system. The total range indicated by the tile map is longitude -180 degrees to 180 degrees, latitude -85 degrees to 85 degrees, according to The coordinate rules represented by the electronic map segment the electronic map, and classify the segmented map tiles. In this embodiment, the 0th level is represented by a map tile. Starting from the 1st level, the horizontal and vertical directions of each level of map tiles are increased to twice the original, that is, each level of map tiles The number of tiles is four times the number of tiles in the upper level map. Since the number of map tiles in each level of data files is four times the number of map tiles in the previous level of data files, after reaching a certain level, the total number of map tiles in this level of data files can always be divisible by 65536 . In this way, in this embodiment, a file system can be designed so that the file system can store a certain amount of map tiles and meet the performance and storage capacity requirements.

S2、根据第i级数据文件中地图瓦片的数量,按照第二预定规则构建c个文件,构建的每一个所述文件中存放对应的若干地图瓦片,其中,i为整数,i的取值为0、1…(b-1),c为正整数,c的取值为1、2、3…。S2. According to the number of map tiles in the i-th level data file, c files are constructed according to the second predetermined rule, and each of the constructed files stores a corresponding number of map tiles, wherein i is an integer, and i is taken as The value is 0, 1...(b-1), c is a positive integer, and the value of c is 1, 2, 3....

具体的,根据第i级数据文件中瓦片矩阵的行数m和列数n的取值,在该第i级数据文件中构建c个文件,其中,c=ceiling(m/k1)*ceiling(n/k2)其中,16≤k1≤m,16≤k2≤n;其中,c个文件在第i级数据文件中组成一个g*h文件矩阵,c=g*h,g和h均为整数。Specifically, according to the value of the number of rows m and the number of columns n of the tile matrix in the i-th level data file, c files are constructed in the i-th level data file, where c=ceiling(m/k1)*ceiling (n/k2) Among them, 16≤k1≤m, 16≤k2≤n; Among them, c files form a g*h file matrix in the i-level data file, c=g*h, g and h are both integer.

按照前述步骤S1中的例子:对于总地图瓦片数不足65536的级别,每一级别中的所有地图瓦片均用一个文件进行存储,即从第0到第7级,均用一个文件来存储该级别中的所有地图瓦片;从第8级开始,会有总数除以65536个文件来进行存储,每个文件,均由256×256个小瓦片图片组成。即第8级是一个文件,第9级是四个文件,依次类推。在第20级有16777216个文件。According to the example in the aforementioned step S1: for levels with a total number of map tiles less than 65536, all map tiles in each level are stored in one file, that is, from level 0 to level 7, all are stored in one file All map tiles in this level; starting from level 8, the total number will be divided by 65536 files for storage, and each file consists of 256×256 small tile images. That is, level 8 is one file, level 9 is four files, and so on. There are 16777216 files at level 20.

S3、若c大于第一预定数量,则按照第三预定规则构建d个文件夹,构建的每一个所述文件夹中存放对应的若干文件,其中,d正为整数,d的取值为1、2、3…。S3. If c is greater than the first predetermined number, construct d folders according to the third predetermined rule, and store corresponding files in each of the constructed folders, where d is an integer, and the value of d is 1 , 2, 3... .

具体的,根据第i级数据文件中文件的行数g和列数h的取值,在第i级数据文件中构建d个文件夹,构建的每一个所述文件夹中存放对应的若干文件,其中d=ceiling(g/k3)*ceiling(h/k4),其中,k3、k4均为正整数;其中,d个文件夹在第i级数据文件中组成一个l*w文件夹矩阵,d=l*w,其中l、w均为整数。Specifically, according to the value of the number of rows g and the number of columns h of the file in the i-level data file, d folders are constructed in the i-level data file, and each of the constructed folders stores a number of corresponding files , wherein d=ceiling(g/k3)*ceiling(h/k4), wherein, k3, k4 are positive integers; wherein, d folders form a l*w folder matrix in the i-level data file, d=l*w, wherein l and w are both integers.

S4、若d大于第三预定数量,则按照第四预定规则构建e个下一级文件夹,构建的每一个所述下一级文件夹存放对应的若干文件夹,依次类推,直到下一级文件夹中存放的上一级文件夹的数量小于等于对应的预定数量。S4. If d is greater than the third predetermined number, construct e lower-level folders according to the fourth predetermined rule, and each of the constructed lower-level folders stores corresponding folders, and so on until the next level The number of upper-level folders stored in the folder is less than or equal to the corresponding predetermined number.

具体的,根据第i级数据文件中文件夹的行数l和列数w,在第i级数据文件中构建e个下一级文件夹,构建的每一个所述下一级文件夹中存放对应的若干文件夹,其中,e=ceiling(l/k5)*ceiling(w/k6),其中,k5、k6均为正整数。Specifically, according to the number of rows l and the number of columns w of folders in the i-level data file, e lower-level folders are constructed in the i-level data file, and each of the constructed lower-level folders stores Corresponding folders, where e=ceiling(l/k5)*ceiling(w/k6), where k5 and k6 are both positive integers.

对于步骤S3和步骤S4,按照前述的例子:由于操作系统的文件系统机制,例如Windows操作系统下的FAT32文件格式系统下一个文件夹下面最多65534个文件或者文件夹(NTFS这个限制在4294967294左右,但最好还是不要放太多文件,会影响操作系统速度),因此这些文件是不宜放在同一个文件夹的。因此,在本实施例中,采用每往下六级,生成一个文件夹来囊括以前装不下的文件。例如第15级数据文件以前都是在以级别为根文件夹名的根文件夹里存储,第14级根文件夹里存储4096个文件。从第15级开始,就有四个子文件夹,每个子文件夹里存储4096个文件。第20级有4096个子文件夹,每个子文件夹里存储4096个文件。而到第24级时,就有256个子文件夹,每个子文件夹里有4096个孙子文件夹,每个孙子文件夹里有4096个文件。依此类推。目前全球最高分辨率的地图瓦片也是仅仅到第24级,并没有再往下扩展。因此,对任意一张瓦片,在此文件系统内都能够找到相对应位置的文件,从而从文件里读取出相应的瓦片数据。For step S3 and step S4, according to the aforementioned example: due to the file system mechanism of the operating system, for example, there are at most 65534 files or folders under the next folder of the FAT32 file format system under the Windows operating system (NTFS is limited to about 4294967294, But it is better not to put too many files, which will affect the speed of the operating system), so these files should not be placed in the same folder. Therefore, in this embodiment, a folder is generated for every six levels down to include files that could not be loaded before. For example, the 15th level data files were previously stored in the root folder with the level as the root folder name, and 4096 files were stored in the 14th level root folder. Starting from level 15, there are four subfolders, and each subfolder stores 4096 files. There are 4096 subfolders in the 20th level, and 4096 files are stored in each subfolder. And when it reaches the 24th level, there are 256 subfolders, 4096 grandchildren folders in each subfolder, and 4096 files in each grandchildren folder. So on and so forth. At present, the world's highest resolution map tile is only up to the 24th level, and has not been extended further. Therefore, for any tile, the file at the corresponding location can be found in the file system, so that the corresponding tile data can be read from the file.

采用本实施例提供的地图瓦片的存储方法,即使是不同的投影坐标系统,或者是分级数据的地图分辨率并不是按照两倍的关系均匀往上增长,导致的某一级地图瓦片总数量个数并不是一个能够被65536整除的数,都能够适用。对于横向或者纵向超过256的瓦片仍然采用256×256个小瓦片图片组成的大文件来存储。横向或者纵向的文件行列数为横向或者纵向瓦片最大序号/256的值取整,不妨设为N。那么从0到N-1的行号或者列号的范围内,大文件的行或者列的存储值为256,而在最边缘的行或者列,则为总值减去256×(N-1)。而设立文件夹的规则则是类似于前述的文件夹取值规则,取文件总行数或者总列数的较大值除以64,若大于1则继续往下除64直到小于1为止。除了M次,就需要M-1层子文件夹来管理。例如文件总行列数为65行×63列,文件序号为8、8,则需要1层子文件夹。最终的文件路径应该是L/0/520.dat(8/64=0,8×64+8=520)。Using the map tile storage method provided in this embodiment, even if the projection coordinate system is different, or the map resolution of the hierarchical data does not increase evenly according to the double relationship, resulting in a certain level of map tile total Quantity The number is not a number divisible by 65536, it can be applied. For tiles that exceed 256 horizontally or vertically, a large file composed of 256×256 small tile pictures is still used to store them. The number of rows and columns of horizontal or vertical files is rounded up to the value of the maximum number of horizontal or vertical tiles/256, which may be set to N. Then within the range of row or column numbers from 0 to N-1, the storage value of the row or column of the large file is 256, and the row or column at the edge is the total value minus 256×(N-1 ). The rules for setting up folders are similar to the above-mentioned folder value rules. Take the larger value of the total number of rows or columns in the file and divide it by 64. If it is greater than 1, continue to divide by 64 until it is less than 1. In addition to M times, M-1 layer subfolders are required for management. For example, if the total number of rows and columns of the file is 65 rows x 63 columns, and the serial number of the file is 8, 8, then a layer of subfolders is required. The final file path should be L/0/520.dat (8/64=0, 8×64+8=520).

综上,本实施例提供的一个具体的地图瓦片的存储系统的内部结构为:对于地图瓦片总行数和列数(取较大值)不足2的N(N<=8)次方但是大于2的N-1次方的级别,只生成一个文件,此文件的瓦片行数和列数均为2的N次方。而对于瓦片总行数和列数(取较大值)大于256的级别,生成的文件总数是([最大行数序号/256]+1)×([最大列数序号/256]+1),生成的每一个文件的地图瓦片行数和列数均为256。生成子文件夹的规则参照上述生成文件夹的规则。以谷歌坐标系统地图瓦片的第7级为例,第7级全球一共有128×128张切片,那么生成一个文件,此文件中的地图瓦片行数和列数均为128。每一个文件,其中对应要存储的瓦片组成了一个N×N的瓦片矩阵,N为瓦片的行数和列数。而对于非谷歌坐标系统的地图瓦片,每一个文件中实际存储的地图瓦片数量可能是N1×N2,其中,N1,N2均不大于N。对于某一级别任意一张地图瓦片(i,j),它在存储它的文件里的逻辑位置是i%N*N+j%N。每一张地图瓦片,都能找到存储它的文件的位置和它在此文件里的逻辑位置,并且该文件系统里的每一个文件的每一个逻辑位置,都能对应地图瓦片系统里的一张地图瓦片。这样地图瓦片和文件里的地图瓦片逻辑位置,就形成了一一对应关系。To sum up, the internal structure of a specific map tile storage system provided by this embodiment is as follows: for the total number of rows and columns of a map tile (whichever is larger) is less than 2 to the power of N (N<=8) but For levels greater than 2 to the N-1 power, only one file is generated, and the number of tile rows and columns in this file are both 2 to the N power. For the level where the total number of rows and columns (whichever is larger) of tiles is greater than 256, the total number of generated files is ([maximum row number/256]+1)×([maximum column number/256]+1) , the number of rows and columns of each generated map tile is 256. The rules for generating subfolders refer to the above rules for generating folders. Take the seventh level of map tiles in the Google coordinate system as an example. There are 128×128 slices in the world at level 7. Then a file is generated. The number of rows and columns of map tiles in this file are both 128. For each file, the corresponding tiles to be stored form an N×N tile matrix, where N is the number of rows and columns of tiles. For map tiles in a non-Google coordinate system, the number of map tiles actually stored in each file may be N1×N2, where N1 and N2 are not greater than N. For any map tile (i, j) of a certain level, its logical position in the file storing it is i%N*N+j%N. Each map tile can find the location of the file where it is stored and its logical location in this file, and each logical location of each file in the file system can correspond to the location in the map tile system A map tile. In this way, the map tile and the logical position of the map tile in the file form a one-to-one correspondence.

按照上述方法对地图瓦片进行了分级后,在进行存储时,每一个文件由文件头、索引表和数据内容组成,其中文件头存储该文件中地图瓦片的基本信息和元数据描述信息,索引表存储该文件中地图瓦片索引值,数据内容包括地图瓦片和元数据信息,所述元数据信息中至少包括地图瓦片的MD5码。具体为:文件头是参考TIFF格式规范,存储在文件的前面部分。为了简化说明,本实施例只叙述对本文件格式起到关键性作用的部分。文件头主要包括:瓦片宽度、高度;瓦片行数、列数(并非实际行数列数,而是上述计算方法计算出的行数和列数);瓦片位置索引位置;瓦片文件长度索引位置;瓦片存储是否完整;瓦片存储位置是否已经调优;是否使用替代图片表示无数据的瓦片;替代图片的位置;替代图片的长度;元数据信息存储方式;元数据信息类型数量;元数据信息类型;元数据信息位置索引位置;元数据信息长度索引位置。After the map tiles are classified according to the above method, each file is composed of a file header, an index table and data content during storage, wherein the file header stores the basic information and metadata description information of the map tiles in the file, The index table stores the map tile index value in the file, and the data content includes the map tile and metadata information, and the metadata information includes at least the MD5 code of the map tile. Specifically: the file header refers to the TIFF format specification and is stored in the front part of the file. In order to simplify the description, this embodiment only describes the part that plays a key role in the file format. The file header mainly includes: tile width and height; tile row number and column number (not the actual row number and column number, but the row number and column number calculated by the above calculation method); tile position index position; tile file length Index location; whether the tile storage is complete; whether the tile storage location has been tuned; whether to use a substitute image to represent a tile without data; the location of the substitute picture; the length of the substitute picture; the storage method of metadata information; the number of metadata information types ; Metadata information type; Metadata information position index position; Metadata information length index position.

以瓦片宽度和高度为256的地图瓦片文件系统为例:瓦片位置索引位置和瓦片文件长度索引位置,指示的是瓦片位置索引表和瓦片文件长度索引表在本文件中的偏移量。瓦片存储位置是否调优,表示的是瓦片数据实际存储在文件中的位置是否已经调整到最优化。是否使用替代图片表示无数据的瓦片,表示的是若使用替代图片来表示无数据,则该值为真;否则无数据的瓦片的索引位置直接用0来表示。替代图片的位置,是替代图片在文件存储中的偏移量。若使用替代图片表示无数据,则在瓦片数据缺失时,对应的瓦片位置指向的是替代图片在文件存储的位置,而对应的瓦片文件长度则是替代图片的长度。元数据信息存储方式,指示的是元数据信息在文件中以何种方式进行存储。一共有四种方式进行存储:第一是每一组元数据信息直接存储在每一张瓦片数据的结尾;第二是每一组元数据信息存储在所有瓦片数据的末尾,但每一组元数据信息是在一起存储的;第三种是元数据信息存储位置完全自由调整,即每一条单独的元数据信息的位置都是可以任意调整的。第四种是部分元数据信息以第一种方式存储,部分元数据信息以第二种方式存储,部分元数据信息以第三种方式存储。元数据信息类型数量,表示的是此文件中每一个瓦片图拥有多少类型的元数据信息;元数据信息类型,紧接元数据类型信息数量值之后,占用(元数据类型信息数量×4字节)空间大小,每个int值表示一种元数据信息类型。元数据信息位置索引位置和元数据信息长度索引位置指示的是元数据信息位置索引表和元数据信息长度索引表在文件中的偏移量。Take the map tile file system with a tile width and height of 256 as an example: the tile position index position and the tile file length index position indicate the tile position index table and the tile file length index table in this file Offset. Whether the tile storage location is optimized indicates whether the location where the tile data is actually stored in the file has been optimized. Whether to use an alternative picture to represent a tile without data, which means that if an alternative picture is used to indicate no data, the value is true; otherwise, the index position of a tile without data is directly represented by 0. The location of the alternate image is the offset of the alternate image in file storage. If a substitute picture is used to indicate no data, when the tile data is missing, the corresponding tile position points to the location where the substitute picture is stored in the file, and the corresponding tile file length is the length of the substitute picture. The metadata information storage method indicates how the metadata information is stored in the file. There are four ways to store: the first is that each set of metadata information is directly stored at the end of each tile data; the second is that each set of metadata information is stored at the end of all tile data, but each Group metadata information is stored together; the third is that the storage location of metadata information is completely free to adjust, that is, the location of each individual piece of metadata information can be adjusted arbitrarily. The fourth is that part of the metadata information is stored in the first way, part of the metadata information is stored in the second way, and part of the metadata information is stored in the third way. The number of metadata information types, which indicates how many types of metadata information each tile image in this file has; the metadata information type, immediately after the value of the number of metadata type information, takes up (number of metadata type information × 4 words Section) space size, each int value represents a type of metadata information. The metadata information position index position and the metadata information length index position indicate the offsets of the metadata information position index table and the metadata information length index table in the file.

文件头之后,存储的是索引表。在本实施例中,索引表的排列是这样的:瓦片位置索引;瓦片文件长度索引;元数据信息位置类型;元数据信息长度索引。瓦片位置索引,是N×N×4个字节(int值)的一个矩阵,它和需要存储在本文件内的瓦片是一一对应关系。每个int值指示本文件里相应瓦片数据的存储位置。瓦片文件长度索引,是N×N×4个字节(int值)的一个矩阵,同前所述,和瓦片也是一一对应关系。每个int值指示的是本文件里相应瓦片数据的长度。瓦片存储是否完整,则是需要存储在本文件里的瓦片若全部到位则表示瓦片存储完整。若需要存储的为N1×N2,则N1×N2的瓦片全部到位了就表示存储完整。After the file header, the index table is stored. In this embodiment, the arrangement of the index table is as follows: tile position index; tile file length index; metadata information location type; metadata information length index. The tile position index is a matrix of N×N×4 bytes (int value), and it has a one-to-one correspondence with the tiles to be stored in this file. Each int value indicates the storage location of the corresponding tile data in this file. The tile file length index is a matrix of N×N×4 bytes (int value). As mentioned above, it also has a one-to-one correspondence with tiles. Each int value indicates the length of the corresponding tile data in this file. Whether the tile storage is complete, it means that the tile storage is complete if all the tiles that need to be stored in this file are in place. If what needs to be stored is N1×N2, then all the tiles of N1×N2 are in place, which means the storage is complete.

而元数据信息位置索引大小与元数据信息存储方式以及元数据信息类型数量都有关。若元数据信息存储为第一种方式,则元数据信息位置索引大小为0,因为可以用瓦片数据位置计算出元数据信息位置,直接读取元数据信息;若元数据信息存储为第二种方式,则元数据信息位置索引大小为(N×N×4字节)空间大小,每个int值表示每一组元数据信息记录的偏移量;而若元数据信息存储为第三种方式,则元数据信息位置索引大小为(M×N×N×4字节)空间大小,M为元数据信息类型数量,每M个int值,表示每一组元数据信息记录分别的偏移量;第四种存储方式,元数据信息位置索引表就复杂一点。先用一个M长度的int数组,表示元数据信息存储类型。若值为0,则表示第i类元数据信息,是直接存储在每一条瓦片数据之后;若值为正整数,比如为1,则表示第1聚合类元数据信息,所有值为1的元数据信息是按照第二种方式存储在一起的,只需要占用一个索引位;若值为-1,则表示第i类元数据信息是按照第三种方式存储,任意位置都是可以的,也要占用一个索引位,因此,最后需要的索引空间大小为(M`×N×N×4字节)。M`=聚合类的数量+独立类的数量。每M`长度的int数组,依次表示每一组瓦片元数据信息记录的第j个聚合类的偏移量,和第k个独立类的偏移量。至此元数据信息位置索引表存储完毕。The size of the metadata information location index is related to the storage method of the metadata information and the number of metadata information types. If the metadata information is stored in the first way, the index size of the metadata information location is 0, because the location of the metadata information can be calculated using the tile data location, and the metadata information can be read directly; if the metadata information is stored in the second method In the first way, the metadata information location index size is (N×N×4 bytes) space size, and each int value represents the offset of each group of metadata information records; and if the metadata information is stored as the third mode, the size of the metadata information location index is (M×N×N×4 bytes) space size, M is the number of metadata information types, and each M int value represents the respective offset of each group of metadata information records amount; the fourth storage method, the metadata information location index table, is a little more complicated. First use an M-length int array to indicate the storage type of metadata information. If the value is 0, it means the metadata information of the i-th category is directly stored after each piece of tile data; if the value is a positive integer, such as 1, it means the metadata information of the first aggregated category, and all values of 1 Metadata information is stored together according to the second method, which only needs to occupy one index bit; if the value is -1, it means that the i-th type of metadata information is stored according to the third method, and any position is possible. An index bit is also occupied, therefore, the final required index space size is (M`×N×N×4 bytes). M` = number of aggregated classes + number of independent classes. An int array with a length of M`, which sequentially represents the offset of the jth aggregation class and the kth independent class of each set of tile metadata information records. So far, the storage of the metadata information location index table is completed.

元数据信息长度索引的大小与元数据信息类型数量以及元数据信息类型都有关。元数据信息类型,可分为可变长度元数据信息和固定长度元数据信息。固定长度元数据信息,只需要知道固定长度大小即可。而可变长度元数据信息,则需要知道每一条可变长度元数据记录的信息长度。因此,元数据信息长度索引表,首先是类似元数据信息位置索引表的第四种元数据信息存储方式,用一个M长度的int数组,表示每一类元数据信息是固定长度还是可变长度。若值为正整数,则表示该类元数据信息是固定长度。若值为0,则表示该类元数据信息为可变长度。紧接其后的是(M`×N×N×4)的索引空间。M`为可变长度元数据信息类别数,每M`长度的int数组,依次表示每一组瓦片元数据信息记录的第i个可变长度信息的长度。The size of the metadata information length index is related to the number of metadata information types and the metadata information types. Metadata information types can be divided into variable-length metadata information and fixed-length metadata information. For fixed-length metadata information, you only need to know the fixed-length size. For variable-length metadata information, it is necessary to know the information length of each variable-length metadata record. Therefore, the metadata information length index table is firstly the fourth metadata information storage method similar to the metadata information location index table. An M-length int array is used to indicate whether each type of metadata information is of fixed length or variable length. . If the value is a positive integer, it means that this type of metadata information is of fixed length. If the value is 0, it means that the metadata information of this type is of variable length. Immediately following it is an index space of (M`×N×N×4). M` is the number of variable-length metadata information categories, and each M`-length int array sequentially represents the length of the i-th variable-length information of each group of tile metadata information records.

索引表之后,存储的是数据内容,包括瓦片数据和元数据信息。在本实施例中,将固定大小和不发生改变的元数据信息存储在数据区的前面,将地图瓦片和发生改变的元数据信息存储在数据区的后面。在每一个文件进行地图瓦片的存储时,若不考虑性能优化,这些数据可考虑如下存储方式:首先若有替代瓦片图,则先存储替代瓦片图。再按照行列号逐个地存储瓦片数据。存储完瓦片数据之后,再将每一组瓦片元数据信息逐个存储起来,同时更新索引表。或者是在文件的结尾处实时写入当前读取的瓦片数据和元数据信息,读取的瓦片可能是本文件里任意一个坐标下的瓦片,同时更新索引表。然而这样直接存储的办法并不能带来最优的读取性能。针对瓦片数据在用户终端是显示满整个用户窗口的特点,可知相临近的瓦片数据在大多数终端应用里是一起下载显示的。从机械硬盘存储的特性可以知道,硬盘对于顺序存储读取数据,要比随机存储读取数据的速度快很多。深层次的原因是机械硬盘的顺序存储和读取减少了硬盘探针寻道的次数,不像随机读取可能会发生很多次寻道。因此,本发明优化瓦片数据读取的关键点之一就在于,如何通过一次性或者减少读取的次数,来获取相临近的瓦片数据。因此,在本实施例中,采用Morton码编码规则对每一个文件中的地图瓦片的存储顺序进行重新排序,以优化地图瓦片的存储顺序。以4×4的文件为例,编号为0~15的地图瓦片文件在文件中实际存储的顺序为0,1,4,5,2,3,6,7,8,9,12,13,10,11,14,15。这样的话,请求任意一张地图瓦片,都可以以最少的读取次数把它逻辑相邻的地图瓦片读取出来。比如请求逻辑编号为5的地图瓦片,从上面的顺序可知它在文件中物理存储的顺序为第3位,而0,1,2位分别是逻辑编号0,1,4的地图瓦片。而逻辑编号为0,1,4,5的地图瓦片,又是在空间关系上是相邻的。而在本实施例对此原理的实际运用中,是直接读取用户请求的瓦片对应的16×16的范围瓦片。由此原理可知,这256张瓦片是在相邻的范围的,而由于谷歌坐标系统瓦片的普遍分辨率是256×256,所以这个范围瓦片的覆盖率可以达到4096×4096像素。而用户窗口的分辨率就目前来说,最常见的也是1920×1080。而即使是MacbookProRetina显示屏,也只有2880×1800的分辨率。也就是说,若先到的请求的16×16的范围瓦片覆盖了整个用户屏幕,则这一次读取就可以满足用户请求的需求。而最差情况下,可能需要读取四次才能满足覆盖整个屏幕的需求。但是在4096×4096的覆盖率下,能够一次性读取并覆盖用户屏幕的情况居多。读取后,会有一些冗余的地图瓦片数据存储在内存中,但这并不影响性能。相反,因为大多数用户的操作是平移,读取的冗余数据反而能立即返回到客户端,还提高了性能。在这里,为了进一步提高响应速度,还可以根据用户的操作情况(例如拖动,滚动等操作),发送指令到服务器端对数据进行预取,这样用户在对地图进行操作的时候会更加流畅,浏览到某个地方,都是内存直接返回数据,性能会发挥到极致。After the index table, the data content is stored, including tile data and metadata information. In this embodiment, metadata information with a fixed size and no change is stored in front of the data area, and map tiles and metadata information with change are stored in the back of the data area. When storing map tiles in each file, if performance optimization is not considered, these data can be stored in the following manner: first, if there is an alternative tile image, store the alternative tile image first. Then store the tile data one by one according to the row and column numbers. After the tile data is stored, each group of tile metadata information is stored one by one, and the index table is updated at the same time. Or write the currently read tile data and metadata information in real time at the end of the file. The read tile may be a tile at any coordinate in this file, and update the index table at the same time. However, this direct storage method does not bring optimal read performance. In view of the fact that the tile data is displayed on the user terminal to fill the entire user window, it can be known that adjacent tile data are downloaded and displayed together in most terminal applications. From the characteristics of mechanical hard disk storage, we can know that the hard disk reads data in sequential storage much faster than random storage. The deep-seated reason is that the sequential storage and reading of the mechanical hard disk reduces the number of hard disk probe seeks, unlike random reads that may occur many seeks. Therefore, one of the key points of optimizing tile data reading in the present invention is how to obtain adjacent tile data at one time or by reducing the number of times of reading. Therefore, in this embodiment, the Morton code encoding rule is used to reorder the storage order of the map tiles in each file, so as to optimize the storage order of the map tiles. Taking a 4×4 file as an example, the actual storage order of map tile files numbered 0 to 15 in the file is 0, 1, 4, 5, 2, 3, 6, 7, 8, 9, 12, 13 , 10, 11, 14, 15. In this way, if any map tile is requested, its logically adjacent map tiles can be read with the least number of reads. For example, if you request a map tile with logical number 5, you can see from the above sequence that its physical storage order in the file is the third bit, and bits 0, 1, and 2 are map tiles with logical numbers 0, 1, and 4, respectively. The map tiles with logical numbers 0, 1, 4, and 5 are also adjacent in terms of spatial relationship. However, in the actual application of this principle in this embodiment, the 16×16 range tile corresponding to the tile requested by the user is directly read. From this principle, we can see that these 256 tiles are in the adjacent range, and since the general resolution of tiles in the Google coordinate system is 256×256, the coverage of tiles in this range can reach 4096×4096 pixels. As for the resolution of the user window, the most common one is 1920×1080. And even the MacbookProRetina display only has a resolution of 2880×1800. That is to say, if the 16×16 range tiles of the first request cover the entire user screen, this reading can meet the requirements of the user request. In the worst case, it may take four reads to meet the requirements of covering the entire screen. However, under the coverage ratio of 4096×4096, it is mostly possible to read and cover the user's screen at one time. After reading, there will be some redundant map tile data stored in memory, but this does not affect performance. On the contrary, because most of the user's operations are panning, the redundant data read can be returned to the client immediately, which also improves performance. Here, in order to further improve the response speed, you can also send instructions to the server to prefetch the data according to the user's operation (such as dragging, scrolling, etc.), so that the user can operate the map more smoothly. When you browse to a certain place, the data is returned directly from the memory, and the performance will be maximized.

另外,在地图瓦片和元数据信息发生更新时,当地图瓦片和元数据信息发生更新时,若更新后的地图瓦片和元数据信息的大小比更新前的地图瓦片和元数据信息的大小小,则将更新后的地图瓦片和元数据信息直接覆盖到原来的存储位置上并更新对应的索引表;若更新后的地图瓦片和元数据信息的大小比更新前的地图瓦片和元数据信息的大小大(或者原来的记录不存在,指向的是替代瓦片),则将更新后的地图瓦片和元数据信息写入废弃数据区(废弃数据区指的是数据区没有存储实际数据的区域,例如数据发生更新,添加至文件末尾后,原来的数据位置就成为废弃区,这个可根据索引信息计算出来),若找不到废弃数据区,则将更新后的地图瓦片和元数据信息添加至所在文件的末尾,同时更新对应的索引表。In addition, when map tiles and metadata information are updated, if the size of the updated map tiles and metadata information is larger than the size of the map tiles and metadata information before the update If the size of the map tiles and metadata information is small, the updated map tiles and metadata information will be directly overwritten on the original storage location and the corresponding index table will be updated; if the size of the updated map tiles and metadata information is larger than that of the map tiles If the size of tiles and metadata information is large (or the original record does not exist and points to a replacement tile), write the updated map tiles and metadata information into the discarded data area (the discarded data area refers to the data area Areas that do not store actual data. For example, when the data is updated and added to the end of the file, the original data location becomes an abandoned area, which can be calculated based on the index information). If the abandoned data area cannot be found, the updated map will be The tile and metadata information is added to the end of the file, and the corresponding index table is updated at the same time.

更新完成后,服务端软件会启动优化任务,对没有完全优化的数据进行优化。优化的参考依据就是对于每一条聚合数据记录,均采用Mortan码顺序存储。更新采取的基本思路是读取数据中相应的数据记录,按照存储优化策略存储在一个新的文件中。当更新完成则删除原文件,用新的文件改名来替代它。After the update is completed, the server-side software will start the optimization task to optimize the data that is not fully optimized. The reference basis for optimization is that for each aggregated data record, Mortan code is used for sequential storage. The basic idea adopted by the update is to read the corresponding data records in the data and store them in a new file according to the storage optimization strategy. When the update is complete, the original file is deleted and a new file is renamed to replace it.

需要说明的是,地图瓦片的元数据信息中至少包含地图瓦片的MD5码,通过地图瓦片的MD5码,在地图瓦片更新后,能够让浏览器端及时知晓。其中,MD5码占用16个字节空间,是固定长度的元数据信息。一般来说,把MD5码直接存储在每一条地图瓦片数据的末尾。这样,在浏览器端请求地图瓦片数据时,服务器端会把地图瓦片数据的MD5码一并读出来。读出来之后,将浏览器端请求中的TAG数据和该瓦片数据的MD5码相等,则证明浏览器端的内存缓存里存在请求的地图瓦片数据,可以直接对该请求返回304NotModifyed的代码。而若浏览器端请求中的TAG数据为空或者与该瓦片数据的MD5码不相等,则证明浏览器端的内存缓存里不存在请求的地图瓦片数据或者该地图瓦片数据发生了更新,这时候就需要下载地图瓦片数据了。当服务器端需要更新地图瓦片数据时,服务器端需要重新计算新的地图瓦片数据的MD5码并且一起更新。通过这种办法,简洁而高效地解决了现有技术中直接存储小文件地图瓦片数据无法高效进行数据更新的弊端,当地图瓦片数据更新之后,浏览器端也无法得知的弊端。It should be noted that the metadata information of the map tile includes at least the MD5 code of the map tile, and the browser can know in time after the map tile is updated through the MD5 code of the map tile. Among them, the MD5 code occupies 16 bytes of space and is metadata information of a fixed length. Generally speaking, the MD5 code is directly stored at the end of each map tile data. In this way, when the browser side requests the map tile data, the server side will read out the MD5 code of the map tile data together. After reading out, the TAG data in the browser request is equal to the MD5 code of the tile data, which proves that the requested map tile data exists in the memory cache of the browser, and can directly return the code of 304NotModified to the request. And if the TAG data in the browser request is empty or not equal to the MD5 code of the tile data, it proves that the requested map tile data does not exist in the memory cache of the browser or the map tile data has been updated. At this time, you need to download the map tile data. When the server needs to update the map tile data, the server needs to recalculate the MD5 code of the new map tile data and update them together. This method simply and efficiently solves the drawbacks in the prior art that direct storage of small file map tile data cannot be efficiently updated, and the browser side cannot know after the local map tile data is updated.

实施例二、一种地图瓦片的存储系统。以下结合图2对本实施例提供的系统进行详细描述。Embodiment 2, a storage system for map tiles. The system provided by this embodiment will be described in detail below with reference to FIG. 2 .

参见图2,本实施例提供的系统包括瓦片分级模块201、文件构建模块202、文件夹构建模块203、下一级文件夹构建模块204、优化模块205和存储模块206。Referring to FIG. 2 , the system provided by this embodiment includes a tile classification module 201 , a file construction module 202 , a folder construction module 203 , a next-level folder construction module 204 , an optimization module 205 and a storage module 206 .

其中,瓦片分级模块201,用于按照预定大小将电子地图顺序分割成地图瓦片,并对地图瓦片按照第一预定规则进行分级,形成b级数据文件,其中,b为整数,b的取值为1、2、3…。Wherein, the tile grading module 201 is used to sequentially divide the electronic map into map tiles according to a predetermined size, and classify the map tiles according to a first predetermined rule to form a b-level data file, wherein b is an integer, and b is The values are 1, 2, 3....

具体的,瓦片分级模块201按照预定大小将电子地图顺序分割成a张地图瓦片,并对所述a张地图瓦片进行分级,形成b级数据文件,其中,第i+1级数据文件中地图瓦片数量为第i级数据文件中地图瓦片数量对应的预定倍数,i为整数,i的取值为0、1…(b-1),且第i级数据文件中地图瓦片组成一个m*n瓦片矩阵,其中,m和n均为正整数。Specifically, the tile grading module 201 sequentially divides the electronic map into a map tiles according to a predetermined size, and classifies the a map tiles to form a b-level data file, wherein the i+1th level data file The number of map tiles in the i-level data file is a predetermined multiple corresponding to the number of map tiles in the i-level data file, i is an integer, and the value of i is 0, 1...(b-1), and the map tiles in the i-level data file Form an m*n tile matrix, where m and n are both positive integers.

文件构建模块202,用于根据第i级数据文件中地图瓦片的数量,按照第二预定规则构建c个文件,构建的每一个所述文件中存放对应的若干地图瓦片,其中,i为整数,i的取值为0、1…(b-1),c为正整数,c的取值为1、2、3…。The file construction module 202 is used to construct c files according to the number of map tiles in the i-level data file according to the second predetermined rule, and store corresponding several map tiles in each of the constructed files, where i is Integer, the value of i is 0, 1...(b-1), c is a positive integer, and the value of c is 1, 2, 3....

具体的,根据第i级数据文件中瓦片矩阵的行数m和列数n的取值,文件构建模块202在该第i级数据文件中构建c个文件,其中,c=ceiling(m/k1)*ceiling(n/k2),其中,16≤k1≤m,16≤k2≤n;其中,c个文件在第i级数据文件中组成一个g*h文件矩阵,c=g*h,g和h均为正整数。Specifically, according to the value of the number of rows m and the number of columns n of the tile matrix in the i-th level data file, the file construction module 202 constructs c files in the i-th level data file, where c=ceiling(m/ k1)*ceiling(n/k2), wherein, 16≤k1≤m, 16≤k2≤n; wherein, c files form a g*h file matrix in the i-level data file, c=g*h, Both g and h are positive integers.

文件夹构建模块203,用于若c大于第一预定数量,则按照第三预定规则构建d个文件夹,构建的每一个所述文件夹中存放对应的若干文件,其中,d为正整数,d的取值为1、2、3…。A folder construction module 203, configured to construct d folders according to a third predetermined rule if c is greater than the first predetermined number, and store corresponding several files in each of the constructed folders, wherein d is a positive integer, The value of d is 1, 2, 3....

具体的,根据第i级数据文件中文件矩阵的行数g和列数h的取值,文件夹构建模块203在第i级数据文件中构建d个文件夹,构建的每一个所述文件夹中存放对应的若干文件,其中,d=ceiling(g/k3)*ceiling(h/k4),k3和k4均为正整数;其中,d个文件夹在第i级数据文件中组成一个l*w文件夹矩阵,d=l*w,l和w均为整数。Specifically, according to the value of the number of rows g and the number of columns h of the file matrix in the i-level data file, the folder construction module 203 constructs d folders in the i-level data file, and each of the folders constructed Deposit corresponding several files in, wherein, d=ceiling(g/k3)*ceiling(h/k4), k3 and k4 are all positive integers; Wherein, d folders form a l* in the i-level data file w folder matrix, d=l*w, both l and w are integers.

下一级文件夹构建模块204,用于若d大于第二预定数量,则按照第四预定规则构建e个下一级文件夹,构建的每一个所述下一级文件夹存放对应的若干文件夹,依次类推,直到下一级文件夹中存放的上一级文件夹的数量小于等于对应的预定数量。The next-level folder construction module 204 is used to construct e lower-level folders according to the fourth predetermined rule if d is greater than the second predetermined number, and each of the constructed lower-level folders stores a corresponding number of files folders, and so on, until the number of upper-level folders stored in the lower-level folder is less than or equal to the corresponding predetermined number.

具体的,根据第i级数据文件中文件夹矩阵的行数l和列数w,在第i级数据文件中构建e个下一级文件夹,构建的每一个所述下一级文件夹中存放对应的若干文件夹,其中,e=ceiling(l/k5)*ceiling(w/k6),其中,k5和k6均为正整数。Specifically, according to the number of rows l and the number of columns w of the folder matrix in the i-level data file, e lower-level folders are constructed in the i-level data file, and in each of the constructed lower-level folders Several corresponding folders are stored, where e=ceiling(l/k5)*ceiling(w/k6), where k5 and k6 are both positive integers.

优化模块205,用于采用Morton码编码规则对每一个文件中的地图瓦片的存储顺序进行重新排序,以优化地图瓦片的存储顺序。The optimization module 205 is configured to reorder the storage order of the map tiles in each file by using Morton code encoding rules, so as to optimize the storage order of the map tiles.

存储模块206,用于按照文件头、索引表和数据内容的形式对每一个文件进行存储,其中文件头存储该文件中地图瓦片的基本信息和元数据描述信息,索引表存储该文件中地图瓦片索引值,数据内容包括地图瓦片和元数据信息,所述元数据信息中至少包括地图瓦片的MD5码。所述存储模块206,还用于当地图瓦片和元数据信息发生更新时,若更新后的地图瓦片和元数据信息的大小比更新前的地图瓦片和元数据信息的大小小,则将更新后的地图瓦片和元数据信息直接覆盖到原来的存储位置上并更新对应的索引表;若更新后的地图瓦片和元数据信息的大小比更新前的地图瓦片和元数据信息的大小大,则将更新后的地图瓦片和元数据信息写入废弃数据区,若找不到废弃数据区,则将更新后的地图瓦片和元数据信息添加至所在文件的末尾,同时更新对应的索引表。The storage module 206 is used to store each file in the form of file header, index table and data content, wherein the file header stores the basic information and metadata description information of the map tiles in the file, and the index table stores the map in the file The tile index value, the data content includes map tiles and metadata information, and the metadata information includes at least the MD5 code of the map tiles. The storage module 206 is also used for updating map tiles and metadata information, if the size of the updated map tiles and metadata information is smaller than the size of the map tiles and metadata information before updating, then Overwrite the updated map tiles and metadata information directly to the original storage location and update the corresponding index table; if the size of the updated map tiles and metadata information is larger than the map tiles and metadata information before the update is large, write the updated map tiles and metadata information into the discarded data area, if no discarded data area is found, add the updated map tiles and metadata information to the end of the file, and at the same time Update the corresponding index table.

本发明提供的一种地图瓦片的存储方法及其存储系统,将地图瓦片分级,并构建文件以及文件夹的方式将小地图瓦片文件进行聚合,在进行地图瓦片的存取时,相比现有技术中对每一个小地图瓦片(通常为jpg图片或png图片)逐一进行存取,存取的速度快;在构建文件以及构建文件夹时,每一个文件和每一个文件夹中均存储适当的地图瓦片数据,达到地图瓦片存取速度的最佳平衡;在对地图瓦片进行存储时,地图瓦片的元数据信息中包括地图瓦片的MD5码,当地图瓦片发生更新时,浏览器客户端在请求读取时,能够及时知晓请求的数据是否发生更新,以避免重复下载,提高了地图瓦片读取的效率;另外,在进行地图瓦片的存储时,将固定大小和不发生改变的源数据信息存放于数据区的前面,而将地图瓦片和不发生改变的元数据信息存储于数据区的后面,这样的存储方式,在地图瓦片更新时,能够避免地图瓦片数据移动次数太多,提高数据更新的效率;此外,对于每一个文件中存储的地图瓦片,采用Morton码编码规则对地图瓦片的存储顺序进行重新排序,以优化地图瓦片的存储顺序,这样,当请求任意一种地图瓦片时,都能够以最少的读取次数将其逻辑相邻的地图瓦片读取出来,减少了地图瓦片读取的次数,提高了地图瓦片读取的效率。A storage method and storage system for map tiles provided by the present invention classify map tiles and aggregate small map tile files by constructing files and folders. When accessing map tiles, Compared with accessing each small map tile (usually a jpg image or png image) one by one in the prior art, the access speed is fast; when constructing files and folders, each file and each folder Appropriate map tile data is stored in the center to achieve the best balance of map tile access speed; when storing map tiles, the metadata information of the map tile includes the MD5 code of the map tile, and the local map tile When the map tile is updated, the browser client can know whether the requested data is updated in time when requesting to read, so as to avoid repeated downloads and improve the efficiency of map tile reading; in addition, when storing map tiles , store the source data information with a fixed size and no change in the front of the data area, and store the map tiles and metadata information that does not change in the back of the data area. This storage method, when the map tile is updated , which can avoid too many times of map tile data movement and improve the efficiency of data update; in addition, for the map tiles stored in each file, the Morton code encoding rule is used to reorder the storage order of the map tiles to optimize the map The storage order of the tiles, so that when any map tile is requested, its logically adjacent map tiles can be read with the least number of reads, reducing the number of map tile reads and improving Improve the efficiency of map tile reading.

在本说明书的描述中,参考术语“实施例一”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体方法、装置或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、方法、装置或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。In the description of this specification, descriptions referring to the terms "embodiment one", "example", "specific examples", or "some examples" mean that the specific methods, devices or features described in conjunction with this embodiment or example are included in In at least one embodiment or example of the invention. In this specification, the schematic representations of the above terms are not necessarily directed to the same embodiment or example. Furthermore, the described specific features, methods, devices or characteristics may be combined in any suitable manner in any one or more embodiments or examples. In addition, those skilled in the art can combine and combine different embodiments or examples and features of different embodiments or examples described in this specification without conflicting with each other.

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。The above descriptions are only preferred embodiments of the present invention, and are not intended to limit the present invention. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principles of the present invention shall be included in the protection of the present invention. within range.

Claims (9)

1. a kind of storage method of map tile, which is characterized in that the method includes:
S1, electronic map sequence is divided into map tile according to predefined size, and to the map tile after segmentation according to first Pre-defined rule is classified, and b level data files are formed, wherein b is positive integer, and the value of b is 1,2,3 ...;
S2, according to the quantity of map tile in i-stage data file, build c file according to the second pre-defined rule, structure it is every Corresponding several map tiles are stored in one file, wherein i is integer, and the value of i is 0,1 ... (b-1), and c is just whole The value of number, c is 1,2,3 ...;
If S3, c are more than the first predetermined quantity, d file, each described text of structure are built according to third pre-defined rule Corresponding several files are stored in part folder, wherein d is positive integer, and the value of d is 1,2,3 ...;
If S4, d be more than the second predetermined quantity, according to the 4th pre-defined rule build e next stage file, structure each The next stage file stores corresponding several files, and so on, until the upper level stored in next stage file The quantity of file is less than or equal to corresponding predetermined quantity;
The step S1 is specifically included:
Electronic map sequence is divided into a map tiles according to predefined size, and pre- according to first to a map tiles Set pattern is then classified, and b level data files are formed, wherein map tile quantity is i-stage data in i+1 level data file The corresponding prearranged multiple of map tile quantity in file, i are integer, and the value of i is 0,1 ... (b-1), and i-stage data file Middle map tile forms a m*n tile matrix, wherein m, n are positive integer;
The step S2 is specifically included:
According to the line number m of tile matrix in i-stage data file and the value of columns n, c is built in the i-stage data file A file, wherein c=ceiling (m/k1) * ceiling (n/k2), wherein k1 and k2 is positive integer, 16≤k1≤m, and 16 ≤k2≤n;Wherein, c file forms a g*h document matrix, c=g*h in i-stage data file, wherein g, h are just Integer;
The step S3 is specifically included:
According to the value of the line number g and columns h of document matrix in i-stage data file, d are built in i-stage data file File stores corresponding several files in each described file of structure, wherein d=ceiling (g/k3) * Ceiling (h/k4), wherein k3, K4 are positive integer;Wherein, d file forms a l*w text in i-stage data file Part presss from both sides matrix, and d=l*w, l, w are positive integer;
The step S4 is specifically included:
According to the line number l and columns w of file in i-stage data file, e next stage text is built in i-stage data file Part presss from both sides, and stores corresponding several files in each described next stage file of structure, wherein e=ceiling (l/ K5) * ceiling (w/k6), wherein k5, k6 are positive integer.
2. the storage method of map tile as described in claim 1, which is characterized in that each file is by file header, index Table and data content composition, wherein file header stores the essential information of map tile and metadata description information, rope in this document Draw table and store map tile index value in this document, data content includes map tile and metadata information, the metadata letter The MD5 codes of map tile are included at least in breath.
3. the storage method of map tile as claimed in claim 2, which is characterized in that do not change fixed size and Metadata information is stored in before data field, after map tile and the metadata information to change are stored in data field Face.
4. the storage method of map tile as described in claim 1, which is characterized in that using Morton code coding rules to every The storage order of map tile in one file is resequenced, to optimize the storage order of map tile.
5. the storage method of map tile as claimed in claim 3, which is characterized in that when map tile and metadata information are sent out When raw update, if updated map tile and the size of metadata information are than the map tile and metadata information before update It is big slight, then updated map tile and metadata information are directly overlie in original storage location and is updated corresponding Concordance list;If updated map tile and the size of metadata information than before update map tile and metadata information it is big It is small big, then it will more if can not find discarding data area by updated map tile and metadata information write-in discarding data area The end of file where map tile and metadata information after new are added to, while updating corresponding concordance list.
6. a kind of storage system of map tile, which is characterized in that the system comprises:
Tile diversity module for electronic map sequence to be divided into map tile according to predefined size, and presses map tile It is classified according to the first pre-defined rule, forms b level data files, wherein b is positive integer, and the value of b is 1,2,3 ...;
File builds module, and for the quantity according to map tile in i-stage data file, c is built according to the second pre-defined rule A file stores corresponding several map tiles in each described file of structure, wherein and i is integer, the value of i is 0, 1 ... (b-1), c are positive integer, and the value of c is 1,2,3 ...;
File builds module, if being more than the first predetermined quantity for c, d file, structure are built according to third pre-defined rule Corresponding several files are stored in each the described file built, wherein d is integer, and the value of d is 1,2,3 ...;
Next stage file builds module, if being more than the second predetermined quantity for d, according under the 4th pre-defined rule structure e First grade file presss from both sides, each described next stage file of structure stores corresponding several files, and so on, until next The quantity for the upper level file stored in grade file is less than or equal to corresponding predetermined quantity;
The tile diversity module is specifically used for:
Electronic map sequence is divided into a map tiles according to predefined size, and pre- according to first to a map tiles Set pattern is then classified, and b level data files are formed, wherein map tile quantity is i-stage data in i+1 level data file The corresponding prearranged multiple of map tile quantity in file, i are integer, and the value of i is 0,1 ... (b-1), and i-stage data file Middle map tile forms a m*n tile matrix, wherein m, n are positive integer;
The file structure module is specifically used for:
According to the line number m of tile matrix in i-stage data file and the value of columns n, c is built in the i-stage data file A file, wherein c=ceiling (m/k1) * ceiling (n/k2), wherein k1 and k2 is positive integer, 16≤k1≤m, and 16 ≤k2≤n;Wherein, c file forms a g*h document matrix, c=g*h in i-stage data file, wherein g, h are just Integer;
The file structure module is specifically used for:
According to the value of the line number g and columns h of document matrix in i-stage data file, d are built in i-stage data file File stores corresponding several files in each described file of structure, wherein d=ceiling (g/k3) * Ceiling (h/k4), wherein k3, K4 are positive integer;Wherein, d file forms a l*w text in i-stage data file Part presss from both sides matrix, and d=l*w, l, w are positive integer;
The next stage file structure module is specifically used for:
According to the line number l and columns w of file in i-stage data file, e next stage text is built in i-stage data file Part presss from both sides, and stores corresponding several files in each described next stage file of structure, wherein e=ceiling (l/ K5) * ceiling (w/k6), wherein k5, k6 are positive integer.
7. the storage system of map tile as claimed in claim 6, which is characterized in that the system also includes:
Memory module stores each file for the form according to file header, concordance list and data content, Chinese Part head stores the essential information of map tile and metadata description information, concordance list in this document and stores map tile in this document Index value, data content include map tile and metadata information, and the MD5 of map tile is included at least in the metadata information Code.
8. the storage system of map tile as claimed in claim 6, which is characterized in that the system also includes:
Optimization module, for carrying out weight to the storage order of the map tile in each file using Morton codes coding rule New sort, to optimize the storage order of map tile.
9. the storage system of map tile as claimed in claim 7, which is characterized in that the memory module is additionally operable to:
When map tile and metadata information update, if updated map tile and the size of metadata information ratio are more Map tile and metadata information before new it is big slight, then updated map tile and metadata information are directly overlie In storage location originally and update corresponding concordance list;If updated map tile and the update of the size of metadata information ratio The size of preceding map tile and metadata information is big, then discarding data is written in updated map tile and metadata information Area, if can not find discarding data area, the end of file where updated map tile and metadata information are added to, together The corresponding concordance lists of Shi Gengxin.
CN201510581736.7A 2015-09-11 2015-09-11 A kind of storage method and its storage system of map tile Expired - Fee Related CN105205126B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510581736.7A CN105205126B (en) 2015-09-11 2015-09-11 A kind of storage method and its storage system of map tile

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510581736.7A CN105205126B (en) 2015-09-11 2015-09-11 A kind of storage method and its storage system of map tile

Publications (2)

Publication Number Publication Date
CN105205126A CN105205126A (en) 2015-12-30
CN105205126B true CN105205126B (en) 2018-08-24

Family

ID=54952809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510581736.7A Expired - Fee Related CN105205126B (en) 2015-09-11 2015-09-11 A kind of storage method and its storage system of map tile

Country Status (1)

Country Link
CN (1) CN105205126B (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383851A (en) * 2016-08-31 2017-02-08 福建星网视易信息系统有限公司 Multimedia playing concurrent connection number optimization method, apparatus and system
CN107301194B (en) * 2016-10-09 2021-01-01 上海炬宏信息技术有限公司 Compressed storage and release method of tile type grid map
CN107451277A (en) * 2017-08-04 2017-12-08 光典信息发展有限公司 Image file processing method and device
CN107481195A (en) * 2017-08-24 2017-12-15 山东慧行天下文化传媒有限公司 Method and device based on more sight spot region intelligence sectional drawings generation electronic map
CN109427063A (en) * 2017-08-30 2019-03-05 广州极飞科技有限公司 The storage method and device of image data
CN108874905A (en) * 2018-05-24 2018-11-23 西安恒歌数码科技有限责任公司 A kind of high-efficiency storage method of magnanimity geographic information tile data
CN110209750B (en) * 2019-05-08 2022-04-26 杭州迦智科技有限公司 Map processing method, device, storage medium and processor
CN111159322B (en) * 2019-12-17 2020-09-08 广西交通设计集团有限公司 Dynamic slicing and server side caching method for map
CN111597283A (en) * 2020-04-28 2020-08-28 杨军 Map tile updating method, device, equipment and storage medium
CN111767415B (en) * 2020-07-01 2021-03-16 成都星时代宇航科技有限公司 Tile publishing method and device, electronic equipment and computer readable storage medium
CN112131333A (en) * 2020-09-29 2020-12-25 中国船舶重工集团公司第七二四研究所 Tile map storage method based on oracle data file
CN114625816A (en) * 2021-02-02 2022-06-14 亚信科技(中国)有限公司 Map tile processing method, device, electronic device and computer storage medium
CN113901013B (en) * 2021-10-12 2025-01-03 天津市测绘院有限公司 Multi-version file management method and device suitable for surveying and mapping projects
CN114285699B (en) * 2021-12-20 2023-06-06 徐工汉云技术股份有限公司 Method and device for realizing uniqueness of terminal in distributed gateway session
CN113987233B (en) * 2021-12-30 2022-03-29 成都国星宇航科技有限公司 Tile request method and device and electronic equipment
CN117171412A (en) * 2023-11-03 2023-12-05 威海英博智能科技有限公司 Ship design modification opinion management method, system and ship design method

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1698043A (en) * 2003-04-25 2005-11-16 奥林巴斯株式会社 Direct recording device and direct recording method
US8219830B2 (en) * 2009-07-17 2012-07-10 International Business Machines Corporation Apparatus and method for management for file aggregates and file directories
CN103577123A (en) * 2013-11-12 2014-02-12 河海大学 Small file optimization storage method based on HDFS
CN103744855A (en) * 2013-11-29 2014-04-23 航天恒星科技有限公司 Tile map storage method based on aggregation files
CN104050210A (en) * 2013-03-04 2014-09-17 虚拟现实软件 Method For Providing And Receiving Information Representing Physical Features Of A Portion Of A Three-dimensional Surface
CN104166736A (en) * 2014-09-04 2014-11-26 北京国双科技有限公司 Storage method and device of reverse index files
CN104866179A (en) * 2015-05-29 2015-08-26 小米科技有限责任公司 Method and apparatus for managing terminal application program

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1698043A (en) * 2003-04-25 2005-11-16 奥林巴斯株式会社 Direct recording device and direct recording method
US8219830B2 (en) * 2009-07-17 2012-07-10 International Business Machines Corporation Apparatus and method for management for file aggregates and file directories
CN104050210A (en) * 2013-03-04 2014-09-17 虚拟现实软件 Method For Providing And Receiving Information Representing Physical Features Of A Portion Of A Three-dimensional Surface
CN103577123A (en) * 2013-11-12 2014-02-12 河海大学 Small file optimization storage method based on HDFS
CN103744855A (en) * 2013-11-29 2014-04-23 航天恒星科技有限公司 Tile map storage method based on aggregation files
CN104166736A (en) * 2014-09-04 2014-11-26 北京国双科技有限公司 Storage method and device of reverse index files
CN104866179A (en) * 2015-05-29 2015-08-26 小米科技有限责任公司 Method and apparatus for managing terminal application program

Also Published As

Publication number Publication date
CN105205126A (en) 2015-12-30

Similar Documents

Publication Publication Date Title
CN105205126B (en) A kind of storage method and its storage system of map tile
US10089331B2 (en) System and method for storing a dataset of image tiles
CN108647336B (en) A method for processing vector graphics using key scales and tile-like techniques
CN108664619B (en) A primitive storage and scheduling method for massive line-drawn topographic maps based on tile-like technology
CN101059949B (en) Mass image data compression, storage and display method
CN103744855B (en) A kind of tile map storage method based on aggregate file
CN110383261A (en) Stream selection for multi-stream storage
CN106990915B (en) Storage resource management method based on storage medium type and weighted quota
CN110291518A (en) Merging tree garbage indicators
US20180103259A1 (en) System and method for multi-resolution raster data processing
CN106682110B (en) Image file storage and management system and method based on Hash grid index
CN107180092A (en) A kind of control method of file system, device and terminal
CN105808449B (en) A kind of virtual memory image method for edition management and system for virtual machine
US11947826B2 (en) Method for accelerating image storing and retrieving differential latency storage devices based on access rates
US10013474B2 (en) System and method for hierarchical synchronization of a dataset of image tiles
CN112784188B (en) Page rendering method and device
CN109933564A (en) File system management method, device, terminal and medium for fast rollback based on linked list and N-ary tree structure
CN112395288A (en) R-tree index merging and updating method, device and medium based on Hilbert curve
US20240393928A1 (en) Generating aggregate data geospatial grid cells for encoding in vector tiles
CN118484438B (en) Global level vector tile data compression construction and dynamic LOD loading method
Openshaw et al. A geographical information and mapping system for the BBC Domesday optical discs
CN108595589A (en) A kind of efficient access method of magnanimity science data picture
Zhong et al. A novel method to manage very large raster data on distributed key-value storage system
Li et al. An improved distributed storage model of remote sensing images based on the HDFS and pyramid structure
CN104809217A (en) GIS raster data cloud storage method

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180824