线性要素空间索引构建方法、系统和检索方法及其系统的制作方法

文档序号:6507848阅读:229来源:国知局
线性要素空间索引构建方法、系统和检索方法及其系统的制作方法
【专利摘要】本发明公开了一种线性要素空间索引构建方法、系统及其检索方法和系统,涉及空间信息系统【技术领域】。该构建方法包括:根据线性要素的坐标长度,计算出每个端点Bn到起始点A的距离,判断计算出每个端点到起始点的距离是否小于等于标准长度,如果是,以起始点到该端点的连线为对角线构建矩形,利用构建的各个矩形构建R树空间索引。本发明还公开了一种基于R树的线性要素空间索引构建系统、检索方法及其检索系统。本发明所公开的技术方案实现了对于长度较长的线性要素,减小了外接矩形的面积,降低了返回的数据量和无效运算,提高了查询效率和准确性。
【专利说明】线性要素空间索引构建方法、系统和检索方法及其系统
【技术领域】
[0001]本发明涉及空间信息系统【技术领域】,尤其涉及一种线性要素空间索引构建方法、系统及其检索方法和系统。
【背景技术】
[0002]R树是一个高度平衡树,它是B树在k维上的自然扩展,用空间对象的MBR来近似表达空间对象,根据地物的MBR建立R树,可以直接对空间中占据一定范围的空间对象进行索引。R树的每一个结点都对应着磁盘页D和区域I,如果结点不是叶结点,则该结点的所有子结点的区域都在区域I的范围之内,而且存储在磁盘页D中。如果结点是叶结点,那么磁盘页D中存储的将是区域I范围内的一系列子区域,子区域紧紧围绕空间对象,一般为空间对象的外接矩形。
[0003]由于建立索引的依据为几何对象的外接多边形,适应用面域要素,对于长度较长线性要素,特别是当线状要素长度达到一定的长度时,其外接矩形的范围就会比较大,在进行查询的时候,尤其是小范围区域查询,导致查询的空白区域也会返回大量数据,对后续空间分析带来大量无效运算,降低了查询准确度,从而整体上降低空间检索的效率。

【发明内容】

