空间索引建立方法、装置、电子设备及可读存储介质制造方法及图纸

技术编号:21629576 阅读:39 留言:0更新日期:2019-07-17 11:17
本公开实施例公开了一种空间索引建立方法、装置、电子设备及可读存储介质,所述方法包括:确定多边形空间区域是否是复杂多边形;当确定所述多边形空间区域是复杂多边形时,将所述多边形空间区域拆解为多个简单多边形的组合;为所述多个简单多边形的组合建立网格索引,使得可以利用简单多边形的组合,解决复杂多边形空间区域的网格索引建立问题。

Spatial Index Establishment Method, Device, Electronic Equipment and Readable Storage Media

【技术实现步骤摘要】
空间索引建立方法、装置、电子设备及可读存储介质
本公开涉及空间信息处理
,具体涉及一种空间索引建立方法、装置、电子设备及可读存储介质。
技术介绍
空间索引是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构,其中包含空间对象的概要信息,如对象的标识、外接矩形及指向空间对象实体的指针。作为空间索引的一种实现方式,网格型空间索引的基本思想是将研究区域用横竖线条划分大小相等或不等的网格,记录每一个网格所包含的空间实体。当用户进行空间查询时,首先计算出用户查询对象所在网格,然后在该网格中快速查询所选空间实体。
技术实现思路
在实际应用中,专利技术人发现:相关技术中,当多边形空间区域中存在复杂多边形时,由于难以确定复杂多边形的正负,因此也就难以确定复杂多边形的内部区域或外部区域,因此也就无法为多边形空间区域建立网格索引。本公开实施例提供一种空间索引建立方法、装置及电子设备。第一方面,本公开实施例中提供了一种空间索引建立方法,包括:确定多边形空间区域是否是复杂多边形;当确定所述多边形空间区域是复杂多边形时,将所述多边形空间区域拆解为多个简单多边形的组合;为所述多个简单多边形的组合建立网格索引。结合第一方面,本公开在第一方面的第一种实现方式中,还包括:当确定多边形空间区域不是复杂多边形时,建立所述多边形空间区域的网格索引。结合第一方面,本公开在第一方面的第二种实现方式中,所述确定多边形空间区域是否是复杂多边形,包括:通过扫描线算法对所述多边形空间区域的各条边进行计算;当计算结果指示至少一条边上存在至少一个与另一条边的交点时,确定所述多边形空间区域为复杂多边形,其中,所述交点是除两条边相交的顶点以外的交点。结合第一方面的第二种实现方式,本公开在第一方面的第三种实现方式中,所述通过扫描线算法对所述多边形空间区域的各条边进行计算,包括:建立链表以记录所述多边形空间区域的具有交点的各条边的端点和交点;建立二叉树以记录与扫描线算法中的扫描线相交的所述多边形空间区域的各条边的端点;通过扫描线算法,基于所述二叉树中记录的所述多边形空间区域的各条边的端点,计算各条边之间是否存在交点。结合第一方面的第三种实现方式,本公开在第一方面的第四种实现方式中,所述当计算结果指示至少一条边上存在至少一个与另一条边的交点时,确定所述多边形空间区域为复杂多边形,其中,所述交点是除两条边相交的顶点以外的交点,包括:当通过扫描线算法,基于所述二叉树中记录的所述多边形空间区域的各条边的端点,计算出各条边之间存在交点时,在所述链表中记录所述交点;根据链表中存在所述交点确定所述多边形空间区域为复杂多边形。结合第一方面的第二种实现方式,本公开在第一方面的第五种实现方式中,所述扫描线算法为Bentley–Ottmann扫描线算法。第二方面,本公开实施例中提供了一种空间索引建立装置,包括:确定模块,用于确定多边形空间区域是否是复杂多边形;拆解模块,用于当所述确定模块确定所述多边形空间区域是复杂多边形时,将所述多边形空间区域拆解为多个简单多边形的组合;建立模块,用于为所述多个简单多边形的组合建立网格索引。结合第二方面,本公开在第二方面的第一种实现方式中,所述建立模块还被配置为:当所述确定模块确定多边形空间区域不是复杂多边形时,建立所述多边形空间区域的网格索引。结合第二方面,本公开在第二方面的第二种实现方式中,所述确定模块包括:第一计算子模块,用于通过扫描线算法对所述多边形空间区域的各条边进行计算;第一确定子模块,用于当计算结果指示至少一条边上存在至少一个与另一条边的交点时,确定所述多边形空间区域为复杂多边形,其中,所述交点是除两条边相交的顶点以外的交点。结合第二方面的第二种实现方式,本公开在第二方面的第三种实现方式中,所述第一计算子模块包括:第一建立子模块,用于建立链表以记录所述多边形空间区域的具有交点的各条边的端点和交点;第二建立子模块,用于建立二叉树以记录与扫描线算法中的扫描线相交的所述多边形空间区域的各条边的端点;第二计算子模块,用于通过扫描线算法,基于所述二叉树中记录的所述多边形空间区域的各条边的端点,计算各条边之间是否存在交点。结合第二方面的第三种实现方式,本公开在第二方面的第四种实现方式中,所述第一确定子模块包括:记录子模块,用于当通过扫描线算法,基于所述二叉树中记录的所述多边形空间区域的各条边的端点,计算出各条边之间存在交点时,在所述链表中记录所述交点;第二确定子模块,用于根据链表中存在所述交点确定所述多边形空间区域为复杂多边形。结合第二方面的第二种实现方式,本公开在第二方面的第五种实现方式中,所述扫描线算法为Bentley–Ottmann扫描线算法。第三方面,本公开实施例中提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现如第一方面、第一方面的第一实施方式至第五实施方式任一项所述的方法。第四方面,本公开实施例中提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现如第一方面、第一方面的第一实施方式至第五实施方式任一项所述的方法。本公开实施例提供的技术方案可以包括以下有益效果:根据本公开实施例提供的技术方案,通过确定多边形空间区域是否是复杂多边形;当确定所述多边形空间区域是复杂多边形时,将所述多边形空间区域拆解为多个简单多边形的组合;为所述多个简单多边形的组合建立网格索引,使得可以利用简单多边形的组合,解决复杂多边形空间区域的网格索引建立问题。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。附图说明结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:图1示出根据本公开一实施方式的空间索引建立方法的流程图;图2示出根据图1所示实施方式的步骤S101的一个示例的流程图;图3示出根据图2所示实施方式的步骤S201的一个示例的流程图;图4示出根据图2所示实施方式的步骤S202的一个示例的流程图;图5示出根据本公开一实施方式的空间索引建立装置的结构框图;图6示出根据图5所示实施方式的确定模块501的一个示例的结构框图;图7示出根据图6所示实施方式的第一计算子模块601的一个示例的结构框图;图8示出根据图6所示实施方式的第一确定子模块602的一个示例的结构框图;图9示出根据本公开一实施方式的电子设备的结构框图;图10是适于用来实现根据本公开一实施方式的空间索引建立方法的计算机系统的结构示意图;图11是根据本公开一实施例的复杂多边形的一个示意图。具体实施方式下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施本文档来自技高网...

