1.一种关系型和Key-Value型数据库空间数据索引方法,其特征在于:操作步骤如下:步骤一:将空间矢量数据组织成图层,根据图层数据的坐标范围划分出索引层和索引网格,每个网格赋予唯一的二维行列编码和一维编码,具体为:(a)空间矢量数据按分类组织成图层,根据图层的坐标范围或图层所在的参考系的坐标范围划分索引层,索引层最多为24层,最上面的为0号索引层,只有1个网格,表示整个坐标范围,1号索引层有4个网格,是在0号索引层的网格上四等分得到的,以此类推,N号索引层的网格是在N-1号索引层的每个网格上四等分得到的,最底层为23号索引层,有
23 23
2 ×2 个网格;
(b)根据索引层上的网格所在的行和列,赋予每个网格唯一的二维行列编码;
(c)1号索引层的4个网格的二维行列编码可以变换为一维编码0、1、2、3,将1号索引层的每个网格继续四等分,得到2号索引层的网格,其一维编码由1号索引层的一维编码附加2号索引层网格0,1,2,3编码组成,其余索引层的网格都按此规则赋予唯一的一维编码;
步骤二:遍历图层的每个要素,根据要素的图形计算其与索引网格之间的覆盖关系,从而获得要素所属的索引层和覆盖的网格,具体为:①所述的要素记为s,当s为点图形时,且s在某个网格内,则表示为s覆盖了该网格,当s为线或面图形时,且s与某网格相交,则表示为s覆盖了该网格,s覆盖的全部网格坐标范围记为GBR(X1,Y1,X2,Y2),s覆盖的i号索引层的网格数记为s(i);
②对于线或多边形图层数据中的任一要素s,根据s的外包矩形坐标范围,从23号索引层开始,或者根据s的尺度特征从小于23的某个索引层开始,逐层向上计算s(i),其中i>0;
③当s(N)=4时,判定s在N号索引层上的必要条件是覆盖最多4个网格,如果:
4=s(N)>...>s(N-k)=s(N-k-1),(k=1,2,...,N-1),则s在N-k索引层上,否则s在N号索引层上,N最大为23,最小为1;
④对于空间点要素图层,其全部点的集合构成点云,以点云的平均密度为4的半径R作为网格参考尺度,可以确定索引层号,然后再逐个确定点在该索引层上所覆盖的网格;
④记录s的所属索引层号、所覆盖网格和覆盖的全部网格坐标范围GBR(X1,Y1,X2,Y2);
⑤当图层的全部要素遍历结束,记下最大索引层号和最小索引层号,作为图层的有效索引层范围;
步骤三:将要素所属的网格的行列编码作为要素的空间索引编码存储在关系型数据库的图层索引表中,网格的一维编码经复合设计后作为Key-Value型数据库中的图层索引表的行键编码,其具体为:
1)图层要素存储在图层数据表中,包括要素ID、要素的空间和属性信息;
2)每个图层数据表对应一个图层索引表,关系型数据库中的图层索引表存储要素索引网格的二维行列编码,Key-Value型数据库中的图层索引表将索引网格的行键编码作为行键存储;
3)所有图层的坐标范围和有效索引层范围都存储在一张图层元数据表中。
2.根据权利要求1所述的方法,其特征在于:步骤三中所述的关系型数据库和Key-Value型数据库图层索引表,其结构是:关系数据库图层索引表的字段有要素ID、索引网格的行和列编码、网格坐标范围GBR(X1,Y1,X2,Y2),并对它们建立数据库联合索引;
Key-Value数据库图层索引表的每一行代表唯一的索引网格,包括行键编码、网格的行和列编码、网格的空间坐标范围、覆盖本网格的要素ID集合。
3.根据权利要求1所述的方法,其特征在于:步骤三中所述的图层索引表中二维行列编码和行键编码,其编码方式为:关系型数据库中的图层索引表存储的要素索引网格的行和列编码分别为4字节整数,首字节为网格的索引层号,其余3个字节表示网格的行和列号;
Key-Value型数据库中的图层索引表的行键为8字节编码,首字节为索引层号,6个字节存储索引网格的一维编码,1个字节保留未用。