掌桥专利:专业的专利平台
掌桥专利
首页

空间索引的处理方法及装置

文献发布时间:2023-06-19 12:22:51


空间索引的处理方法及装置

技术领域

本发明涉及计算机索引技术领域,具体而言,涉及一种空间索引的处理方法及装置。

背景技术

空间索引技术一直是空间、时空数据库领域的热点,对于普通的地理几何对象,空间索引提供了十分快速的检索能力,满足了常见的业务需求。但是,对于一些特殊的空间数据,比如全国流域数据,包含长江、黄河这种几乎跨越整个国家的几何对象,跨度比较大、包含点数比较多,针对这类空间数据,当前数据库中空间索引的检索性能不能很好的满足业务需求。例如,基于R+树的空间索引技术,仍然不能有效降低空间重叠程度,尤其是在数据量较大、空间维数增加时表现的更为明显。基于R*树的空间索引技术,对跨区域的空间数据的存储是有冗余的,而且随着数据库中数据的增多,冗余信息会不断增长虽然空间格网索引技术。此外,基于空间格网索引技术的空间索引技术,在针对点数量较多、空间区域跨度较大的几何对象时,由于其最小外包框范围较大,用这些方法构建的空间索引,在进行查询的时候,查询的准确度不够,比如小范围空白区域搜索也会返回大量不符合条件的几何对象,对后续的空间分析带来大量无效运算,降低了整体的检索效率。

针对现有空间索引技术对跨度较大、包含点数较多的几何大对象检索效率较低的问题,目前尚未提出有效的解决方案。

发明内容

本发明实施例提供了一种空间索引的处理方法及装置,以至少解决由于计算量大造成的对几何大对象检索效率较低的技术问题。

根据本发明实施例的一个方面,提供了一种空间索引的处理方法,包括:确定待构建索引的几何对象、第一构建参数和第二构建参数,其中,所述第一构建参数为所述几何对象可拆分成子外接矩形的最大数量,所述第二构建参数为每个子外接矩形包含点数量的最大值;获取所述几何对象的最小外接矩形和所述几何对象包含的点数量;根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数构建所述几何对象的索引项;将所述几何对象的索引项插入索引树中,得到所述几何对象在所述索引树中的节点项;根据所述几何对象在所述索引树中的节点项得到目标空间索引。

进一步地,根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数构建所述几何对象的索引项包括:根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数得到所述几何对象的目标外接矩形数组;根据所述目标外接矩形数组构建所述几何对象的索引项。

进一步地,根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数得到所述几何对象的目标外接矩形数组包括:根据所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数,计算所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量;根据所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量对所述几何对象进行拆分,得到多个目标子外接矩形;根据所述最小外接矩形和所述多个目标子外接矩形得到所述目标外接矩形数组,其中,所述最小外接矩形对应的数组作为所述目标外接矩形数组中的第一个数组,所述多个目标子外接矩形对应的多个数组依次排列在所述第一个数组后面,作为目标外接矩形数组中的多个子外接矩形数组。

进一步地,根据所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数,计算所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量包括:基于所述几何对象包含的点数量和所述第二构建参数,得到第一几何对象拆分数量;判断所述第一几何对象拆分数量是否大于第一构建参数;若所述第一几何对象拆分数量大于第一构建参数,将所述第一构建参数作为所述几何对象的目标子外接矩形数量,若所述第一几何对象拆分数量不大于第一构建参数,将所述第一几何对象拆分数量作为所述几何对象的目标子外接矩形数量;根据所述几何对象包含的点数量和所述目标子外接矩形数量,得到每个目标子外接矩形包含的点数量。

进一步地,在计算所述几何对象的目标子外接矩形的数量和每个目标子外接矩形包含的点数量之前,所述方法包括:判断所述几何对象包含的点数量是否大于所述第二构建参数,若所述几何对象包含的点数量小于第二构建参数,则将所述最小外接矩形对应的数组作为目标外接矩形数组。

进一步地,在得到所述几何对象的目标空间索引之后,若检测到对所述目标空间索引中的节点项进行删除,以及对所述节点项进行删除后执行合并调整操作,所述方法包括:若检测到所述目标空间索引中的节点项进行删除,将待删除节点项从所在叶子节点中删除,将所在叶子节点以及需要合并的叶子节点中的所有节点项对应的目标外接矩形数组中的第一个数组进行合并,得到合并后的叶子节点;若合并后所述目标空间索引的根节点只有一个合并后的叶子节点,将所述合并后的叶子节点作为所述目标空间索引的根节点。

进一步地,在得到所述几何对象的目标空间索引之后,所述方法还包括:确定搜索区域、目标空间索引及索引根节点;判断所述索引根节点是否为叶子节点,若所述索引根节点是叶子节点,将所述索引根节点作为目标索引根节点;根据所述搜索区域、所述目标空间索引和所述目标索引根结点对所述几何对象进行空间检索。

进一步地,在确定所述搜索区域和所述索引根节点之后,所述方法还包括:判断所述索引根节点是否为叶子节点,若所述索引根节点不是叶子节点,则获取所述索引根节点的所有节点项对应的外接矩形数组;依次判断所述索引根节点的每个节点项对应的外接矩形组中的第一个数组与所述搜索区域在空间上是否相交,将所述索引根节点中所述第一个数组与所述搜索区域在空间上相交的外接矩形数组对应的所述节点项作为所述目标索引根节点。

进一步地,根据所述搜索区域、所述目标空间索引和所述目标索引根结点对所述几何对象进行空间检索包括:根据所述目标空间索引,获取所述目标索引根节点的所有节点项对应的目标外接矩形数组;判断所述搜索区域与所述目标外接矩形数组在空间上是否相交;若所述搜索区域与所述目标外接矩形数组在空间上相交,则确定满足检索条件;若所述搜索区域与所述目标外接矩形数组在空间上不相交,则确定不满足检索条件。

进一步地,判断所述搜索区域与所述目标外接矩形数组在空间上是否相交包括:判断所述搜索区域与所述目标外接矩形数组中的第一个数组是否相交;若所述搜索区域与所述目标外接矩形数组中的第一个数组在空间上不相交,则确定不满足检索条件;若所述搜索区域与所述目标外接矩形数组中的第一个数组在空间上相交,继续判断所述搜索区域与所述外接矩形数组中的多个子外接矩形数组在空间上相交,若所述搜索区域与所述外接矩形数组中的多个子外接矩形数组中的至少一个子外接矩形数组在空间上相交,则满足检索条件;若所述搜索区域与所述外接矩形数组中的多个子外接矩形数组在空间上均不相交,则确定不满足检索条件。