【技术保护点】
1.一种空间索引建立方法,其特征在于,包括:确定多边形空间区域是否是复杂多边形;当确定所述多边形空间区域是复杂多边形时,将所述多边形空间区域拆解为多个简单多边形的组合;为所述多个简单多边形的组合建立网格索引。

【技术特征摘要】
1.一种空间索引建立方法,其特征在于,包括:确定多边形空间区域是否是复杂多边形;当确定所述多边形空间区域是复杂多边形时,将所述多边形空间区域拆解为多个简单多边形的组合;为所述多个简单多边形的组合建立网格索引。2.根据权利要求1所述的方法,其特征在于,还包括:当确定多边形空间区域不是复杂多边形时,建立所述多边形空间区域的网格索引。3.根据权利要求1所述的方法,其特征在于,所述确定多边形空间区域是否是复杂多边形,包括:通过扫描线算法对所述多边形空间区域的各条边进行计算;当计算结果指示至少一条边上存在至少一个与另一条边的交点时,确定所述多边形空间区域为复杂多边形,其中,所述交点是除两条边相交的顶点以外的交点。4.根据权利要求3所述的方法,其特征在于,所述通过扫描线算法对所述多边形空间区域的各条边进行计算,包括:建立链表以记录所述多边形空间区域的具有交点的各条边的端点和交点;建立二叉树以记录与扫描线算法中的扫描线相交的所述多边形空间区域的各条边的端点;通过扫描线算法,基于所述二叉树中记录的所述多边形空间区域的各条边的端点,计算各条边之间是否存在交点。5.根据权利要求4所述的方法,其特征在于,所述当计算结果指示至少一条边上存在至少一个与另一条边的交点时,确定所述多边形空间...

【专利技术属性】
技术研发人员:高原
申请(专利权)人:北京小度信息科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1