[0004](一)要解决的技术问题
[0005]本发明所要解决的技术问题是:如何提供一种线性要素空间索引构建方法、系统及其检索方法和系统,以降低现有技术中由于查询的外接矩形面积过大导致的查询结果准确度低的技术问题。
[0006](二)技术方案
[0007]为了解决上述技术问题,一方面,本发明提供了一种基于R树的线性要素空间索引构建方法,该方法包括:
[0008]根据线性要素的坐标长度,计算出每个端点Bn到起始点A的距离,起始点A的坐丰不为(X。,70)、立而点(Xn+1,Yn+1 ),
[0009]按如下公式计算:
[0010]Dis:η 才 1:: = DiSinI + % (Ir,: —: ^2 ;
[0011]式中,η为非负整数;Dis (η+1)表示第η+1个端点离起始点的距离;Dis (η)表示第η个端点离起始点的距离;χη表示η个端点的χ坐标;χη+1表示η+1个端点的χ坐标;yn示η个端点的y坐标;yn+1表示η+1个端点的y坐标;
[0012]判断计算出每个端点到起始点的距离是否小于等于标准长度,如果是,以起始点到该端点的连线为对角线构建矩形,利用构建的各个矩形构建R树空间索引。
[0013]优选地,如果一个端点到起始点的距离大于标准长度,该方法进一步包括:采用二分插入法对线段ABn进行分段:
[0014]当η为0,则对线段ABn进行插入点C1 ;判断AC1的长度是否小于标准长度,如果是,则对线段CBn进行插入;否则,则对线段AC1进行插入;
[0015]当η不为的长度小于标准长度,则对线段BlriBn进行插入点C1 ;判断AC1是否小于标准长度,如果是,则对线段C1Bn进行插入;否则,则对线段BlriC1进行插入;
[0016]直至找到插入点C (χ/,y/ )点,使AC的长度无限逼近标准长度,以线段AC为对角线构建矩形,利用构建的矩形构建R树空间索引,以C点为起始点构建R树空间索引。
[0017]另一方面,本发明还提供了一种基于R树的线性要素空间索引构建系统,该系统包括:
[0018]计算模块,用于根据线性要素的坐标长度,计算出每个端点Bn到起始点A的距离,起始点 A 的坐标为(χ。,yQ)ji^i^(xn+1, yn+1);
[0019]按如下公式计算:
[0020]Disiji 4 I; = Disij:} +、一 (h+: - r..]-;
[0021]式中,η为非负整数;Dis (η+1)表示第η+1个端点离起始点的距离;Dis (η)表示第η个端点离起始点的距离;χη表示η个端点的χ坐标;χη+1表示η+1个端点的χ坐标;yn示η个端点的y坐标;yn+1表示η+1个端点的y坐标;
[0022]判断构建模块,用于判断计算出每个端点到起始点的距离度是否小于等于标准长度,如果是,以起始点到该端点的连线为对角线构建矩形,利用构建的各个矩形构建R树空间索引。
[0023]优选地,如果一个端点到起始点的距离大于标准长度,该系统还包括二分插入分段处理模块;
[0024]用于当η为0,则对线段ABn进行插入点C1 ;判断AC1的长度是否小于标准长度,如果是,则对线段CBn进行插入;否则,则对线段AC1进行插入;
[0025]当η不为0,当ABlri的长度小于标准长度,则对线段BlriBn进行插入点C1 ;判断AC1是否小于标准长度,如果是,则对线段C1Bn进行插入;否则,则对线段BlriC1进行插入;
[0026]直至找到插入点C (Xl’,y/ )点,使AC的长度无限逼近标准长度,以线段AC为对角线构建矩形,利用构建的矩形构建R树空间索引,以C点为起始点构建R树空间索引。
[0027]在一方面,本发明还提供了一种基于R树的线性要素空间索引检索方法,包括利用上述所述的构建基于R树的线性要素空间索引的方法得到线性要素空间索引构建系统;
[0028]根据输入查询坐标范围,查找包括该所要查询坐标范围的外接矩形;
[0029]在所述外接矩形中查找与所述查询坐标范围的线段要素相同的线段;
[0030]将与所述查询坐标范围的线段要素相同的线段合并。
[0031]优选地,所述线段合并的具体实现步骤如下:
[0032]根据查找到的线段,获取每一条线段所对应的起点和终止点的坐标;
[0033]将起点坐标和/或终止点坐标相同的线段合并后输出。
[0034]另一方面,本发明提供了一种基于R树的线性要素空间索引检索系统,该系统包括利用上述所述基于R树的线性要素空间索引构建系统;
[0035]线性要素空间索引构建系统,用于根据输入查询坐标范围,查找包括该所述查询坐标范围的外接矩形;在所述外接矩形中查找与所述查询坐标范围的线段要素相同的线段;
[0036]合并模块,用于将与所述查询坐标范围的线段要素相同的线段合并。[0037]优选地,所述合并模块包括:坐标获取模块,用于根据查找到的线段,获取每一条线段所对应的起点和终止点的坐标;[0038]输出模块,用于将起点坐标和/或终止点坐标相同的线段合并后输出。
[0039](三)有益效果
[0040]本发明所提供的一种线性要素空间索引构建方法、系统及其检索方法和系统具有如下优点:
[0041]本发明通过将每个端点与起始点的距离按照一定规则进行分段处理,以没有超过标准长度的线段为对角线构建矩形,并以各个矩形构建R树空间索引,对于长度较长的线性要素,大大地减小了外接矩形的面积;在后续查询中,先根据输入查询坐标,查找包含所述查询坐标的外接矩形,由于外接矩形面积大大减少,所查询的空白区域的数据减少,降低了返回的数据量和无效运算,从而提高了查询效率,同时,本发明对查询到的线段进行合并输出,其查询结果获取的记录数只有一条线段,因而提高了查询结果的准确性。
【专利附图】