根据本发明实施例的另一方面,还提供了一种空间索引的处理装置,包括:第一确定单元,用于确定待构建索引的几何对象、第一构建参数和第二构建参数,其中,所述第一构建参数为所述几何对象可拆分成子外接矩形的最大数量,所述第二构建参数为每个子外接矩形包含点数量的最大值;第一获取单元,用于获取所述几何对象的最小外接矩形和所述几何对象包含的点数量;构建单元,用于根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数构建所述几何对象的索引项;第二获取单元,用于将所述几何对象的索引项插入索引树中,得到所述几何对象在所述索引树中的节点项;第三获取单元,用于根据所述几何对象在所述索引树中的节点项得到目标空间索引。

根据本发明实施例的另一方面,还提供了一种计算机可读的存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述任意一项所述的空间索引的处理方法。

根据本发明实施例的另一方面,还提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任意一项所述的空间索引的处理方法。

在本发明实施例中,采用几何大对象最小外接矩形数组和几何大对象拆分后的子外接矩形数组构建几何大对象空间索引的方式,通过确定待构建索引的几何对象、第一构建参数和第二构建参数,其中,第一构建参数为几何对象可拆分成子外接矩形的最大数量,第二构建参数为每个子外接矩形包含点数量的最大值;获取几何对象的最小外接矩形和几何对象包含的点数量;根据最小外接矩形、几何对象包含的点数量、第一构建参数和第二构建参数构建几何对象的索引项;将几何对象的索引项插入索引树中,得到几何对象在索引树中的节点项;根据几何对象在索引树中的节点项得到目标空间索引,达到了降低检索计算量的目的,从而实现了提高对几何大对象检索效率的技术效果,进而解决了由于计算量大造成的对几何大对象检索效率较低的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是根据本发明实施例的计算机终端的硬件结构框图;

图2是根据本发明实施例一的空间索引的处理方法的流程图;

图3是根据本发明实施例一提供的几何对象拆分的示意图;

图4是根据本发明实施例一的空间索引构建的流程图;

图5是根据本发明实施例一提供的几何对象检索的示意图;

图6是根据本发明实施例一的空间索引检索的流程图;

图7是根据本发明实施例二的提供的空间索引的处理装置示意图;以及

图8是根据本发明实施例的可选的计算机终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:

R树:它是一种高度平衡的树,由中间节点和叶子节点组成,实际数据对象的最小外接矩形存储在叶子节点中,中间节点通过聚集其低层节点的外接矩形形成,包含所有这些外接矩形。

空间索引:R树以及在RTree基础上针对不同空间运算提出的不同改进,形成了一个繁荣的索引树族,是目前流行的空间索引。

几何大对象:指OGC规范定义中的简单几何对象,特指空间范围跨度较大、包含点数量较多的几何线对象和几何面对象。

最小外接矩形:MBR-Minimum Bounding Rectangle,最小外接矩形是指以二维坐标表示的若干二维形状(例如点、直线、多边形)的最大范围,即以给定的二维形状各顶点中的最大横坐标、最小横坐标、最大纵坐标、最小纵坐标定下边界的矩形。这样的一个矩形包含给定的二维形状,且边与坐标轴平行。

实施例1

根据本发明实施例,提供了一种空间索引的处理方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现空间索引的处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图1中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为I/O接口的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。如本申请实施例中所涉及到的,该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的空间索引的处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的空间索引的处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。

在上述运行环境下,本申请提供了如图2所示的空间索引的处理方法。图2是根据本发明实施例一的空间索引的处理方法的流程图。

步骤S101,确定待构建索引的几何对象、第一构建参数和第二构建参数,其中,第一构建参数为几何对象可拆分成子外接矩形的最大数量,第二构建参数为每个子外接矩形包含点数量的最大值。

上述的待构建索引的几何对象,可以为跨度大、包含点数多的几何大对象,例如长江、黄河等,本实施例为了实现对输入的几何大对象进行最优化的拆分,输入第一构建参数和第二构建参数,其中,第一构建参数为几何对象可拆分成子外接矩形的最大数量,第二构建参数为每个子外接矩形包含点数量的最大值。

步骤S102,获取几何对象的最小外接矩形和几何对象包含的点数量;根据最小外接矩形、几何对象包含的点数量、第一构建参数和第二构建参数构建几何对象的索引项。

在构建几何对象的索引项的过程中,需要同时用到几何对象的最小外接矩形以及几何对象拆分后的所有子外接矩形的最小外接矩形,因此,需要根据几何对象包含的点数量、第一构建参数和第二构建参数得到几何对象所有子外接矩形的最小外接矩形,进而根据几何对象包含的点数量、第一构建参数和第二构建参数以及几何对象的最小外接矩形构建几何对象的索引项。

可选地,在根据本申请实施例提供的空间索引的处理方法中,根据最小外接矩形、几何对象包含的点数量、第一构建参数和第二构建参数构建几何对象的索引项包括:根据最小外接矩形、几何对象包含的点数量、第一构建参数和第二构建参数得到几何对象的目标外接矩形数组;根据目标外接矩形数组构建几何对象的索引项。

由于几何对象是以最小外接矩形数组的形式存储在索引中,同时在检索时也是针对几何对象的不同最小外接矩形数组进行运算和分析,因此,为了构建几何对象的索引项,需要先根据最小外接矩形、几何对象包含的点数量、第一构建参数和第二构建参数得到几何对象的目标外接矩形数组,进而根据目标外接矩形数组构建几何对象的索引项。

可选地,在根据本申请实施例提供的空间索引的处理方法中,根据最小外接矩形、几何对象包含的点数量、第一构建参数和第二构建参数得到几何对象的目标外接矩形数组包括:根据几何对象包含的点数量、第一构建参数和第二构建参数,计算几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量;根据几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量对几何对象进行拆分,得到多个目标子外接矩形;根据最小外接矩形和多个目标子外接矩形得到目标外接矩形数组,其中,最小外接矩形对应的数组作为目标外接矩形数组中的第一个数组,多个目标子外接矩形对应的多个数组依次排列在第一个数组后面,作为目标外接矩形数组中的多个子外接矩形数组。

