CN101324896A - 一种矢量数据的存储方法、查询方法和管理*** - Google Patents
一种矢量数据的存储方法、查询方法和管理*** Download PDFInfo
- Publication number
- CN101324896A CN101324896A CNA2008101171469A CN200810117146A CN101324896A CN 101324896 A CN101324896 A CN 101324896A CN A2008101171469 A CNA2008101171469 A CN A2008101171469A CN 200810117146 A CN200810117146 A CN 200810117146A CN 101324896 A CN101324896 A CN 101324896A
- Authority
- CN
- China
- Prior art keywords
- file
- solid
- layer
- sign
- vector data
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种矢量数据的存储方法,以及对根据此方法存储的矢量数据进行查询的方法和相应的管理***。其中该存储方法具体包括下列步骤:11)将原始shapefile文件的图层进行区域划分;12)将所述划分的区域进行编码;13)将原始shapefile文件的所述图层中的几何体根据所属区域的编码进行派分;14)将派分到相同编号的所述图层中的几何体的集合存储为一个文件;15)根据所述存储的文件,生成配置文件,用于记录图层的基本信息。本发明简化了***实现,在保证基本功能的同时,抛弃了数据库中的冗余功能,弱化了事务语义,节省了***资源,提高***性能。
Description
技术领域
本发明涉及计算机数据管理方法和***,特别是地理信息***中的矢量数据存储方法,相应的查询方法和管理***。
背景技术
地理数据是以地球表面作为基本参照框架的空间数据及其属性信息。为了便于获取、存储、分析和管理地理数据,建立了地理信息***,简称GIS***(geographic information system)。GIS***表示了真实世界的各种目标,如道路、土地、海拔等等。GIS中常用的数据结构包括矢量数据和栅格数据。矢量数据结构中,一个区域或一个地图化分为若干个多边形,每个多边形由若干条线段或弧组成,矢量数据结构数据存储量小、图形精度高、容易定义单个空间对象,但是处理空间关系比较费时,常用于描述图形数据。栅格数据结构中,地理实体用格网单元的行和列为位置标识,栅格数据简单、容易处理空间位置关系,但数据存储量大,图形精度低,常用于描述图像和影像数据。
当前,多采用文件***来管理栅格数据,采用数据库来管理矢量数据。但是矢量数据既包含适合用数据库来管理的结构化数据,也包含用数据库不易管理的半结构化数据。为了让数据库能够支持对半结构化矢量数据的存储、查询和操作,就需要对传统的数据库进行扩展,进而形成了被称为空间数据库管理***(Spatial DataBase Management System-SDBMS)的扩展数据库。
尽管各大数据库厂商不断优化对矢量数据的管理,但是依然存在着一些弊端。
数据库提供了丰富的SQL语义,支持复杂的查询操作,但是对于相对简单的空间数据查询而言,这些语义功能很多都是空间数据处理过程中不会使用到的,反而在入库和查询时造成额外的***资源浪费;
数据库保证了在其中进行的操作都是强事务语义的,但是对于写少读多的空间数据访问模式而言,大多数对空间数据的访问是不需要事务性语义来保证的,保证强事务性语义反而会带来***运行时较严重的性能损失;
数据库***通常都是运行在一个节点上的,随着数据规模的不断扩大,单点的处理能力逐渐成为瓶颈,单点故障问题日趋严重,而支持集群方式的数据库价格非常昂贵。
发明内容
本发明要解决的技术问题为避免***资源浪费和性能损失,提供一种在满足矢量数据管理应用的前提下,实现更简单的方法和***。
根据本发明的第一方面,提出了一种矢量数据的存储方法,具体包括下列步骤:
11)将原始shapefile文件的图层进行区域划分;
12)将所述划分的区域进行编码;
13)将所述原始shapefile文件的图层中的几何体根据所属区域的编码进行派分;
14)将派分到相同编号的所述图层中的几何体的集合存储为一个文件;
15)根据所述存储的文件,生成配置文件,用于记录图层的基本信息。
该存储方法中,所述原始shapefile文件的大小大于阈值。
该存储方法中,所述步骤12)包括下列步骤:
21)在X轴和Y轴上,分别给所述划分的区域赋值Xi和Yj;
22)组合所述Xi和Yj,计算所述区域的编码。
该存储方法中,所述步骤21)的Xi和Yj均为二进制值,且Xi=xi,n-1xi,n-2…xi,0,Yj=yj,n-1yj,n-2…yj,0,其中x和y分别表示X和Y的每位的值,n是所述原始shapefile文件的图层在X轴方向和Y轴方向被划分的份数;
所述步骤22)进一步包括:
221)对于所述Xi和Yj,根据公式Vij=yj,n-1xi,n-1…yj,0xi,0计算Vij;
222)将所述Vij用十进制表示,根据VFij=(yj,n-1xi,n-1)dec…(yj,0xi,0)dec计算所述区域的编码。
该存储方法中,所述步骤13)包括下列步骤:
31)读取所述图层中的几何体,获得所述几何体的最小外包矩形;
32)将所述最小外包矩形的每个顶点所在的区域的编码作为所述最小外包矩形的每个顶点的编码;
33)比较所述顶点的编码,从左到右按位扫描,找到第一个值不相等的位k,如果k≠1则此几何体被派分的编号为a1a2…ak-1;
34)如果k=1,则此几何体被派分的编号为″root″。
该存储方法中,所述步骤15)的所述图层的基本信息包括:所述图层的名字,所述图层的最小外包矩形,所述几何体的类型,所述几何体的总数目,所述原始shapefile文件的图层的划分信息。
该存储方法中,如果矢量数据的文件不是shapefile格式而是其它格式,则所述步骤11)还包括将所述矢量数据的文件转为所述原始shapefile文件。
根据本发明的第二方面,还提供了一种管理根据上述的方法存储的矢量数据的***,包括面向用户的GIS界面、文件***和空间数据管理***:
所述面向用户的GIS界面,用于提供访问GIS数据的接口和界面;
所述文件***,用于存储shapefile文件和读取所述shapefile文件的图层中的几何体,并且根据查询条件判断所述几何体与矩形范围的关系,根据所述图层的划分信息计算在所述查询范围内的几何体,并返回给所述空间数据管理***,其中所述shapefile文件包括对原始shapefile文件的图层进行区域划分所得到的所述相同编号的几何体;
空间数据管理***,用于根据图层标识读取所述图层的划分信息,判断所述几何体与不规则图形范围的关系,将所述存储节点返回的几何体传输给所述面向用户的GIS界面。
该管理***中,所述文件***是分布式文件***。
该管理***中,所述文件***安装在存储节点中,所述空间数据管理***安装在计算节点中;且至少有两个存储节点。
根据本发明的第三方面,还提供了一种查询根据上述存储方法存储的矢量数据的方法,根据图层标识查询所述图层的基本信息。
根据本发明的第四方面,还提供了一种查询根据上述存储方法存储的矢量数据的方法,根据图层标识和几何体的标识查询所述几何体的信息。
根据本发明的第五方面,还提供了一种查询根据上述存储方法存储的矢量数据的方法,根据图层标识、矩形范围和标志位查询所述矩形范围内所有几何体,其中所述标志位标识所述所查询的几何体是被所述矩形范围全部包含或部分包含。
在上述根据本发明第五方面提供的查询方法中,包括下列步骤:
21)根据所述图层标识找到相应的配置文件;
22)从所述相应的配置文件中读取所述图层的划分信息;
23)根据所述矩形范围以及所述图层的划分信息,生成两个文件列表file_list1和file_list2,其中,所述文件列表内文件内的几何体所涉及的区域与所述矩形范围有共同部分,且file_list1中的文件中的几何体都包含在矩形中;
24)读取file_list1中的文件,将所有几何体加入到结果列表中;读取file_list2中的文件,判断所述file_list2中的几何体是否和所述矩形范围有共同的部分,如果是,将所述几何体加入结果列表;
25)返回所述结果列表。
根据本发明的第六方面,还提供了一种查询根据上述存储方法存储的矢量数据的方法,其特征在于,根据图层标识、不规则图形范围和标志位,查询所述不规则图形内所有的几何体,其中所述标志位标识所述所查询的几何体被所述不规则图形全部包含或部分包含。
根据本发明的第七方面,还提供了一种查询根据上述存储方法存储的矢量数据的方法,其特征在于,根据图层标识、矩形范围、标志位和特定条件,查询该矩形范围内满足条件的所有的几何体,其中所述标志位标识所查询的几何体是被矩形范围全部包含或部分包含。
根据本发明的第八方面,还提供了一种查询根据上述存储方法存储的矢量数据的方法,其特征在于,根据图层标识、不规则图形范围、标志位和特定条件,查询所述不规则图形范围内所有的几何体,其中该标志位标识所查询的几何体是被不规则图形范围全部包含或部分包含。
本发明简化了***实现,在保证基本功能的同时,抛弃了数据库中的冗余功能,弱化了事务语义,节省了***资源,提高***性能。
本发明通过分布式文件***的聚合输入/输出带宽,提高了***的输入/输出性能;同时,采用通过将计算分布到集群中的节点上运行实现并行,提高了***的计算能力。
本发明通过分布式文件***采用副本的策略来保证***的可靠性,在***发生损坏或者灾害的时候不至于由于数据过于集中而带来过大的损失;同时,分布式***也保证了***规模可以在线扩展。
附图说明
图1是基于矢量数据管理***(VDMS)的应用***和基于传统空间数据库管理***(SDBMS)的应用***的***结构比较示意图;
图2是根据本发明一个实施例划分的图层示意图;
图3是图2所示的图层基于改进的四叉树算法运算得到的索引结构示意图。
图4是编码过程示意图;
图5是在图2所示的图层中选择一个区域的示意图;
图6是VDMS和PostgreSQL的性能对比示意图。
具体实施方式
下面结合附图对本发明的具体实施方式作进一步详细的说明,其中:
图1示出了现有技术的基于传统空间数据库管理***的GIS应用***和根据本发明的一个优选实施例提供的基于矢量数据管理***的GIS应用***。
其中现有技术的GIS应用***包括:1.面向用户的GIS界面-空间应用,其用于提供对GIS数据进行访问的接口和界面;2.扩展的空间数据库,用于管理空间数据,以及对空间数据进行计算,进一步包括空间应用接口、核心技术和对象关系数据库接口;3.对象关系数据库,用于对象关系数据存储,也即存储空间数据。
基于矢量数据管理***的GIS应用***中,矢量数据管理***除了包括面向用户的GIS界面、空间应用接口和核心技术外,还包括文件***和相应的文件***接口。其中,文件***优选为分布式文件***。文件***用于存储shapefile文件和读取shapefile文件中的几何体,并且根据查询条件判断几何体与矩形范围的关系,根据图层的划分信息计算查询范围内的几何体,并返回给文件***接口,其中所述shapefile文件包括对图层进行区域划分所得到的具有相同编号的几何体。通过文件***接口对存储于文件***中的数据进行访问。该接口与核心技术和空间应用接口共同构成空间数据管理***,用于根据图层标识读取所述图层的划分信息,判断所述几何体与不规则图形范围的关系,将文件***返回的几何体传输给面向用户的GIS界面;还用于判断几何体是否满足查询的其它特定条件。
根据本发明的一个优选实施例,上述文件***安装于存储节点,优选的,至少包括两个存储节点。空间数据管理***安装于计算节点。所述的存储节点和计算节点通过网络连接。
本发明将矢量空间数据以shapefile的格式存储在文件***中,对于其他格式的数据,先利用工具转为shapefile格式。对于较小文件,直接存入分布式文件***中;对于较大文件,首先利用空间索引算法对原始文件中的图层进行区域划分,对划分得到的区域进行编码,把编码结果作为文件名的一部分,将所述图层中的几何体根据所属区域的编码进行派分(dispatch),将相同编号的几何体的集合存入文件,并将文件存入文件***中。具体实现如下:
给定一个原始shapefile文件,优选的,首先根据***给出的阈值T判断原始shapefile的文件大小,其中该阈值是一个表示文件大小的数值,优选为1M字节或一个更大值。对于文件大小小于T的文件,直接将其存入文件***中;对于文件大小大于T的文件,根据空间索引算法,对其进行区域划分。
图层被划分为多少个区域,可由用户指定,也可根据原始shapefile文件信息计算。后者为***读入原始Shapefile文件的文件信息,得到原始Shapefile文件的大小,假设原始Shapefile文件为M字节,则原始Shapefile文件的图层被分成的份数为N=n×n,其中n=[lg(lg(M/T))],[M]表示对M进行向上取整。读入整个图层的坐标信息,得到其最小外包矩形。将整个图层沿X轴方向和Y轴方向都均分为n份,记录X轴和Y轴上的切分点的坐标,如图4.(a)所示。
对上述划分得到的区域进行编码,如图4.(b)(c)所示。
在X轴和Y轴上,给每个区域R赋值Xi和Yj,根据本发明的一个具体实施例,Xi和Yj都是n位的二进制值,其中0≤i,j<n。从0开始,沿X轴从左至右,Y轴方向从上至下,依次增1。在每一个值之前补0以凑足n位。Xi=xi,n-1xi,n-2…xi,0,Yj=Yj,n-1yj,n-2…yj,0,其中xi,n-1和Yj,n-1分别表示Xi和Yj的二进制值的第n位的值,其它类推。如图4.(b)中所示,其中例如X1=x1,1x1,0=01,Y2=y2,1y2,0=10。
对每个区域,组合上述所得的X轴和Y轴方向的值Xi和Yj,计算所述区域的编码。在上述具体实施例中,令Vij=yj,n-1xi,n-1…yj,0xi,0,如图4.(b)中所示,其中例如V12=y2,1x1,1y2,0x1,0=1001。
用十进制表示每个区域的值Vij,VFij=(yj,n-1xi,n-1)dec…(yj,0xi,0)dec,其中()dec表示将括号内数值转为十进制数值,则VFij就是区域Rij的最终编码,如图4.(c)所示,其中例如VF12=(y2,1x1,1)dec(y2,0x1,0)dec=(10)dec(01)dec=21。
将原始文件中的几何体按照其最小外包矩形和划分的区域的关系进行派分。
读取原始文件中的每个几何体,获得其最小外包矩形(MBR)。将最小外包矩形的每个顶点所在区域的编码作为每个顶点的VF编码。比较几何体的四个顶点的VF编码值,从左到右按位扫描,找到第一个值不相等的位k。例如,假设四个点为A=a1a2…an-1,B=b1b2…bn-1,C=c1c2…cn-1,D=d1d2…dn-1。找到一位k,且k≠1,使得a1=b1=c1=d1,a2=b2=c2=d2,…,ak-1=bk-1=ck-1=dk-1;而ak,bk,ck,dk不全相等,则此几何体被派分的编号为a1a2…ak-1。如果k=1,则此几何体被派分的编号为″root″。
将所有派分到相同编号的几何体的集合存成一个新的文件,并存储在用户指定的结果目录下。
在用户指定的结果目录下生成若干个新的shapefile文件后,在该目录里面生成一个配置文件,用来记录图层的基本信息,包括:图层的名字,图层的最小外包矩形,几何体的类型,几何体的总数目,原始shapefile文件的图层的划分信息。其中原始的shapefile文件的图层的划分信息进一步包括:划分得到的区域的个数以及区域的详细信息。
对如上存储的矢量数据的查询方法有多种,包括:
方法一、给定一个图层标识,查询图层的基本信息。
方法二、给定一个图层标识、一个几何体标识,查询对应的几何体的信息。
方法三、给定一个图层标识、一个矩形范围、一个标志位,其中该标志位标识所求的几何体是被矩形范围全部包含还是部分包含,查询矩形范围内所有的几何体。
方法四、给定一个图层标识、一个不规则图形范围、一个标志位,其中该标志位标识所查询的几何体是被不规则图形范围全部包含还是部分包含,查询不规则图形范围内所有的几何体。
方法五、给定一个图层标识、一个矩形范围、一个标志位、一个特定的条件,其中该标志位标识所查询的几何体是被矩形范围全部包含还是部分包含,查询该矩形范围内满足条件的所有的几何体。
方法六、给定一个图层标识、一个不规则图形范围、一个标志位、一个特定的条件,其中该标志位标识所查询的几何体是被不规则图形范围全部包含还是部分包含,查询不规则图形范围内所有的几何体。
其中上述方法三的矩形范围、方法四的不规则图形范围和方法五的矩形范围统称为查询范围。
下面将对上述五种查询方法的具体实施方式进行具体描述。
对于方法一,根据图层标识找到图层对应的目录,进而找到配置文件,读出配置文件中的具体内容。
对于方法二,根据图层标识找到图层对应的目录,进而找到配置文件,从配置文件中读取该图层的划分信息,再根据几何体标识定位到几何体所在shapefile文件中的位置,读入几何体的属性,并且返回;如果没找到几何体,返回空。
方法三包括以下步骤:
步骤10、根据图层标识找到图层对应的目录,进而找到配置文件。
步骤11、从配置文件中读取该图层的划分信息。
步骤12、根据矩形范围的边界坐标以及图层的划分信息,生成两个文件列表,file_list1和file_list2,这两个文件列表中的文件内的几何体所涉及的区域与矩形范围有共同部分。而且file_list1中的文件中的几何体被矩形范围全部包含;根据标志位,file_list2中的文件中的几何体或者被矩形范围全部包含或者部分包含,或者与矩形范围没有共同部分。如果标示全部包含,执行步骤13;如果标示部分包含,执行步骤14。
步骤13、读取file_list1中的文件,将所有几何体加入到结果列表中;读取file_list2中的文件,逐个扫描其中的几何体,如果几何体被矩形范围全部包含,那么,将该几何体加入到结果列表中。
步骤14、读取file_list1中的文件,将所有的几何体加入到结果列表中;读取file_list2中的文件,逐个扫描其中的几何体,如果几何体被矩形范围部分包含,将该几何体加入到结果列表中。
步骤15、返回结果列表。
方法四与方法三类似,根据不规则图形范围的特点该方法包括以下步骤:
步骤20、根据不规则图形范围计算得到其外切矩形。
步骤21、根据图层标识、外切矩形和标志位,计算在外切矩形范围内的几何体。
步骤22、对从步骤21中得到的几何体依次做判断,如果标志位标识为部分包含,且几何体被不规则图形范围全部包含或者部分包含,将几何体加入到最终结果列表中;如果标志位标识全部包含,则将几何体加入到最终结果列表中。
步骤23、返回最终结构列表。
方法五可以在执行方法三的基础上进一步操作,从而得到结果,具体包括以下步骤:
步骤30、根据图层标识、矩形范围、标志位,计算在所述矩形范围内的几何体。
步骤31、对从步骤30中得到的几何体,依次判断是否满足特定条件,如果是,则将几何体加入到最终的结果列表中。
步骤32、返回最终结果列表。
方法六具体包括以下步骤:
步骤40、根据图层标识、不规则图形范围、标志位,计算在所述不规则图形范围内的几何体。
步骤41、对从步骤40中得到的几何体,依次判断是否满足特定条件,如果是,则将几何体加入到最终的结果列表中。
步骤42、返回最终结构列表。
下面结合具体实施例进一步阐述。
图2所示的是一个原始Shapefile文件内的图层,里面一共16个几何体,假如该原始shapefile文件的名字是example.shp。现在将这个图层存入***中。
首先将图层分成22×22个区域。
然后,对每个区域进行编码,编码后的结果如图4(C)所示。
将几何体进行派分。派分的结果如表1所示:
表1几何体派分结果表
编号 | 几何体 | 编号 | 几何体 | 编号 | 几何体 |
00 | 1 | 13 | 9 | 32 | |
01 | 2 | 20 | 33 | ||
02 | 21 | 12 | 0 | 3、4 | |
03 | 22 | 1 | 6、8 |
10 | 5 | 23 | 15 | 2 | 13、14 |
11 | 7 | 30 | 3 | 16 | |
12 | 31 | Root | 10 |
将各个几何体存入相应文件,其中文件名是“example_”加上相应编号,如表2所示:
表2几何体及相应文件表
文件名 | 几何体 | 文件名 | 几何体 | 文件名 | 几何体 |
Example_00.shp | 1 | Example_21.shp | 12 | Example_3.shp | 16 |
Example_01.shp | 2 | Example_23.shp | 15 | Example_Root.shp | 10 |
Example_10.shp | 5 | Example_0.shp | 3、4 | Example_0.shp | 3、4 |
Example_11.shp | 7 | Example_1.shp | 6、8 | ||
Example_13.shp | 9 | Example_2.shp | 13、14 |
最后将上述所有文件存入到分布式文件***中后,可以查询其中几何体的属性,现在结合该例描述查询过程。假如需要查询的区域如图5中的虚线所示的矩形,查询包含在矩形中的所有几何体。具体查询过程如下:
***先找到图层,读取该图层的划分信息。
找到矩形的4个顶点所在区域的编号,分别为03,13,23,33。确定两个文件列表:file_list1和file_list2。其中file_list1包括的文件为Example_30.shp,file_list2包括的文件为:Example_03.shp、Example_0.shp、Example_12.shp、Example_13.shp、Example_1.shp、Example_21.shp、Example_23.shp、Example_2.shp、Example_31.shp、Example_32.shp、Example_33.shp、Example_3.shp、Example_Root.shp。文件列表中的文件有可能不存在,不存在的文件在处理的过程中被跳过。
将file_list1中的文件中的所有几何体加入到结果集中,在本例中,file_list1中的文件Example_30.shp不存在;对file_list2中的文件中的几何体,将逐一读出,并且和矩形进行包含判断,如果几何体被包含在矩形中,就将该几何体加入到结果集中。最终的结果集为8、10、15、16。
下面说明应用本发明和应用现有的空间数据库对比测试的结果。
测试的环境是一台Dell SC430服务器,Pentuim 4CPU,频率是2.8GHz,2GB DDR内存,80GB硬盘。软件环境为ReadHat AS4.4操作***,内核版本为2.6.20。空间数据库环境为PostgreSQL8.1.7,安装了空间插件PostGIS 1.7。
测试的数据集为95个Shapefile文件,测试主要分为两个部分,入库操作和简单查询操作。
图6示出了对95个文件执行入库操作,矢量数据关系***和PostgreSQL数据库所需时间的对比。从图中可以看出,PostgreSQL在执行95个文件入库操作所需的时间为41.378秒,而将所有的文件分为4×4份再存入到矢量数据管理***中,所花费的总时间16.2630秒,PostgreSQL数据库所需的时间是矢量数据管理***的2.54倍。
图6中还示出了对已经入库的数据集执行5000条简单查询所需时间对比。从时间上来看,PostgreSQL进行这些查询需要132.056秒,而矢量数据管理***执行这些查询只需要78.61秒,PostgreSQL所花的时间是矢量数据管理***的1.68倍。
应该注意到并理解,在不脱离后附的权利要求所要求的本发明的精神和范围的情况下,能够对上述详细描述的本发明做出各种修改和改进。因此,要求保护的技术方案的范围不受所给出的任何特定示范教导的限制。
Claims (22)
1.一种矢量数据的存储方法,包括下列步骤:
11)将原始shapefile文件的图层进行区域划分;
12)将所述划分的区域进行编码;
13)将所述原始shapefile文件的图层中的几何体根据所属区域的编码进行派分;
14)将派分到相同编号的所述图层中的几何体的集合存储为一个文件;
15)根据所述存储的文件,生成配置文件,用于记录图层的基本信息。
2.根据权利要求1所述的方法,其特征在于,所述原始shapefile文件的大小大于阈值。
3.根据权利要求2所述的方法,其特征在于,所述阈值大于或等于1M字节。
4.根据权利要求1或2所述的方法,其特征在于,所述步骤12)包括下列步骤:
21)在X轴和Y轴上,分别给所述划分的区域赋值Xi和Yj;
22)组合所述Xi和Yj,计算所述区域的编码。
5.根据权利要求4所述的方法,其特征在于,所述步骤21)的Xi和Yj均为二进制值,且Xi=xi,n-1xi,n-2…xi,0,Yj=yj,n-1yj,n-2…yj,0,其中x和y分别表示X和Y的每位的值,n是所述原始shapefile文件的图层在X轴方向和Y轴方向被划分的份数;
所述步骤22)进一步包括:
221)对于所述Xi和Yj,根据公式Vij=yj,n-1xi,n-1…yj,0xi,0计算Vij;
222)将所述Vij用十进制表示,根据VFij=(yj,n-1xi,n-1)dec…(yj,0xi,0)dec计算所述区域的编码。
6.根据权利要求1或2所述的方法,其特征在于,所述步骤13)包括下列步骤:
31)读取所述图层中的几何体,获得所述几何体的最小外包矩形;
32)将所述最小外包矩形的每个顶点所在的区域的编码作为所述最小外包矩形的每个顶点的编码;
33)比较所述顶点的编码,从左到右按位扫描,找到第一个值不相等的位k,如果k≠1则此几何体被派分的编号为a1a2…ak-1;
34)如果k=1,则此几何体被派分的编号为″root″。
7.根据权利要求1或2所述的方法,其特征在于,所述步骤15)的所述图层的基本信息包括:所述图层的名字,所述图层的最小外包矩形,所述几何体的类型,所述几何体的总数目,所述原始shapefile文件的图层的划分信息。
8.根据权利要求1或2所述的方法,其特征在于,如果矢量数据的文件不是shapefile格式而是其它格式,则所述步骤11)还包括将所述矢量数据的文件转为所述原始shapefile文件。
9.一种管理根据权利要求1所述的方法存储的矢量数据的***,包括面向用户的GIS界面、文件***和空间数据管理***:
所述面向用户的GIS界面,用于提供访问GIS数据的接口和界面;
所述文件***,用于存储shapefile文件和读取所述shapefile文件的图层中的几何体,并且根据查询条件判断所述几何体与矩形范围的关系,根据所述图层的划分信息计算在所述查询范围内的几何体,并返回给所述空间数据管理***,其中所述shapefile文件包括对原始shapefile文件的图层进行区域划分所得到的所述相同编号的几何体;
空间数据管理***,用于根据图层标识读取所述图层的划分信息,判断所述几何体与不规则图形范围的关系,将所述存储节点返回的几何体传输给所述面向用户的GIS界面。
10.根据权利要求9所述的***,其特征在于,所述文件***是分布式文件***。
11.根据权利要求9或10所述的***,其特征在于,所述文件***安装在存储节点中,所述空间数据管理***安装在计算节点中。
12.根据权利要求11所述的***,其特征在于,至少有两个存储节点。
13.一种查询根据权利要求1所述的方法存储的矢量数据的方法,其特征在于,根据图层标识查询所述图层的基本信息。
14.一种查询根据权利要求1所述的方法存储的矢量数据的方法,其特征在于,根据图层标识和几何体的标识查询所述几何体的信息。
15.一种查询根据权利要求1所述的方法存储的矢量数据的方法,其特征在于,根据图层标识、矩形范围和标志位查询所述矩形范围内所有几何体,其中所述标志位标识所述所查询的几何体是被所述矩形范围全部包含或部分包含。
16.根据权利要求15所述的查询方法,其特征在于,包括下列步骤:
21)根据所述图层标识找到相应的配置文件;
22)从所述相应的配置文件中读取所述图层的划分信息;
23)根据所述矩形范围以及所述图层的划分信息,生成两个文件列表file_list1和file_list2,其中,所述文件列表内文件内的几何体所涉及的区域与所述矩形范围有共同部分,且file_list1中的文件中的几何体都包含在矩形中;
24)读取file_list1中的文件,将所有几何体加入到结果列表中;读取file_list2中的文件,判断所述file_list2中的几何体是否和所述矩形范围有共同的部分,如果是,将所述几何体加入结果列表;
25)返回所述结果列表。
17.一种查询根据权利要求1所述的方法存储的矢量数据的方法,其特征在于,根据图层标识、不规则图形范围和标志位,查询所述不规则图形内所有的几何体,其中所述标志位标识所述所查询的几何体被所述不规则图形全部包含或部分包含。
18.根据权利要求17所述的方法,其特征在于,包括下列步骤:
31)计算所述不规则图形的外切矩形;
32)根据所述外切矩形、图层标识和标志位,计算所述外切矩形内的几何体;
33)判断所述外切矩形内的几何体是否至少存在一部分在所述不规则图形范围内,如果是,则加入结果列表;
34)返回所述结果列表。
19.一种查询根据权利要求1所述的方法存储的矢量数据的方法,其特征在于,根据图层标识、矩形范围、标志位和特定条件,查询该矩形范围内满足条件的所有的几何体,其中所述标志位标识所查询的几何体是被矩形范围全部包含或部分包含。
20.根据权利要求19所述的方法,其特征在于,包括下列步骤:
41)根据所述图层标识、所述矩形范围、所述标志位,计算在所述矩形范围内的几何体;
42)判断所述步骤41)获得的几何体是否满足所述特定条件,如果是,则将所述几何体加入结果列表;
43)返回所述结果列表。
21.一种查询根据权利要求1所述的方法存储的矢量数据的方法,其特征在于,根据图层标识、不规则图形范围、标志位和特定条件,查询所述不规则图形范围内所有的几何体,其中该标志位标识所查询的几何体是被不规则图形范围全部包含或部分包含。
22.根据权利要求21所述的方法,其特征在于,包括下列步骤:
51)根据图层标识、不规则图形范围、标志位,计算在所述不规则图形范围内的几何体;
52)判断步骤51)获得的几何体是否满足所述特定条件,如果是,则将几何体加入结果列表;
53)返回所述结果列表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101171469A CN101324896B (zh) | 2008-07-24 | 2008-07-24 | 一种矢量数据的存储方法、查询方法和管理*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101171469A CN101324896B (zh) | 2008-07-24 | 2008-07-24 | 一种矢量数据的存储方法、查询方法和管理*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101324896A true CN101324896A (zh) | 2008-12-17 |
CN101324896B CN101324896B (zh) | 2010-09-29 |
Family
ID=40188435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101171469A Expired - Fee Related CN101324896B (zh) | 2008-07-24 | 2008-07-24 | 一种矢量数据的存储方法、查询方法和管理*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101324896B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908069A (zh) * | 2010-08-09 | 2010-12-08 | 哈尔滨工程大学 | 可选区域电子海图文件格式转换的装置及转换方法 |
CN101996199A (zh) * | 2009-08-20 | 2011-03-30 | 浙江省公众信息产业有限公司 | 一种基于嵌入式环境的gis引擎实现***及方法 |
CN102750719A (zh) * | 2011-08-29 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种气象地图中区域填充图的绘制方法及装置 |
CN102142000B (zh) * | 2010-02-02 | 2012-12-05 | 武汉大学 | 一种多比例尺tin库耦合存储方法 |
CN101763422B (zh) * | 2010-01-12 | 2013-01-02 | 北京国信慧通科技有限责任公司 | 一种矢量数据的存储及空间索引方法 |
CN103116610A (zh) * | 2013-01-23 | 2013-05-22 | 浙江大学 | 基于HBase的矢量空间大数据存储方法 |
CN104166660A (zh) * | 2013-05-20 | 2014-11-26 | 鸿富锦精密工业(深圳)有限公司 | 基于范围选取的搜索***及方法 |
CN104182472A (zh) * | 2014-07-29 | 2014-12-03 | 浙江大学 | 一种基于内存数据库Redis的土地利用矢量数据存储方法 |
CN105630919A (zh) * | 2015-12-22 | 2016-06-01 | 曙光信息产业(北京)有限公司 | 存储方法及*** |
CN107479871A (zh) * | 2017-06-30 | 2017-12-15 | 广东南方数码科技股份有限公司 | 一种海量的矢量数据的访问和渲染方法、电子设备及存储介质 |
CN107544948A (zh) * | 2017-07-12 | 2018-01-05 | 中国农业大学 | 一种基于MapReduce的矢量文件转换方法和装置 |
CN110059067A (zh) * | 2019-04-04 | 2019-07-26 | 南京南瑞水利水电科技有限公司 | 一种水利空间矢量大数据存储管理方法 |
CN111130569A (zh) * | 2019-12-17 | 2020-05-08 | 佛山科学技术学院 | 一种空间信息数据自适应容错处理方法及*** |
CN111625519A (zh) * | 2020-05-28 | 2020-09-04 | 杨军 | 一种基于数据复杂度的空间矢量数据的建模方法 |
-
2008
- 2008-07-24 CN CN2008101171469A patent/CN101324896B/zh not_active Expired - Fee Related
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996199A (zh) * | 2009-08-20 | 2011-03-30 | 浙江省公众信息产业有限公司 | 一种基于嵌入式环境的gis引擎实现***及方法 |
CN101763422B (zh) * | 2010-01-12 | 2013-01-02 | 北京国信慧通科技有限责任公司 | 一种矢量数据的存储及空间索引方法 |
CN102142000B (zh) * | 2010-02-02 | 2012-12-05 | 武汉大学 | 一种多比例尺tin库耦合存储方法 |
CN101908069A (zh) * | 2010-08-09 | 2010-12-08 | 哈尔滨工程大学 | 可选区域电子海图文件格式转换的装置及转换方法 |
CN102750719A (zh) * | 2011-08-29 | 2012-10-24 | 新奥特(北京)视频技术有限公司 | 一种气象地图中区域填充图的绘制方法及装置 |
CN102750719B (zh) * | 2011-08-29 | 2017-02-01 | 新奥特(北京)视频技术有限公司 | 一种气象地图中区域填充图的绘制方法及装置 |
CN103116610A (zh) * | 2013-01-23 | 2013-05-22 | 浙江大学 | 基于HBase的矢量空间大数据存储方法 |
CN104166660A (zh) * | 2013-05-20 | 2014-11-26 | 鸿富锦精密工业(深圳)有限公司 | 基于范围选取的搜索***及方法 |
CN104182472A (zh) * | 2014-07-29 | 2014-12-03 | 浙江大学 | 一种基于内存数据库Redis的土地利用矢量数据存储方法 |
CN105630919A (zh) * | 2015-12-22 | 2016-06-01 | 曙光信息产业(北京)有限公司 | 存储方法及*** |
CN107479871A (zh) * | 2017-06-30 | 2017-12-15 | 广东南方数码科技股份有限公司 | 一种海量的矢量数据的访问和渲染方法、电子设备及存储介质 |
CN107479871B (zh) * | 2017-06-30 | 2020-09-18 | 广东南方数码科技股份有限公司 | 一种海量的矢量数据的访问和渲染方法、电子设备及存储介质 |
CN107544948A (zh) * | 2017-07-12 | 2018-01-05 | 中国农业大学 | 一种基于MapReduce的矢量文件转换方法和装置 |
CN107544948B (zh) * | 2017-07-12 | 2019-12-06 | 中国农业大学 | 一种基于MapReduce的矢量文件转换方法和装置 |
CN110059067A (zh) * | 2019-04-04 | 2019-07-26 | 南京南瑞水利水电科技有限公司 | 一种水利空间矢量大数据存储管理方法 |
CN110059067B (zh) * | 2019-04-04 | 2022-09-27 | 南京南瑞水利水电科技有限公司 | 一种水利空间矢量大数据存储管理方法 |
CN111130569A (zh) * | 2019-12-17 | 2020-05-08 | 佛山科学技术学院 | 一种空间信息数据自适应容错处理方法及*** |
CN111130569B (zh) * | 2019-12-17 | 2021-11-30 | 佛山科学技术学院 | 一种空间信息数据自适应容错处理方法及*** |
CN111625519A (zh) * | 2020-05-28 | 2020-09-04 | 杨军 | 一种基于数据复杂度的空间矢量数据的建模方法 |
CN111625519B (zh) * | 2020-05-28 | 2021-03-23 | 杨军 | 一种基于数据复杂度的空间矢量数据的建模方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101324896B (zh) | 2010-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101324896B (zh) | 一种矢量数据的存储方法、查询方法和管理*** | |
Nishimura et al. | -HBase: design and implementation of an elastic data infrastructure for cloud-scale location services | |
Hu et al. | Distance indexing on road networks | |
Gaede et al. | Multidimensional access methods | |
JP5027985B2 (ja) | 地理データベースを形成、更新、及び使用する方法及びシステム | |
US7194492B2 (en) | Method and apparatus for efficiently copying distributed data files | |
CN105556511A (zh) | 用于提供位置信息的装置、***和方法 | |
CN104850572A (zh) | HBase非主键索引构建与查询方法及其*** | |
JP2014002519A (ja) | 時空間データ管理システム、時空間データ管理方法、及びそのプログラム | |
CN111723096B (zh) | 一种集成GeoHash和Quadtree的空间数据索引方法 | |
CN109492060A (zh) | 一种基于MBTiles的地图瓦片存储方法 | |
US8880553B2 (en) | Redistribute native XML index key shipping | |
CN111221813B (zh) | 数据库索引以及数据库查询的处理方法、装置及设备 | |
CN116860905B (zh) | 一种城市信息模型的空间单元编码生成方法 | |
CN105357247A (zh) | 基于分层云对等网络的多维属性云资源区间查找方法 | |
CN111639075A (zh) | 一种基于扁平化r树的非关系数据库矢量数据管理方法 | |
Osborn et al. | TIP-tree: A spatial index for traversing locations in context-aware mobile access to digital libraries | |
Tian et al. | A survey of spatio-temporal big data indexing methods in distributed environment | |
CN113407542B (zh) | 一种城市路网车辆出行轨迹的检索方法及*** | |
de Souza Baptista et al. | NoSQL geographic databases: an overview | |
He et al. | Dynamic multidimensional index for large-scale cloud data | |
KR20210077975A (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
Wang et al. | HBase storage schemas for massive spatial vector data | |
EP3995972A1 (en) | Metadata processing method and apparatus, and computer-readable storage medium | |
Bakalov et al. | Time dependent transportation network models |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20100929 Termination date: 20190724 |
|
CF01 | Termination of patent right due to non-payment of annual fee |