【附图说明】
[0042]图1为本发明实施例基于R树的线性要素空间索引构建方法的流程图;
[0043]图2为本发明另一实施例基于R树的线性要素空间索引检索方法的流程图;
[0044]图3为本发明另一实施例合并线段的流程图;
[0045]图4为本发明实施例二分插入分段法的流程图;
[0046]图5为本发明一个实施例的基于R树的线性要素空间索引的流程图;
[0047]图6为本发明分段处理后的线段外接矩形分布图;
[0048]图7为本发明基于R树空间检索结果示例图;
[0049]图8为本发明又一实施例基于R树的线性要素空间索引构建系统结构示意图;
[0050]图9为本发明在一实施例基于R树的线性要素空间索引检索系统结构示意图。
【具体实施方式】
[0051]下面结合说明书附图和实施例,对本发明的【具体实施方式】作进一步详细描述。以下实施例仅用于说明本发明,但不用来限制本发明的范围。
[0052]R树是一种高效的空间索引,但由于建立索引的依据为几何对象的外接多边形,适应用面域要素。
[0053]针对长度较长线性要素空间索引,本发明实施例首先提出了一种基于R树的线性要素空间索引构建方法,如图1所示,该方法包括:
[0054]步骤100:根据线性要素的坐标长度,计每个端点Bn到起始点A的距离,起始点A的坐标为(χ。,yQ)、端点(xn+1,ynl);
[0055]按如下公式计算:
[0056]D is [η + IJ = Dis'j::, -f、.U、+: - x.:,:: +j* ;
[0057]式中,n为非负整数;Dis (η+1)表示第n+1个端点离起始点的距离;Dis (η)表示第η个端点离起始点的距离;χη表示η个端点的χ坐标;χη+1表示η+1个端点的χ坐标;yn示η个端点的y坐标;yn+1表示η+1个端点的y坐标;
[0058]步骤101:判断计算出每个端点到起始点的距离是否小于等于标准长度,如果是,以起始点到该端点的连线为对角线构建矩形,利用构建的各个矩形构建R树空间索引。
[0059]本发明另一个实施例还提出了一种基于R树的线性要素空间索引检索方法,如图2所示,包括利用上述所述的构建基于R树的线性要素空间索引的方法得到线性要素空间索引构建系统;
[0060]步骤201:根据输入查询坐标范围,查找包括该所要查询坐标范围的外接矩形;
[0061]步骤202:在所述外接矩形中查找与所述查询坐标范围的线段要素相同的线段;
[0062]步骤203:将与所述查询坐标范围的线段要素相同的线段合并。
[0063]参考图3,上述实施例中步骤203的线段合并具体实现步骤如下:
[0064]步骤301:根据查找到的线段,获取每一条线段所对应的起点和终止点的坐标;
[0065]步骤302:将起点坐标和/或终止点坐标相同的线段合并后输出。
[0066]可见,在本发明实施例提出的基于R树的线性要素空间索引构建方法以及检索方法,不是任意地构建空间索引,而是将长度很长的线段进行分段处理,即将该线段按照标准长度来分段,将符合一定规则线性要素的坐标长度,以该线性要素的坐标长度为对角线构建矩形,以各个该矩形构建空间索引;因而利用此种空间索引,查找到的与所要查询坐标范围的线段要素相同的矩形,其查询区域的空白数据量减少,降低了返回的数据量和无效运算,从而提高了查询效率,同时,本发明实施例对查询到的线段进行合并输出,其查询结果获取的记录数只有一条线 段,因而提高了查询结果的准确性。
[0067]在本发明实施例上述的方法中,针对一个端点到起始点的距离大于标准长度,本发明实施例采用二分插入法对线段ABn进行分段,参考图4,包括:
[0068]步骤401:当η为0,则对线段ABn进行插入点C1 ;判断AC1的长度是否小于标准长度,如果是,则对线段CBn进行插入;否则,则对线段AC1进行插入;
[0069]步骤402:当η不为0,当ABlri的长度小于标准长度,则对线段BlriBn进行插入点C1 AlMAC1是否小于标准长度,如果是,则对线段C1Bn进行插入;否则,则对线段BlriC1进行插入;
[0070]步骤403:直至找到插入点C (x/, y/)点,使AC的长度无限逼近标准长度,以线段AC为对角线构建矩形,利用构建的矩形构建R树空间索引,以C点为起始点构建R树空间索引。
[0071]采用上述二分插入法分段处理,将超过标准长度的线段进行分段,无线逼近标准长度的方法获得最接佳线段分段,并以该分段为对角线的矩形构建R空间索引的方法,使查新区域的范围变小,占用的内存空间少,结果更精确。
[0072]结合图5,下面详细介绍本发明一个实施例的基于R树的线性要素空间索引的全部实现过程:
[0073]步骤500:根据线性要素的坐标长度,计算出每个端点Bn到起始点A的距离。
[0074]假设起始点A的坐标为(Xtl, yd、端点(xn+1, yn+1),按如下公式计算该起始点A到各个端点Bn的距离:
[0075]eisfil + 1} = Dis O:} + d-.'.J2 才’.[0076]式中,η为非负整数;Dis (η+1)表示第η+1个端点离起始点的距离;Dis (η)表示第η个端点离起始点的距离;χη表示η个端点的χ坐标;χη+1表示η+1个端点的χ坐标;yn示η个端点的Y坐标;yn+1表示η+1个端点的y坐标;[0077]由于线性参考系统是指在处理线性要素时,对于未知线性要素的位置信息可由已知线性要素的位置信息与其相对位置关系加以表示或量测,可以大大简了数据记录。因而可利用起始点A到各个端点Bn的距离,来建立线性参考体系。
[0078]步骤501:确定分段标准长度。
[0079]上述的标准长度可以为等长,如每20个长度单位,也可以不等长;可以根据业务需求来划分。如以公路的国道在一个省内的范围,一般整体长度为500公里左右,如果按照长度来划分,可以分为每20公里为一段,或者按照每通过一个县级行政区划为一段。根据实际需要,设定标准长度,便于建立的空间索引的实际使用和推广使用。
[0080]步骤502:判断计算出每个端点Bn到起始点A的距离是否小于等于标准长度,如果是,以起始点到该端点的连线为对角线构建矩形,利用构建的各个矩形构建R树空间索引。
[0081]步骤503:针对一个端点到起始点的距离大于标准长度,当η为0,则对线段48?进行插入点C1 ;判断AC1的长度是否小于标准长度,如果是,则对线段CBn进行插入;否则,则对线段AC1进行插入。
[0082]步骤504:针对一个端点到起始点的距离大于标准长度,当η不为0,当ABlri的长度小于标准长度,则对线段BlriBn进行插入点C1 ;判断AC1是否小于标准长度,如果是,则对线段C1Bn进行插入;否则,则对线段BlriC1进行插入。
[0083]步骤505:直至找到插入点C (x/, y/)点,使AC的长度无限逼近标准长度,以线段AC为对角线构建矩形,利用构建的矩形构建R树空间索引,以C点为起始点构建R树空间索引。
[0084]针对一个端点到起始点的距离大于标准长度,对该线段进行分段分为两个步骤,第一步利用二分法计算出目 标分段的距离值所在的哪两个端点范围内;第二步在两个端点内进行内插,生存新的端点,作为分段的起点或终点。
[0085]步骤506:根据输入查询坐标范围,查找包括该所要查询坐标范围的外接矩形。
[0086]步骤507:在所述外接矩形中查找与所述查询坐标范围的线段要素相同的线段。
[0087]步骤508:根据查找到的线段,获取每一条线段所对应的起点和终止点的坐标;
[0088]步骤509:将起点坐标和/或终止点坐标相同的线段合并后输出。
[0089]需要说明的是,上述优选实施例的实施,根据实际情况,可以不用执行每一步,如步骤503和步骤504,在同一种情况,只执行对应的步骤,另一步骤就不用执行;执行步骤502,就不用执行后面步骤,只有当处理一条长度很长的线性要素,针对不同的情况,采取对应的步骤执行,只要能实现该技术方案即可。当查到的线段只有一条时,就可以直接输出,不用合并,即不用执行步骤508和步骤509。
[0090]将线段按照一定规则进行分段后,线段的外接矩形分布,如图6所示;执行同样查询区域时,获取的记录数就只有一条线段,如图7所示的基于R树空间检索结果。
[0091]基于上述实施例的构建方法,本发明又一实施例提出了一种基于R树的线性要素空间索引构建系统,如图8所示,该系统包括:计算模块801和判断构建模块802;
[0092]计算模块801,用于根据线性要素的坐标长度,计算出每个端点Bn到起始点A的距离,起始点A的坐标为(Xtl, yci)、端点(xn+lxyn+1);
[0093]按如下公式计算:
[0094]DiSiji * = Disinj *、[0095]式中,η为非负整数;Dis (η+1)表示第η+1个端点离起始点的距离;Dis (η)表示第η个端点离起始点的距离;χη表示η个端点的χ坐标;χη+1表示η+1个端点的χ坐标;yn示η个端点的y坐标;yn+1表示η+1个端点的y坐标;
[0096]判断构建模块802,用于判断计算出每个端点到起始点的距离是否小于等于标准长度,如果是,以起始点到该端点的连线为对角线构建矩形,利用构建的各个矩形构建R树空间索引。
[0097]针对一个端点到起始点的距离大于标准长度的情况,本发明又一实施例还包括二分插入分段处理模块803 ;
[0098]用于当η为I,则对线段ABn进行插入点C1 ;判断AC1的长度是否小于标准长度,如果是,则对线段CBn进行插入;否则,则对线段AC1进行插入;
[0099]当η不为1,当ABlri的长度小于标准长度,则对线段BlriBn进行插入点C1 ;判断AC1是否小于标准长度,如果是,则对线段C1Bn进行插入;否则,则对线段BlriC1进行插入;
[0100]直至找到插入点C (Xl’,y/ )点,使AC的长度无限逼近标准长度,以线段AC为对角线构建矩形,利用构建的矩形构建R树空间索引,以C点为起始点构建R树空间索引。
[0101]综上,本发明实施例提出的基于R树的线性要素空间索引的构建方法及其系统,具有如下优点:采用分段处理线性要素,减小了接矩形面积,降低了存储所占用的空间和查询区域的面积,提高了运算效果。
[0102]另一方面,本发明在一实施例还提出了一种基于R树的线性要素空间索引检索系统,如图9所示,该系统包括利用上述所述基于R树的线性要素空间索引构建系统800 ;
[0103]线性要素空间索引附件系统800,用于根据输入查询坐标范围,查找包括该所述查询坐标范围的外接矩形;在所述外接矩形中查找与所述查询坐标范围的线段要素相同的线段;
[0104]合并模块901,用于将与所述查询坐标范围的线段要素相同的线段合并。
[0105]上述在一实施例的合并模块包括:
[0106]坐标获取模块902,用于根据查找到的线段,获取每一条线段所对应的起点和终止点的坐标;
[0107]输出模块903,用于将起点坐标和/或终止点坐标相同的线段合并后输出。
[0108]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种基于R树的线性要素空间索引构建方法,其特征在于,该方法包括: 根据线性要素的坐标长度,计算出每个端点Bn到起始点A的距离,起始点A的坐标为(x0, y。)、端点(xn+1,yn+1); 按如下公式计算: Oisiji + ij = Disini + ~-?; 式中,n为非负整数;Dis (η+1)表示第η+1个端点离起始点的距离;Dis (η)表示第η个端点离起始点的距离;xn表示η个端点的X坐标;χη+1表示η+1个端点的χ坐标;yn示η个端点的I坐标;yn+1表示η+1个端点的y坐标; 判断计算出每个端点到起始点的距离是否小于等于标准长度,如果是,以起始点到该端点的连线为对角线构建矩形,利用构建的各个矩形构建R树空间索引。
2.根据权利要求1所述的构建方法,其特征在于,如果一个端点到起始点的距离大于标准长度,该方法进一步包括:采用二分插入法对线段ABn进行分段: 当η为O,则对线段ABn进行插入点C1 ;判断AC1的长度是否小于标准长度,如果是,则对线段C1Bn进行插入;否则,则对线段AC1进行插入; 当η不为O,当ABlri的长度小于标准长度,则对线段BlriBn进行插入点C1 ;判断AC1是否小于标准长度,如果是,则对线段C1Bn进行插入;否则,则对线段BlriC1进行插入; 直至找到插入点C (Xl’,y/)点,使AC的长度无限逼近标准长度,以线段AC为对角线构建矩形,利用构建的矩形构建R树空间索引,以C点为起始点构建R树空间索引。
3.一种基于R树的线性要素空间索引构建系统,其特征在于,该系统包括: 计算模块,用于根据线性要素的坐标长度,计算出每个端点Bn到起始点A的距离,起始点A的坐标为(χ。,yQ)、端点(xn+1,yn+1); 按如下公式计算: 式中,η为非负整数;Dis (η+1)表示第η+1个端点离起始点的距离;Dis (η)表示第η个端点离起始点的距离;xn表示η个端点的χ坐标;χη+1表示η+1个端点的χ坐标;yn示η个端点的I坐标;yn+1表示η+1个端点的y坐标; 判断构建模块,用于判断计算出每个端点到起始点的距离是否小于等于标准长度,如果是,以起始点到该端点的连线为对角线构建矩形,利用构建的各个矩形构建R树空间索引。
4.根据权利要求3所述的构建系统,其特征在于,如果一个端点到起始点的距离大于标准长度,该系统还包括二分插入分段处理模块; 用于当η为O,则对线段ABn进行插入点C1 ;判断AC1的长度是否小于标准长度,如果是,则对线段C1Bn进行插入;否则,则对线段AC1进行插入; 当η不为O,当ABlri的长度小于标准长度,则对线段BlriBn进行插入点C1 ;判断AC1是否小于标准长度,如果是,则对线段C1Bn进行插入;否则,则对线段BlriC1进行插入; 直至找到插入点C (Xl’,y/)点,使AC的长度无限逼近标准长度,以线段AC为对角线构建矩形,利用构建的矩形构建R树空间索引,以C点为起始点构建R树空间索引。
5.一种基于R树的线性要素空间索引检索方法,其特征在于,包括利用权利要求1~2中任一项所述的构建基于R树的线性要素空间索引的方法得到线性要素空间索引的构建系统; 根据输入查询坐标范围,查找包括该所要查询坐标范围的外接矩形; 在所述外接矩形中查找与所述查询坐标范围的线段要素相同的线段; 将与所述查询坐标范围的线段要素相同的线段合并。
6.根据权利要求5所述的检索方法,其特征在于,所述线段合并的具体实现步骤如下: 根据查找到的线段,获取每一条线段所对应的起点和终止点的坐标; 将起点坐标和/或终止点坐标相同的线段合并后输出。
7.一种基于R树的线性要素空间索引检索系统,其特征在于,该系统包括利用权利要求5~6中任一项所述基于R树的线性要素空间索引构建系统; 线性要素空间索引构建系统,用于根据输入查询坐标范围,查找包括该所述查询坐标范围的外接矩形;在所述外接矩形中查找与所述查询坐标范围的线段要素相同的线段; 合并模块,用于将与所述查询坐标范围的线段要素相同的线段合并。
8.根据权利要求7所述的检索系统,其特征在于,所述合并模块包括: 坐标获取模块,用于根据查找到的线段,获取每一条线段所对应的起点和终止点的坐标; 输出模块,用于将起点坐 标和/或终止点坐标相同的线段合并后输出。
【文档编号】G06F17/30GK103473268SQ201310356524
【公开日】2013年12月25日 申请日期:2013年8月15日 优先权日:2013年8月15日
【发明者】蔡越, 王翔, 王玫 申请人:北京恒达时讯科技开发有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1