本实施例中几何对象的目标外接矩形数组包含最小外接矩形的同时,还包含几何对象按规则拆分后的所有子对象的子外接矩形,也即各个子对象分别对应的最小外接矩形。几何对象的最小外接矩形可以在输入几何对象的时候直接获取,几何对象的子对象的子外接矩形需要根据几何对象拆分后的子对象得到,为了得到几何对象拆分后的子对象的子外接矩形,需要根据几何对象包含的点数量、第一构建参数和第二构建参数计算几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量,再根据几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量对几何对象进行拆分。最后,通过几何对象的最小外接矩形数组和几何对象的多个子对象对应的子外接矩形数组构成几何对象目标外接矩形数组,其中,几何对象的最小外接矩形数组作为几何对象目标外接矩形数组中的第一个数组,几何对象的多个子对象对应的子外接矩形数组依次排列在目标外接矩形数组中的第一个数组后面,作为目标外接矩形数组中的多个子外接矩形数组。

例如,输入长江作为几何对象,根据几何对象长江包含的点数量、第一构建参数和第二构建参数,计算几何对象长江的目标子外接矩形数量为4,则将几何对象长江平均拆分成4个子对象,根据几何对象长江的最小外接矩形数组以及几何对象长江拆分后的4个子对象的子外接矩形数组得到几何对象长江的目标外接矩形数组,其中,最小外接矩形数组(如图3中左边图所示的①)作为几何对象长江的目标矩形数组中的第一个数组,4个子外接矩形数组(如图3中左边图所示的②③④⑤)依次排列在第一个数组后面,作为几何对象长江的目标矩形数组中的其他数组,如图3中左边图所示,如果待构建索引的几何对象是环形,则按照图3中右边图所示进行处理。

由于几何对象目标外接矩形数组同时包含几何对象最小外接矩形数组和几何对象拆分后的多个子对象对应的子外接矩形数组,因此在进行空间检索时可以提供粗过滤和二级过滤,几何对象的最小外接矩形数组进行粗过滤,拆分后的子外接矩形数组提供二级过滤,二级过滤能够进一步排除小范围空白区域空间查询返回不符合条件的几何对象的情况,从而提高整体空间检索的效率。

可选地,在根据本申请实施例提供的空间索引的处理方法中,根据几何对象包含的点数量、第一构建参数和第二构建参数,计算几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量包括:基于几何对象包含的点数量和第二构建参数,得到第一几何对象拆分数量;判断第一几何对象拆分数量是否大于第一构建参数;若第一几何对象拆分数量大于第一构建参数,将第一构建参数作为几何对象的目标子外接矩形数量,若第一几何对象拆分数量不大于第一构建参数,将第一几何对象拆分数量作为几何对象的目标子外接矩形数量;根据几何对象包含的点数量和目标子外接矩形数量,得到每个目标子外接矩形包含的点数量。

在根据几何对象包含的点数量、第一构建参数和第二构建参数计算几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量过程中,先用几何对象包含的点数量除以第二构建参数,得到第一几何对象拆分数量,其中第二构建参数为预先设置的允许每个子外接矩形包含点数量的最大值。此时仍然无法确定按照第一几何对象拆分数量对几何对象进行拆分是否为最优的方案,因此,将第一几何对象拆分数量与第一构建参数进行比较,其中,第一构建参数为预先设置的允许几何对象可拆分成子外接矩形的最大数量;若第一几何对象拆分数量大于第一构建参数,将第一构建参数作为几何对象的目标子外接矩形数量,若第一几何对象拆分数量不大于第一构建参数,将第一几何对象拆分数量作为几何对象的目标子外接矩形数量;最后,再根据几何对象包含的点数量和目标子外接矩形数量,得到每个目标子外接矩形包含的点数量。

在构建几何对象索引的过程中,引入第一构建参数和第二构建参数计算几何对象可以拆分的目标子外接矩形数量以及每个目标子外接矩形包含的点数量,一是对几何对象拆分成子外接矩形数组的数量限定最大值,防止拆分数量过多,导致整棵索引树占用存储空间过大;二是指定单个子外接矩形允许包含的点数量,计算出拆分后的子外接矩形数量,与第一个参数比较,取两者的最小值,防止部分几何对象不足以拆分却强制拆分的情况,为几何对象拆分提供最优的拆分规则;同时,引入第一构建参数和第二构建参数也避免了大量的平方和开根号计算,减少了对索引构建效率的影响。

可选地,在根据本申请实施例提供的空间索引的处理方法中,在计算几何对象的目标子外接矩形的数量和每个目标子外接矩形包含的点数量之前,该方法包括:判断几何对象包含的点数量是否大于第二构建参数,若几何对象包含的点数量小于第二构建参数,则将最小外接矩形对应的数组作为目标外接矩形数组。

由于第二构建参数是预设的每个子外接矩形所包含点数的最大值,如果待构建索引的几何对象包含的点数小于第二构建参数,意味着几何对象包含的点数不多,不需要进行拆分,即将几何对象拆分成子外接矩形的数量M=0,可直接将几何对象的最小外接矩形对应的数组作为目标外接矩形数组。

步骤S103,将几何对象的索引项插入索引树中,得到几何对象在索引树中的节点项。

索引树由不同的节点构成,将几何对象的索引项插入到对应的节点中,得到几何对象在索引树中的节点项。

可选地,若叶子节点需要分裂,分裂后新的非叶子节点的外接矩形,由其所有叶子节点的节点项中第一个外接矩形计算而来。

在将几何对象的索引项插入到索引树时,判断索引项在索引树中待插入的叶子节点中已有节点项的数量,若该叶子节点中已有节点项的数量已经达到预设值,则需要将叶子节点分裂,且分裂后新的非叶子节点的外接矩形,由其所有叶子节点的节点项中第一个外接矩形计算而来。

步骤S104,根据几何对象在索引树中的节点项得到目标空间索引。

几何对象的空间索引是基于索引树实现的,索引树中的各个节点项分别包含几何对象的索引项,根据索引树及索引树中的多个节点项得到几何对象的目标空间索引,用于对几何对象进行高效检索。

上述步骤具体描述了几何对象空间索引的构建过程,图4是构建几何对象空间索引的流程图,如图4所示,构建过程主要包括:输入待构建空间索引的几何对象,输入第一构建参数,即可拆分成子外接矩形数量的最大值,用MAX_RECT_NUM表示,输入第二构建参数,即单个子外接矩形包含点数量的最大值,用MAX_PT_NUM表示;获取几何对象的点数量N,如果N大于MAX_PT_NUM,则执行对几何对象的拆分步骤:计算几何对象拆分子对象的数量,示为TMP_RECT,TMP_RECT_NUM=ceil(N/MAX_PT_NUM),确定最终拆分成子外接矩形的数量,用M表示,以及计算拆分后单个子外接矩形包含的点数量,用SUB_RECT_PT_NUM表示,M取TMP_RECT_NUM和第一构建参数参数MAX_RECT_NUM之间的最小值,SUB_RECT_PT_NUM=ceil(N/M);如果N不大于MAX_PT_NUM,则几何对象外接矩形不需要拆分,即M的值为零;构建几何对象索引项,索引项内容为外接矩形数组和几何对象ID,外接矩形数组元素个数M+1,其中首个外接矩形为整个几何对象的最小外接矩形,接下来的M个子外接矩形依次根据几何对象中SUB_RECT_PT_NUM个点的最小外接矩形计算而来;将中构建的索引项插入索引树,重复上述步骤直至遍历到所有记录,空间索引构建完成。

可选地,在根据本申请实施例提供的空间索引的处理方法中,在得到几何对象的目标空间索引之后,该方法包括:若检测到目标空间索引中的节点项进行删除,将待删除节点项从所在叶子节点中删除,将所在叶子节点以及需要合并的叶子节点中的所有节点项对应的目标外接矩形数组中的第一个数组进行合并,得到合并后的叶子节点;若合并后目标空间索引的根节点只有一个合并后的叶子节点,将合并后的叶子节点作为目标空间索引的根节点。

在构建完几何对象的空间索引之后,空间索引中包含多个不同级别的节点,例如,叶子节点中可以包含多个几何对象,每个几何对象的目标外接矩形数组构成该几何对象对应的索引项整体,非叶子节点可以包含多个叶子节点。当需要删除某些几何对象时,先将节点项聪叶子节点中删除,如果将节点项删除以后叶子节点中的几何对象的节点项数量过少,则需要将几个叶子节点进行合并,具体方法为:将所在叶子节点以及需要合并的叶子节点中的所有节点项对应的目标外接矩形数组中的第一个数组进行合并,得到合并后的叶子节点;如果叶子节点合并之后,判断到目标空间索引的根节点有且仅有合并后的叶子节点,将合并后的叶子节点作为目标空间索引的根节点。

可选地,在根据本申请实施例提供的空间索引的处理方法中,在得到几何对象的目标空间索引之后,该方法还包括:确定搜索区域、目标空间索引及索引根节点;判断索引根节点是否为叶子节点,若索引根节点是叶子节点,将索引根节点作为目标索引根节点;根据搜索区域、目标空间索引和目标索引根结点对几何对象进行空间检索。

在构建完几何对象的空间索引之后,需要根据给定的搜索区域、目标空间索引以及索引根节点对几何对象进行检索,为了逐个检索目标空间节点中的各个节点项,需要先判断确定的索引根节点是否为叶子节点,如果索引根节点为叶子节点,则将索引根节点作为目标索引根节点,并根据搜索区域、目标空间索引和目标索引根结点对几何对象进行空间检索。

可选地,在根据本申请实施例提供的空间索引的处理方法中,在确定搜索区域和索引根节点之后,该方法还包括:判断索引根节点是否为叶子节点,若索引根节点不是叶子节点,则获取索引根节点的所有节点项对应的外接矩形数组;依次判断索引根节点的每个节点项对应的外接矩形组中的第一个数组与搜索区域在空间上是否相交,将索引根节点中第一个数组与搜索区域在空间上相交的外接矩形数组对应的节点项作为目标索引根节点。

在进行空间检索时,由于是逐项地检索每一个几何对象,如果判断给定的索引根节点不是叶子节点,也即给定的索引根节点下面有多个节点项,则需要获取索引根节点的所有节点项对应的外接矩形数组,并依次判断索引根节点的每个节点项对应的外接矩形组中的第一个数组与搜索区域在空间上是否相交,以及将索引根节点中第一个数组与搜索区域在空间上相交的外接矩形数组对应的节点项作为目标索引根节点。

可选地,在根据本申请实施例提供的空间索引的处理方法中,根据搜索区域、目标空间索引和目标索引根结点对几何对象进行空间检索包括:根据目标空间索引,获取目标索引根节点的所有节点项对应的目标外接矩形数组;判断搜索区域与目标外接矩形数组在空间上是否相交;若搜索区域与目标外接矩形数组在空间上相交,则确定满足检索条件;若搜索区域与目标外接矩形数组在空间上不相交,则确定不满足检索条件。

几何对象是以外接矩形数组的形式存储在空间索引中的,在对几何对象进行检索的时候,获取目标索引根节点的所有节点项对应的目标外接矩形数组,判断搜索区域与目标矩形数组在空间上是否相交,若搜索区域与目标外接矩形数组在空间上相交,则确定满足检索条件,否则,确定不满足检索条件。

可选地,在根据本申请实施例提供的空间索引的处理方法中,判断搜索区域与目标外接矩形数组在空间上是否相交包括:判断搜索区域与目标外接矩形数组中的第一个数组是否相交;若搜索区域与目标外接矩形数组中的第一个数组在空间上不相交,则确定不满足检索条件;若搜索区域与目标外接矩形数组中的第一个数组在空间上相交,继续判断搜索区域与外接矩形数组中的多个子外接矩形数组在空间上相交,若搜索区域与外接矩形数组中的多个子外接矩形数组中的至少一个子外接矩形数组在空间上相交,则满足检索条件;若搜索区域与外接矩形数组中的多个子外接矩形数组在空间上均不相交,则确定不满足检索条件。

图5是根据给定的搜索区域在空间索引中进行检索的示意图,如图5所示,空间索引中几何对象A被拆分成了②③④⑤共4段,几何对象A在空间索引中的目标矩形数组包括①②③④⑤,其中①是几何对象A的最小外接矩形对应的数组,是几何对象A目标外接矩形数组中的第一个数组,②③④⑤是几何对象A拆分后子对象的最小外接矩形对应的数组。给定搜索区域S进行空间查询,首先通过矩形①进行粗过滤,判断矩形①与S的空间关系是相交的,再用拆分后的子外接矩形②③④⑤进行二级过滤,判断子外接矩形②③④⑤与S在空间上均不相交,所以几何对象A不符合查询条件,被成功过滤出去。

上述步骤详细描述了对几何对象进行检索的过程,图6是空间索引检索的流程图,如图6所示,首先确定搜索区域,用S表示,确定空间索引树,用R表示,确定索引根节点,用T表示,由于在进行空间检索时是逐项地检索每一个几何对象,因此需要先判断节点T是否为叶子节点,如果判断给定的节点T是叶子节点,则将T作为目标索引根节点,如果判断节点T不是叶子节点,则需要获取节点T的所有节点项对应的外接矩形数组,并依次判断节点T的每个节点项对应的外接矩形组中的第一个数组与搜索区域S在空间上是否相交,以及将节点T中第一个数组与搜索区域在空间上相交的外接矩形数组对应的节点项作为目标索引根节点。再获取目标索引根节点的所有节点项,用E表示,将节点项E解压为外接矩形数组并获取外接矩形数组的第一个外接矩形数组和其他子外接矩形数组,分别用EI和EO表示,判断EI与搜索区域S在空间上是否相交,如果EI与搜索区域S在空间上不相交,直接得到检索结果为不满足检索条件,如果EI与搜索区域S在空间上相交,则进一步判断EO与搜索区域S在空间上是否相交,如果搜索区域S与EO中的至少一个相交,则检索结果为满足检索条件,如果搜索区域S与EO均不相交,则检索结果为不满足检索条件。重复上述步骤直至遍历到所有记录,检索结束。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述空间索引处理方法的装置,如图7所示,该装置包括:第一确定单元701、第一获取单元702、构建单元703、第二获取单元704和第三获取单元705。

具体地,第一确定单元701,用于确定待构建索引的几何对象、第一构建参数和第二构建参数,其中,第一构建参数为几何对象可拆分成子外接矩形的最大数量,第二构建参数为每个子外接矩形包含点数量的最大值;

第一获取单元702,用于获取几何对象的最小外接矩形和几何对象包含的点数量;

构建单元703,用于根据最小外接矩形、几何对象包含的点数量、第一构建参数和第二构建参数构建几何对象的索引项;

第二获取单元704,用于将几何对象的索引项插入索引树中,得到几何对象在索引树中的节点项;

第三获取单元705,用于根据几何对象在索引树中的节点项得到目标空间索引。

综上,在本发明实施例二的空间索引的处理装置中,通过第一确定单元701确定待构建索引的几何对象、第一构建参数和第二构建参数,其中,第一构建参数为几何对象可拆分成子外接矩形的最大数量,第二构建参数为每个子外接矩形包含点数量的最大值,第一获取单元702获取几何对象的最小外接矩形和几何对象包含的点数量,构建单元703根据最小外接矩形、几何对象包含的点数量、第一构建参数和第二构建参数构建几何对象的索引项,第二获取单元704将几何对象的索引项插入索引树中,得到几何对象在索引树中的节点项,第三获取单元705根据几何对象在索引树中的节点项得到目标空间索引,达到了降低检索计算量的目的,从而实现了提高对几何大对象检索效率的技术效果,进而解决了由于计算量大造成的对几何大对象检索效率较低的技术问题。

可选地,根据本申请实施例二提供的空间索引处理装置中,构建单元包括:第一获取子单元,用于根据最小外接矩形、几何对象包含的点数量、第一构建参数和第二构建参数得到几何对象的目标外接矩形数组;第一构建子单元,用于根据目标外接矩形数组构建几何对象的索引项。

可选地,根据本申请实施例二提供的空间索引处理装置中,第一获取子单元包括:计算模块,用于根据几何对象包含的点数量、第一构建参数和第二构建参数,计算几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量;第一获取模块,用于根据几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量对几何对象进行拆分,得到多个目标子外接矩形;第二获取模块,用于根据最小外接矩形和多个目标子外接矩形得到目标外接矩形数组,其中,最小外接矩形对应的数组作为目标外接矩形数组中的第一个数组,多个目标子外接矩形对应的多个数组依次排列在第一个数组后面,作为目标外接矩形数组中的多个子外接矩形数组。

可选地,根据本申请实施例二提供的空间索引处理装置中,计算模块包括:第一获取子模块,用于基于几何对象包含的点数量和第二构建参数,得到第一几何对象拆分数量;第一判断子模块,用于判断第一几何对象拆分数量是否大于第一构建参数;第一确定子模块,用于在第一几何对象拆分数量大于第一构建参数的情况下,将第一构建参数作为几何对象的目标子外接矩形数量,第二确定子模块,用于在第一几何对象拆分数量不大于第一构建参数的情况下,将第一几何对象拆分数量作为几何对象的目标子外接矩形数量;第二获取子模块,用于根据几何对象包含的点数量和目标子外接矩形数量,得到每个目标子外接矩形包含的点数量。

可选地,根据本申请实施例二提供的空间索引处理装置中,该装置包括:第一判断单元,用于在计算几何对象的目标子外接矩形的数量和每个目标子外接矩形包含的点数量之前,判断几何对象包含的点数量是否大于第二构建参数,若几何对象包含的点数量小于第二构建参数,则将最小外接矩形对应的数组作为目标外接矩形数组。

可选地,根据本申请实施例二提供的空间索引处理装置中,该装置包括:合并单元,用于在得到几何对象的目标空间索引之后,若检测到目标空间索引中的节点项进行删除,将待删除节点项从所在叶子节点中删除,将所在叶子节点以及需要合并的叶子节点中的所有节点项对应的目标外接矩形数组中的第一个数组进行合并,得到合并后的叶子节点;第二确定单元,用于在合并后目标空间索引的根节点只有一个合并后的叶子节点的情况下,将合并后的叶子节点作为目标空间索引的根节点。

可选地,根据本申请实施例二提供的空间索引处理装置中,该装置还包括:第三确定单元,用于在得到几何对象的目标空间索引之后,确定搜索区域、目标空间索引及索引根节点;第四判断单元,用于判断索引根节点是否为叶子节点,若索引根节点是叶子节点,将索引根节点作为目标索引根节点;检索单元,根据搜索区域、目标空间索引和目标索引根结点对几何对象进行空间检索。

可选地,根据本申请实施例二提供的空间索引处理装置中,该装置还包括:第五判断单元,用于在确定搜索区域和索引根节点之后,判断索引根节点是否为叶子节点,若索引根节点不是叶子节点,则获取索引根节点的所有节点项对应的外接矩形数组;第六判断单元,用于依次判断索引根节点的每个节点项对应的外接矩形组中的第一个数组与搜索区域在空间上是否相交,将索引根节点中第一个数组与搜索区域在空间上相交的外接矩形数组对应的节点项作为目标索引根节点。

可选地,根据本申请实施例二提供的空间索引处理装置中,检索单元包括:第一获取子单元,用于根据目标空间索引,获取目标索引根节点的所有节点项对应的目标外接矩形数组;第一判断子单元,用于判断搜索区域与目标外接矩形数组在空间上是否相交;第一确定子单元,用于在搜索区域与目标外接矩形数组在空间上相交的情况下,确定满足检索条件;第二确定子单元,用于在搜索区域与目标外接矩形数组在空间上不相交的情况下,确定不满足检索条件。

可选地,根据本申请实施例二提供的空间索引处理装置中,第一判断子单元包括:第一判断模块,用于判断搜索区域与目标外接矩形数组中的第一个数组是否相交;第一确定模块,用于在搜索区域与目标外接矩形数组中的第一个数组在空间上不相交的情况下,则确定不满足检索条件;第二确定模块,用于在搜索区域与目标外接矩形数组中的第一个数组在空间上相交的前提下,继续判断搜索区域与外接矩形数组中的多个子外接矩形数组在空间上相交;第三确定模块,用于在搜索区域与外接矩形数组中的多个子外接矩形数组中的至少一个子外接矩形数组在空间上相交的前提下,确定满足检索条件;第四确定模块,用于在搜索区域与外接矩形数组中的多个子外接矩形数组在空间上均不相交的前提下,确定不满足检索条件。

此处需要说明的是,上述第一确定单元701、第一获取单元702、构建单元703、第二获取单元704和第三获取单元705对应于实施例1中的步骤S101至步骤S105,两个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例一提供的计算机终端10中。

实施例3

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

在本实施例中,上述计算机终端可以执行应用程序的空间索引的处理方法中以下步骤的程序代码:确定待构建索引的几何对象、第一构建参数和第二构建参数,其中,所述第一构建参数为所述几何对象可拆分成子外接矩形的最大数量,所述第二构建参数为每个子外接矩形包含点数量的最大值;获取所述几何对象的最小外接矩形和所述几何对象包含的点数量;根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数构建所述几何对象的索引项;将所述几何对象的索引项插入索引树中,得到所述几何对象在所述索引树中的节点项;根据所述几何对象在所述索引树中的节点项得到目标空间索引。

上述计算机终端还可以执行应用程序的空间索引的处理方法中以下步骤的程序代码:根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数构建所述几何对象的索引项包括:根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数得到所述几何对象的目标外接矩形数组;根据所述目标外接矩形数组构建所述几何对象的索引项。

上述计算机终端还可以执行应用程序的空间索引的处理方法中以下步骤的程序代码:根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数得到所述几何对象的目标外接矩形数组包括:根据所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数,计算所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量;根据所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量对所述几何对象进行拆分,得到多个目标子外接矩形;根据所述最小外接矩形和所述多个目标子外接矩形得到所述目标外接矩形数组,其中,所述最小外接矩形对应的数组作为所述目标外接矩形数组中的第一个数组,所述多个目标子外接矩形对应的多个数组依次排列在所述第一个数组后面,作为目标外接矩形数组中的多个子外接矩形数组。

上述计算机终端还可以执行应用程序的空间索引的处理方法中以下步骤的程序代码:根据所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数,计算所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量包括:基于所述几何对象包含的点数量和所述第二构建参数,得到第一几何对象拆分数量;判断所述第一几何对象拆分数量是否大于第一构建参数;若所述第一几何对象拆分数量大于第一构建参数,将所述第一构建参数作为所述几何对象的目标子外接矩形数量,若所述第一几何对象拆分数量不大于第一构建参数,将所述第一几何对象拆分数量作为所述几何对象的目标子外接矩形数量;根据所述几何对象包含的点数量和所述目标子外接矩形数量,得到每个目标子外接矩形包含的点数量。

上述计算机终端还可以执行应用程序的空间索引的处理方法中以下步骤的程序代码:在计算所述几何对象的目标子外接矩形的数量和每个目标子外接矩形包含的点数量之前,所述方法包括:判断所述几何对象包含的点数量是否大于所述第二构建参数,若所述几何对象包含的点数量小于第二构建参数,则将所述最小外接矩形对应的数组作为目标外接矩形数组。

上述计算机终端还可以执行应用程序的空间索引的处理方法中以下步骤的程序代码:在得到所述几何对象的目标空间索引之后,所述方法包括:若检测到对所述目标空间索引中的节点项进行删除,将待删除节点项从所在叶子节点中删除,将所在叶子节点以及需要合并的叶子节点中的所有节点项对应的目标外接矩形数组中的第一个数组进行合并,得到合并后的叶子节点;若合并后所述目标空间索引的根节点只有一个合并后的叶子节点,将所述合并后的叶子节点作为所述目标空间索引的根节点。

上述计算机终端还可以执行应用程序的空间索引的处理方法中以下步骤的程序代码:在得到所述几何对象的目标空间索引之后,所述方法还包括:确定搜索区域、目标空间索引及索引根节点;判断所述索引根节点是否为叶子节点,若所述索引根节点是叶子节点,将所述索引根节点作为目标索引根节点;根据所述搜索区域、所述目标空间索引和所述目标索引根结点对所述几何对象进行空间检索。

上述计算机终端还可以执行应用程序的空间索引的处理方法中以下步骤的程序代码:在确定所述搜索区域和所述索引根节点之后,所述方法还包括:判断所述索引根节点是否为叶子节点,若所述索引根节点不是叶子节点,则获取所述索引根节点的所有节点项对应的外接矩形数组;依次判断所述索引根节点的每个节点项对应的外接矩形组中的第一个数组与所述搜索区域在空间上是否相交,将所述索引根节点中所述第一个数组与所述搜索区域在空间上相交的外接矩形数组对应的所述节点项作为所述目标索引根节点。

上述计算机终端还可以执行应用程序的空间索引的处理方法中以下步骤的程序代码:根据所述搜索区域、所述目标空间索引和所述目标索引根结点对所述几何对象进行空间检索包括:根据所述目标空间索引,获取所述目标索引根节点的所有节点项对应的目标外接矩形数组;判断所述搜索区域与所述目标外接矩形数组在空间上是否相交;若所述搜索区域与所述目标外接矩形数组在空间上相交,则确定满足检索条件;若所述搜索区域与所述目标外接矩形数组在空间上不相交,则确定不满足检索条件。

上述计算机终端还可以执行应用程序的空间索引的处理方法中以下步骤的程序代码:判断所述搜索区域与所述目标外接矩形数组在空间上是否相交包括:判断所述搜索区域与所述目标外接矩形数组中的第一个数组是否相交;若所述搜索区域与所述目标外接矩形数组中的第一个数组在空间上不相交,则确定不满足检索条件;若所述搜索区域与所述目标外接矩形数组中的第一个数组在空间上相交,继续判断所述搜索区域与所述外接矩形数组中的多个子外接矩形数组在空间上相交,若所述搜索区域与所述外接矩形数组中的多个子外接矩形数组中的至少一个子外接矩形数组在空间上相交,则满足检索条件;若所述搜索区域与所述外接矩形数组中的多个子外接矩形数组在空间上均不相交,则确定不满足检索条件。

可选地,图8是根据本发明实施例的一种计算机终端的结构框图。如图8所示,该计算机终端10可以包括:一个或多个(图8中仅示出一个)处理器、存储器。

其中,存储器可用于存储软件程序以及模块,如本发明实施例中的空间索引的处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的空间索引的处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:确定待构建索引的几何对象、第一构建参数和第二构建参数,其中,所述第一构建参数为所述几何对象可拆分成子外接矩形的最大数量,所述第二构建参数为每个子外接矩形包含点数量的最大值;获取所述几何对象的最小外接矩形和所述几何对象包含的点数量;根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数构建所述几何对象的索引项;将所述几何对象的索引项插入索引树中,得到所述几何对象在所述索引树中的节点项;根据所述几何对象在所述索引树中的节点项得到目标空间索引。

可选的,上述处理器还可以执行如下步骤的程序代码:根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数构建所述几何对象的索引项包括:根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数得到所述几何对象的目标外接矩形数组;根据所述目标外接矩形数组构建所述几何对象的索引项。

可选的,上述处理器还可以执行如下步骤的程序代码:根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数得到所述几何对象的目标外接矩形数组包括:根据所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数,计算所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量;根据所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量对所述几何对象进行拆分,得到多个目标子外接矩形;根据所述最小外接矩形和所述多个目标子外接矩形得到所述目标外接矩形数组,其中,所述最小外接矩形对应的数组作为所述目标外接矩形数组中的第一个数组,所述多个目标子外接矩形对应的多个数组依次排列在所述第一个数组后面,作为目标外接矩形数组中的多个子外接矩形数组。

可选的,上述处理器还可以执行如下步骤的程序代码:根据所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数,计算所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量包括:基于所述几何对象包含的点数量和所述第二构建参数,得到第一几何对象拆分数量;判断所述第一几何对象拆分数量是否大于第一构建参数;若所述第一几何对象拆分数量大于第一构建参数,将所述第一构建参数作为所述几何对象的目标子外接矩形数量,若所述第一几何对象拆分数量不大于第一构建参数,将所述第一几何对象拆分数量作为所述几何对象的目标子外接矩形数量;根据所述几何对象包含的点数量和所述目标子外接矩形数量,得到每个目标子外接矩形包含的点数量。

可选的,上述处理器还可以执行如下步骤的程序代码:在计算所述几何对象的目标子外接矩形的数量和每个目标子外接矩形包含的点数量之前,所述方法包括:判断所述几何对象包含的点数量是否大于所述第二构建参数,若所述几何对象包含的点数量小于第二构建参数,则将所述最小外接矩形对应的数组作为目标外接矩形数组。

可选的,上述处理器还可以执行如下步骤的程序代码:在得到所述几何对象的目标空间索引之后,所述方法包括:若检测到对所述目标空间索引中的节点项进行删除,将待删除节点项从所在叶子节点中删除,将所在叶子节点以及需要合并的叶子节点中的所有节点项对应的目标外接矩形数组中的第一个数组进行合并,得到合并后的叶子节点;若合并后所述目标空间索引的根节点只有一个合并后的叶子节点,将所述合并后的叶子节点作为所述目标空间索引的根节点。

可选的,上述处理器还可以执行如下步骤的程序代码:在得到所述几何对象的目标空间索引之后,所述方法还包括:确定搜索区域、目标空间索引及索引根节点;判断所述索引根节点是否为叶子节点,若所述索引根节点是叶子节点,将所述索引根节点作为目标索引根节点;根据所述搜索区域、所述目标空间索引和所述目标索引根结点对所述几何对象进行空间检索。

可选的,上述处理器还可以执行如下步骤的程序代码:在确定所述搜索区域和所述索引根节点之后,所述方法还包括:判断所述索引根节点是否为叶子节点,若所述索引根节点不是叶子节点,则获取所述索引根节点的所有节点项对应的外接矩形数组;依次判断所述索引根节点的每个节点项对应的外接矩形组中的第一个数组与所述搜索区域在空间上是否相交,将所述索引根节点中所述第一个数组与所述搜索区域在空间上相交的外接矩形数组对应的所述节点项作为所述目标索引根节点。

可选的,上述处理器还可以执行如下步骤的程序代码:根据所述搜索区域、所述目标空间索引和所述目标索引根结点对所述几何对象进行空间检索包括:根据所述目标空间索引,获取所述目标索引根节点的所有节点项对应的目标外接矩形数组;判断所述搜索区域与所述目标外接矩形数组在空间上是否相交;若所述搜索区域与所述目标外接矩形数组在空间上相交,则确定满足检索条件;若所述搜索区域与所述目标外接矩形数组在空间上不相交,则确定不满足检索条件。

可选的,上述处理器还可以执行如下步骤的程序代码:判断所述搜索区域与所述目标外接矩形数组在空间上是否相交包括:判断所述搜索区域与所述目标外接矩形数组中的第一个数组是否相交;若所述搜索区域与所述目标外接矩形数组中的第一个数组在空间上不相交,则确定不满足检索条件;若所述搜索区域与所述目标外接矩形数组中的第一个数组在空间上相交,继续判断所述搜索区域与所述外接矩形数组中的多个子外接矩形数组在空间上相交,若所述搜索区域与所述外接矩形数组中的多个子外接矩形数组中的至少一个子外接矩形数组在空间上相交,则满足检索条件;若所述搜索区域与所述外接矩形数组中的多个子外接矩形数组在空间上均不相交,则确定不满足检索条件。

采用本发明实施例,提供了一种空间索引的处理方法的方案。采用几何大对象最小外接矩形数组和几何大对象拆分后的子外接矩形数组构建几何大对象空间索引的方式,通过确定待构建索引的几何对象、第一构建参数和第二构建参数,其中,所述第一构建参数为所述几何对象可拆分成子外接矩形的最大数量,所述第二构建参数为每个子外接矩形包含点数量的最大值;获取所述几何对象的最小外接矩形和所述几何对象包含的点数量;根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数构建所述几何对象的索引项;将所述几何对象的索引项插入索引树中,得到所述几何对象在所述索引树中的节点项;根据所述几何对象在所述索引树中的节点项得到目标空间索引,达到了降低检索计算量的目的,从而实现了提高对几何大对象检索效率的技术效果,进而解决了由于计算量大造成的对几何大对象检索效率较低的技术问题。

本领域普通技术人员可以理解,图8所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌声电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的空间索引的处理方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:确定待构建索引的几何对象、第一构建参数和第二构建参数,其中,所述第一构建参数为所述几何对象可拆分成子外接矩形的最大数量,所述第二构建参数为每个子外接矩形包含点数量的最大值;获取所述几何对象的最小外接矩形和所述几何对象包含的点数量;根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数构建所述几何对象的索引项;将所述几何对象的索引项插入索引树中,得到所述几何对象在所述索引树中的节点项;根据所述几何对象在所述索引树中的节点项得到目标空间索引。

存储介质还被设置为存储用于执行以下步骤的程序代码:根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数构建所述几何对象的索引项包括:根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数得到所述几何对象的目标外接矩形数组;根据所述目标外接矩形数组构建所述几何对象的索引项。

存储介质还被设置为存储用于执行以下步骤的程序代码:根据所述最小外接矩形、所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数得到所述几何对象的目标外接矩形数组包括:根据所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数,计算所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量;根据所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量对所述几何对象进行拆分,得到多个目标子外接矩形;根据所述最小外接矩形和所述多个目标子外接矩形得到所述目标外接矩形数组,其中,所述最小外接矩形对应的数组作为所述目标外接矩形数组中的第一个数组,所述多个目标子外接矩形对应的多个数组依次排列在所述第一个数组后面,作为目标外接矩形数组中的多个子外接矩形数组。

存储介质还被设置为存储用于执行以下步骤的程序代码:根据所述几何对象包含的点数量、所述第一构建参数和所述第二构建参数,计算所述几何对象的目标子外接矩形数量和每个目标子外接矩形包含的点数量包括:基于所述几何对象包含的点数量和所述第二构建参数,得到第一几何对象拆分数量;判断所述第一几何对象拆分数量是否大于第一构建参数;若所述第一几何对象拆分数量大于第一构建参数,将所述第一构建参数作为所述几何对象的目标子外接矩形数量,若所述第一几何对象拆分数量不大于第一构建参数,将所述第一几何对象拆分数量作为所述几何对象的目标子外接矩形数量;根据所述几何对象包含的点数量和所述目标子外接矩形数量,得到每个目标子外接矩形包含的点数量。

存储介质还被设置为存储用于执行以下步骤的程序代码:在计算所述几何对象的目标子外接矩形的数量和每个目标子外接矩形包含的点数量之前,所述方法包括:判断所述几何对象包含的点数量是否大于所述第二构建参数,若所述几何对象包含的点数量小于第二构建参数,则将所述最小外接矩形对应的数组作为目标外接矩形数组。

存储介质还被设置为存储用于执行以下步骤的程序代码:在得到所述几何对象的目标空间索引之后,所述方法包括:若检测到对所述目标空间索引中的节点项进行删除,将待删除节点项从所在叶子节点中删除,将所在叶子节点以及需要合并的叶子节点中的所有节点项对应的目标外接矩形数组中的第一个数组进行合并,得到合并后的叶子节点;若合并后所述目标空间索引的根节点只有一个合并后的叶子节点,将所述合并后的叶子节点作为所述目标空间索引的根节点。

存储介质还被设置为存储用于执行以下步骤的程序代码:在得到所述几何对象的目标空间索引之后,所述方法还包括:确定搜索区域、目标空间索引及索引根节点;判断所述索引根节点是否为叶子节点,若所述索引根节点是叶子节点,将所述索引根节点作为目标索引根节点;根据所述搜索区域、所述目标空间索引和所述目标索引根结点对所述几何对象进行空间检索。

存储介质还被设置为存储用于执行以下步骤的程序代码:在确定所述搜索区域和所述索引根节点之后,所述方法还包括:判断所述索引根节点是否为叶子节点,若所述索引根节点不是叶子节点,则获取所述索引根节点的所有节点项对应的外接矩形数组;依次判断所述索引根节点的每个节点项对应的外接矩形组中的第一个数组与所述搜索区域在空间上是否相交,将所述索引根节点中所述第一个数组与所述搜索区域在空间上相交的外接矩形数组对应的所述节点项作为所述目标索引根节点。

存储介质还被设置为存储用于执行以下步骤的程序代码:根据所述搜索区域、所述目标空间索引和所述目标索引根结点对所述几何对象进行空间检索包括:根据所述目标空间索引,获取所述目标索引根节点的所有节点项对应的目标外接矩形数组;判断所述搜索区域与所述目标外接矩形数组在空间上是否相交;若所述搜索区域与所述目标外接矩形数组在空间上相交,则确定满足检索条件;若所述搜索区域与所述目标外接矩形数组在空间上不相交,则确定不满足检索条件。

存储介质还被设置为存储用于执行以下步骤的程序代码:判断所述搜索区域与所述目标外接矩形数组在空间上是否相交包括:判断所述搜索区域与所述目标外接矩形数组中的第一个数组是否相交;若所述搜索区域与所述目标外接矩形数组中的第一个数组在空间上不相交,则确定不满足检索条件;若所述搜索区域与所述目标外接矩形数组中的第一个数组在空间上相交,继续判断所述搜索区域与所述外接矩形数组中的多个子外接矩形数组在空间上相交,若所述搜索区域与所述外接矩形数组中的多个子外接矩形数组中的至少一个子外接矩形数组在空间上相交,则满足检索条件;若所述搜索区域与所述外接矩形数组中的多个子外接矩形数组在空间上均不相交,则确定不满足检索条件。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 空间索引的处理方法及装置
  • 基于数据库倒排索引的北斗网格空间索引方法和装置
技术分类

06120113270165