CN111723096A - 一种集成GeoHash和Quadtree的空间数据索引方法 - Google Patents
一种集成GeoHash和Quadtree的空间数据索引方法 Download PDFInfo
- Publication number
- CN111723096A CN111723096A CN202010582966.6A CN202010582966A CN111723096A CN 111723096 A CN111723096 A CN 111723096A CN 202010582966 A CN202010582966 A CN 202010582966A CN 111723096 A CN111723096 A CN 111723096A
- Authority
- CN
- China
- Prior art keywords
- geohash
- space
- node
- tree
- spatial
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000012545 processing Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 12
- 239000012528 membrane Substances 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 claims description 3
- 239000002904 solvent Substances 0.000 claims description 3
- 230000008859 change Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000013523 data management Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种集成GeoHash和Quadtree的空间数据索引方法,包括改进四叉树索引结构创建和基于自底向上动态更新,改进四叉树索引结构包括改进四叉树、直接访问表和建立于空间对象之上的Hash索引表,改进四叉树采用基于GeoHash和四叉树相似的区域划分规则,对空间区域按照GeoHash进行划分,并以此格网建立节点与GeoHash编码一一对应的四叉树,直接访问表用于指向改进四叉树中的所有中间节点;基于自底向上动态更新的算法使用基于空间对象标识的Hash索引表来访问改进四叉树叶子节点中对应的空间对象记录,当空间对象发出位置更新请求时,根据空间对象位置变化程度采取多种更新策略。本申请根据改进四叉树索引结构,提出扩展的自底向上动态更新算法,支持索引的频繁更新操作。
Description
技术领域
本发明涉及空间数据索引技术领域,具体涉及一种集成GeoHash和Quadtree的空间数据索引方法。
背景技术
在互联网、GNSS(全球导航卫量系统)定位等技术迅速发展的背景下,空间数据的种类、规模及其产生速度都在迅速增加,海量的空间数据必然蕴含了诸多有用的信息,管理和检索这些海量空间数据经常需要进行大量的更新操作,如何管理这些海量空间数据,提供一个频繁更新的海量数据高效索引机制是目前迫切需要解决的关键问题。
目前针对这一问题,国内外学者提出了许多空间数据存储和检索方法,如将空间范围不断四等分进而提高查询效率的四叉树索引(Quad-Tree Index)、能够支持高维空间搜索的R树索引(R-Tree Index)、支持空间数据和非空间数据搜索的B+树索引(B+TreeIndex)以及基于哈希思想的网格索引(Grid Index)等。而本发明的发明人经过研究发现,现有索引结构固有的自顶向下(TOP-down)更新模式,所带来的必需索引页面磁盘I/O以访问空间对象所在数据页面,如果用于管理海量且频繁更新的空间数据,会导致索引结构剧烈变化,造成较大的I/O代价,以及难以支持并发更新的特性,因而在许多应用中其动态更新性能往往不能满足实际需要。
发明内容
针对现有索引结构固有的自顶向下更新模式,所带来的必需索引页面磁盘I/O以访问空间对象所在数据页面,如果用于管理海量且频繁更新的空间数据,会导致索引结构剧烈变化,造成较大的I/O代价,以及难以支持并发更新的特性,因而在许多应用中其动态更新性能往往不能满足实际需要的技术问题,本发明提供一种集成GeoHash和Quadtree的空间数据索引方法。
为了解决上述技术问题,本发明采用了如下的技术方案:
一种集成GeoHash和Quadtree的空间数据索引方法,所述索引方法包括改进四叉树索引结构创建和基于自底向上动态更新;其中,
创建的改进四叉树索引结构包括改进四叉树、直接访问表和建立于空间对象之上的Hash索引表;具体地,
所述改进四叉树采用基于现有GeoHash和四叉树相似的区域划分规则,对空间区域按照GeoHash进行划分,并以此格网建立四叉树,该四叉树的节点与GeoHash编码一一对应;
所述直接访问表用于指向改进四叉树中的所有中间节点,所述直接访问表的记录形式为<Level,MBR,GeoHash,Ptr>,其中Level、MBR、GeoHash、Ptr分别表示改进四叉树中间节点的所在层次、节点的最小包围矩形框、GeoHash编码、节点的磁盘页面地址,直接访问表中的所有记录是顺序排列的,根据它们对应中间节点的层次来进行组织;
所述Hash索引表的计量形式为<OID,PTR>,其中OID表示空间对象标识,PTR为指向空间对象记录所在叶子节点的磁盘页面偏移;
基于自底向上动态更新的算法使用基于空间对象标识的Hash索引表来访问改进四叉树叶子节点中对应的空间对象记录,具体包括当空间对象发出位置更新请求时,先通过Hash索引表找到空间对象对应对象的原始坐标,并根据GeoHash编码原理将原始坐标经纬度坐标转化成一维的字符串,然后在直接访问表中通过GeoHash编码找到空间对象所属的叶子节点,判断空间对象更新后的新坐标是否超出了叶子节点的区域范围MBR,若
未超出叶子节点的区域范围MBR,即空间对象更新后的位置仍然落在原叶子节点MBR之中,则直接用空间对象更新后的位置坐标替换原始坐标;
超出了叶子节点的区域范围MBR,但空间对象更新后的位置落在原叶子节点的某个非满兄弟叶子节点MBR之中,则将空间对象从原叶子节点上删除,同时根据GeoHash编码原理将新坐标经纬度坐标转化成一维的字符串,在直接访问表中通过GeoHash编码找到新的空间对象所属的父节点,将新的空间对象插入父节点即前述某个非满兄弟叶子节点中,同时更新Hash索引表;
超出了叶子节点的区域范围MBR,但空间对象更新后的位置落在包含此对象的某个子树之下的新叶子节点中,则将空间对象从原叶子节点上删除,同时根据GeoHash编码原理将新坐标经纬度坐标转化成一维的字符串,在直接访问表中通过GeoHash编码找到新的空间对象所属的父节点,将新的空间对象插入父节点即前述某个子树下的新叶子节点中,同时更新Hash索引表。
与现有技术相比,本发明提供的集成GeoHash和Quadtree的空间数据索引方法,首先创建包括改进四叉树、直接访问表和Hash索引表在内的改进四叉树索引结构,然后通过自底向上动态更新算法来更新空间对象位置,在索引更新中通过引入一个直接访问表,该直接访问表中的GeoHash编码即为树节点的编码,给定一个空间对象的坐标,通过GeoHash编码可以找到包含该节点的叶子节点,同时通过GeoHash编码可以找到该节点的父节点和兄弟节点,而维护直接访问表这样一个内存概要结构代价相对来说非常小,因为只有当节点分裂或者节点MBR变化时,才会对直接访问表进行更新,即当节点由于MBR扩展而导致更新向上传播时,或者当中间节点由于上溢而发生裂变时必须插入新记录到直接访问表中去,才必须修改直接访问表,然而实际上由于四叉树的高扇区使得大部分节点分裂发生在叶子层,因此在直接访问表中插入记录并不是频繁发生,这样通过直接访问表可以快速访问四叉树中任意中间节点而不需要额外的磁盘I/O,由此可以支持索引的频繁更新操作,大大提高了数据管理效率。
进一步,所述方法还包括用于在查询窗口q=([x1,y1],[x2,y2])找到所有在这个查询窗口q中的空间对象的范围查询,其中,[x1,y1],[x2,y2]分别表示q在二维空间中每一维的取值范围,所述范围查询具体包括面数据处理和查询处理:
所述面数据处理使用二叉树表示Geohash的划分结构,当前结点的左右子结点即表示对当前单元网格进行一次划分所得的两个子单元网格,通过Geohash单元网格空间范围与面数据的空间范围的拓扑关系,采用Geohash单元网格递归划分面数据,获得面数据覆盖的Geohash单元网格编码,实现对面数据的处理;
所述查询处理分成粗选和精选两个过程,粗选过程通过面数据处理将查询窗口q划分成GeoHash编码对应的多个区域,利用GeoHash编码在直接访问表中找到所有叶子节点和叶子节点中的空间对象;精选过程利用粗选过程已经查询找到的空间对象,与查询窗口q进行空间计算,判断空间对象是否在查询窗口q内。
进一步,所述方法还包括添加数据:根据GeoHash编码原理将待添加空间对象的坐标经纬度坐标转化成一维的字符串,在直接访问表中通过GeoHash编码找到待添加空间对象所属的父节点,将待添加空间对象插入父节点中,同时更新Hash索引表。
进一步,所述方法还包括删除数据:通过Hash索引表找到待删除空间对象所在叶子节点的磁盘页面偏移,根据GeoHash编码原理将待删除空间对象的坐标经纬度坐标转化成一维的字符串,在直接访问表中通过GeoHash编码找到待删除空间对象所属的父节点,从父节点中删除待删除空间对象的索引,同时将待删除空间对象从Hash索引表删除。
附图说明
图1是本发明提供的改进四叉树索引结构示意图。
图2是本发明提供的改进四叉树索引结构中改进四叉树的示意图。
图3是现有技术提供的GeoHash示意图。
图4是现有技术提供的四叉树示意图。
图5是本发明提供的面数据处理示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
请参考图1至图4所示,本发明提供一种集成GeoHash和Quadtree的空间数据索引方法,所述索引方法包括改进四叉树索引结构创建和基于自底向上动态更新;其中,
创建的改进四叉树索引结构包括改进四叉树(QG-tree)、直接访问表(direct-access table)和建立于空间对象之上的Hash索引表;具体地,
如图3所示的现有GeoHash是一种地理编码格式,它沿着经度和纬度的方向交替二分地球表面,并使用一个二进制数(GeoHash编码)表示所形成的互不重叠网格,对全球进行两次划分后形成4个编码长度为2的GeoHash编码(00、01、10、11),对应4个网格;以编码为11的网格为例,经度范围为[0,180°],纬度范围为[0,90°],若继续对此网格做两次划分,将形成4个编码长度为4的GeoHash编码(1100、1101、1110和1111)。GeoHash编码具有以下几个特点:唯一性,每个单元网格都有全球唯一的编码与之对应;一维性,GeoHash用一维数字或字符串表示二维空间区域;递归性,GeoHash下级单元网格由上级单元网格划分而得,其本质上是一种空间Z曲线填充,一个Z字型内的4个GeoHash网格属于同一个父网格,它们的二进制编码具有相同的前缀,GeoHash现已被应用在兴趣点快速搜索、面数据区域查询、空间数据组织等方面。
现有四叉树索引的基本思想是将地理空间递归划分为不同层次的树结构,它将已知范围的空间等分成四个相等的子空间,如此递归下去,直至树的层次达到一定深度或者满足某种要求后停止分割,四叉树的结构比较简单,并且当空间数据对象分布比较均匀时,具有比较高的空间数据插入和查询效率,因此四叉树是GIS中常用的空间索引之一。常规四叉树的结构如图4所示,地理空间对象都存储在叶子节点上,中间节点以及根节点不存储地理空间对象。
改进四叉树索引基本原理:基于现有四叉树和GeoHash原理,利用GeoHash编码对四叉树进行改进,提出改进四叉树结构QG-tree,基于GeoHash和四叉树相似的区域划分规则,对空间区域按照GeoHash进行划分,并以此格网建立四叉树,该四叉树的节点与GeoHash编码一一对应,原理如图2所示,四叉树节点a、b、c、d分别对应GeoHash的编码为11、01、00、10,节点a的叶子节点a1、a2、a3、a4对应的GeoHash的编码分别为1111、1101、1100、1110,通过对四叉树节点的GeoHash编码,可以快速查找四叉树的叶节点、兄弟节点和父节点,而不需要频繁访问四叉树。
如图1左侧所示的所述直接访问表用于指向改进四叉树中的所有中间节点,通过此结构可以快速访问四叉树中任意中间节点而不需要额外的磁盘I/O,所述直接访问表的记录形式为<Level,MBR,GeoHash,Ptr>,其中Level、MBR、GeoHash、Ptr分别表示改进四叉树中间节点的所在层次、节点的最小包围矩形框、GeoHash编码、节点的磁盘页面地址,直接访问表中的所有记录是顺序排列的,根据它们对应中间节点的层次来进行组织。
如图1右侧所示的所述Hash索引表的计量形式为<OID,PTR>,其中OID表示空间对象标识,PTR为指向空间对象记录所在叶子节点的磁盘页面偏移。
基于自底向上动态更新(Extended Bottom-Up Update,EBUU)的算法使用基于空间对象标识的Hash索引表来访问改进四叉树叶子节点中对应的空间对象记录,具体包括当空间对象发出位置更新请求时,先通过Hash索引表找到空间对象对应对象的原始坐标,并根据GeoHash编码原理将原始坐标经纬度坐标转化成一维的字符串,然后在直接访问表中通过GeoHash编码找到空间对象所属的叶子节点,判断空间对象更新后的新坐标是否超出了叶子节点的区域范围MBR,若
未超出叶子节点的区域范围MBR,即空间对象更新后的位置仍然落在原叶子节点MBR之中,以OID=obj1的空间对象为例,该空间对象更新后的坐标为(x1,y1),通过Hash表找到obj1对应的空间对象O1,其原始坐标为(x0,y0),根据GeoHash编码原理,将(x0,y0)经纬度坐标转化成一维的字符串,在图1所示的直接访问表中,通过GeoHash编码找到空间对象O1所属的叶子节点即父节点Q5,判断(x1,y1)是否超出了叶子节点Q5的区域范围MBR,如果没有超出叶子节点Q5的区域范围MBR,则修改空间对象O1的坐标值为(x1,y1),即直接用空间对象更新后的位置坐标替换原始坐标;
超出了叶子节点的区域范围MBR,但空间对象更新后的位置落在原叶子节点的某个非满兄弟叶子节点MBR之中,以OID=obj1的空间对象为例,该空间对象更新后的坐标为(x1,y1),落在了叶子节点Q7的MBR中,通过Hash表找到obj1对应的空间对象O1,其原始坐标为(x0,y0),根据GeoHash编码原理,将(x0,y0)经纬度坐标转化成一维的字符串,在图1的直接访问表中,通过GeoHash编码找到空间对象O1所属的叶子节点即父节点Q5,判断(x1,y1)是否超出了叶子节点Q5的区域范围MBR,如果超出了叶子节点Q5的区域范围MBR,则将空间对象O1从原叶子节点Q5上删除,同时根据GeoHash编码原理,将坐标(x1,y1)经纬度坐标转化成一维的字符串,在图1所示的直接访问表中通过GeoHash编码找到新的(因为坐标发了变化,所以称为新的)空间对象O1所属的叶子节点即父节点Q7,将新的空间对象O1插入到父节点Q7即前述某个非满兄弟叶子节点中,同时更新Hash索引表;
超出了叶子节点的区域范围MBR,但空间对象更新后的位置落在包含此对象的某个子树之下的新叶子节点中,以OID=obj1的空间对象为例,该空间对象更新后的坐标为(x1,y1),落在了叶子节点Q10的MBR中,通过Hash表找到obj1对应的空间对象O1,其原始坐标为(x0,y0),根据GeoHash编码原理,将(x0,y0)经纬度坐标转化成一维的字符串,在图1的直接访问表中,通过GeoHash编码找到空间对象O1所属的叶子节点即父节点Q5,判断(x1,y1)是否超出了叶子节点Q5的区域范围MBR,如果超出了叶子节点Q5的区域范围MBR,则将空间对象O1从叶子节点Q5上删除,同时根据GeoHash编码原理,将(x1,y1)经纬度坐标转化成一维的字符串,在图1的直接访问表中通过GeoHash编码找到新的空间对象O1所属的叶子节点即父节点Q10,将新的空间对象O1插入到父节点Q10即前述某个子树下的新叶子节点中,同时更新Hash索引表。
与现有技术相比,本发明提供的集成GeoHash和Quadtree的空间数据索引方法,首先创建包括改进四叉树、直接访问表和Hash索引表在内的改进四叉树索引结构,然后通过自底向上动态更新算法来更新空间对象位置,在索引更新中通过引入一个直接访问表,该直接访问表中的GeoHash编码即为树节点的编码,给定一个空间对象的坐标,通过GeoHash编码可以找到包含该节点的叶子节点,同时通过GeoHash编码可以找到该节点的父节点和兄弟节点,而维护直接访问表这样一个内存概要结构代价相对来说非常小,因为只有当节点分裂或者节点MBR变化时,才会对直接访问表进行更新,即当节点由于MBR扩展而导致更新向上传播时,或者当中间节点由于上溢而发生裂变时必须插入新记录到直接访问表中去,才必须修改直接访问表,然而实际上由于四叉树的高扇区使得大部分节点分裂发生在叶子层,因此在直接访问表中插入记录并不是频繁发生,这样通过直接访问表可以快速访问四叉树中任意中间节点而不需要额外的磁盘I/O,由此可以支持索引的频繁更新操作,大大提高了数据管理效率。
作为具体实施例,所述方法还包括用于在查询窗口q=([x1,y1],[x2,y2])找到所有在这个查询窗口q中的空间对象的范围查询,其中,[x1,y1],[x2,y2]分别表示q在二维空间中每一维的取值范围,所述范围查询具体包括面数据处理和查询处理:
所述面数据处理的目的是获得被面数据覆盖的Geohash单元网格的编码(集)标识面数据;在对面数据处理时,使用二叉树表示Geohash的划分结构,当前结点的左右子结点即表示对当前单元网格进行一次划分所得的两个子单元网格,通过Geohash单元网格空间范围与面数据的空间范围的拓扑关系,采用Geohash单元网格递归划分面数据,获得面数据覆盖的Geohash单元网格编码,实现对面数据的处理;
所述查询处理分成粗选和精选两个过程,粗选过程通过面数据处理将查询窗口q划分成GeoHash编码对应的如图5所示多个区域,利用GeoHash编码在图1所示的直接访问表中找到所有叶子节点和叶子节点中的空间对象;精选过程利用粗选过程已经查询找到的空间对象,与查询窗口q进行空间计算,判断空间对象是否在查询窗口q内,由此大大提高了数据空间查询效率。
作为具体实施例,所述方法还包括添加数据:以OID为obj10的空间对象O10为例,其坐标为(x2,y2),根据GeoHash编码原理将待添加空间对象O10的坐标(x2,y2)经纬度坐标转化成一维的字符串,在图1所示的直接访问表中通过GeoHash编码找到待添加空间对象O10所属的父节点Q12,将待添加空间对象O10插入父节点Q12中,同时更新Hash索引表。
作为具体实施例,所述方法还包括删除数据:以OID为obj1的空间对象O1为例,其坐标为(x0,y0),通过Hash索引表找到待删除空间对象O1所在叶子节点的磁盘页面偏移,根据GeoHash编码原理将待删除空间对象O1的坐标(x0,y0)经纬度坐标转化成一维的字符串,在图1所示的直接访问表中通过GeoHash编码找到待删除空间对象O1所属的父节点Q5,从父节点Q5中删除待删除空间对象O1的索引,同时将待删除空间对象O1从Hash索引表删除。
最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (4)
1.一种集成GeoHash和Quadtree的空间数据索引方法,其特征在于,所述索引方法包括改进四叉树索引结构创建和基于自底向上动态更新;其中,
创建的改进四叉树索引结构包括改进四叉树、直接访问表和建立于空间对象之上的Hash索引表;具体地,
所述改进四叉树采用基于现有GeoHash和四叉树相似的区域划分规则,对空间区域按照GeoHash进行划分,并以此格网建立四叉树,该四叉树的节点与GeoHash编码一一对应;
所述直接访问表用于指向改进四叉树中的所有中间节点,所述直接访问表的记录形式为<Level,MBR,GeoHash,Ptr>,其中Level、MBR、GeoHash、Ptr分别表示改进四叉树中间节点的所在层次、节点的最小包围矩形框、GeoHash编码、节点的磁盘页面地址,直接访问表中的所有记录是顺序排列的,根据它们对应中间节点的层次来进行组织;
所述Hash索引表的计量形式为<OID,PTR>,其中OID表示空间对象标识,PTR为指向空间对象记录所在叶子节点的磁盘页面偏移;
基于自底向上动态更新的算法使用基于空间对象标识的Hash索引表来访问改进四叉树叶子节点中对应的空间对象记录,具体包括当空间对象发出位置更新请求时,先通过Hash索引表找到空间对象对应对象的原始坐标,并根据GeoHash编码原理将原始坐标经纬度坐标转化成一维的字符串,然后在直接访问表中通过GeoHash编码找到空间对象所属的叶子节点,判断空间对象更新后的新坐标是否超出了叶子节点的区域范围MBR,若
未超出叶子节点的区域范围MBR,即空间对象更新后的位置仍然落在原叶子节点MBR之中,则直接用空间对象更新后的位置坐标替换原始坐标;
超出了叶子节点的区域范围MBR,但空间对象更新后的位置落在原叶子节点的某个非满兄弟叶子节点MBR之中,则将空间对象从原叶子节点上删除,同时根据GeoHash编码原理将新坐标经纬度坐标转化成一维的字符串,在直接访问表中通过GeoHash编码找到新的空间对象所属的父节点,将新的空间对象插入父节点即前述某个非满兄弟叶子节点中,同时更新Hash索引表;
超出了叶子节点的区域范围MBR,但空间对象更新后的位置落在包含此对象的某个子树之下的新叶子节点中,则将空间对象从原叶子节点上删除,同时根据GeoHash编码原理将新坐标经纬度坐标转化成一维的字符串,在直接访问表中通过GeoHash编码找到新的空间对象所属的父节点,将新的空间对象插入父节点即前述某个子树下的新叶子节点中,同时更新Hash索引表。
2.根据权利要求1所述的集成GeoHash和Quadtree的空间数据索引方法,其特征在于,所述方法还包括用于在查询窗口q=([x1,y1],[x2,y2])找到所有在这个查询窗口q中的空间对象的范围查询,其中,[x1,y1],[x2,y2]分别表示q在二维空间中每一维的取值范围,所述范围查询具体包括面数据处理和查询处理:
所述面数据处理使用二叉树表示Geohash的划分结构,当前结点的左右子结点即表示对当前单元网格进行一次划分所得的两个子单元网格,通过Geohash单元网格空间范围与面数据的空间范围的拓扑关系,采用Geohash单元网格递归划分面数据,获得面数据覆盖的Geohash单元网格编码,实现对面数据的处理;
所述查询处理分成粗选和精选两个过程,粗选过程通过面数据处理将查询窗口q划分成GeoHash编码对应的多个区域,利用GeoHash编码在直接访问表中找到所有叶子节点和叶子节点中的空间对象;精选过程利用粗选过程已经查询找到的空间对象,与查询窗口q进行空间计算,判断空间对象是否在查询窗口q内。
3.根据权利要求1所述的集成GeoHash和Quadtree的空间数据索引方法,其特征在于,所述方法还包括添加数据:根据GeoHash编码原理将待添加空间对象的坐标经纬度坐标转化成一维的字符串,在直接访问表中通过GeoHash编码找到待添加空间对象所属的父节点,将待添加空间对象插入父节点中,同时更新Hash索引表。
4.根据权利要求1所述的集成GeoHash和Quadtree的空间数据索引方法,其特征在于,所述方法还包括删除数据:通过Hash索引表找到待删除空间对象所在叶子节点的磁盘页面偏移,根据GeoHash编码原理将待删除空间对象的坐标经纬度坐标转化成一维的字符串,在直接访问表中通过GeoHash编码找到待删除空间对象所属的父节点,从父节点中删除待删除空间对象的索引,同时将待删除空间对象从Hash索引表删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010582966.6A CN111723096B (zh) | 2020-06-23 | 2020-06-23 | 一种集成GeoHash和Quadtree的空间数据索引方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010582966.6A CN111723096B (zh) | 2020-06-23 | 2020-06-23 | 一种集成GeoHash和Quadtree的空间数据索引方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111723096A true CN111723096A (zh) | 2020-09-29 |
CN111723096B CN111723096B (zh) | 2022-08-05 |
Family
ID=72568421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010582966.6A Active CN111723096B (zh) | 2020-06-23 | 2020-06-23 | 一种集成GeoHash和Quadtree的空间数据索引方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111723096B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113009916A (zh) * | 2021-03-08 | 2021-06-22 | 珠海市一微半导体有限公司 | 一种基于全局地图探索的路径规划方法、芯片及机器人 |
CN113946584A (zh) * | 2021-10-26 | 2022-01-18 | 中国矿业大学 | 面向海量矢量数据检索的qrb树索引方法 |
CN114726595A (zh) * | 2022-03-24 | 2022-07-08 | 中科吉芯(昆山)信息科技有限公司 | 一种利用时空信息认证人机身份的方法 |
CN115809360A (zh) * | 2023-02-08 | 2023-03-17 | 深圳大学 | 一种大规模时空流数据实时空间连接查询方法及相关设备 |
CN116010677A (zh) * | 2023-03-24 | 2023-04-25 | 中国华能集团清洁能源技术研究院有限公司 | 空间索引方法、装置及其电子设备 |
CN118474861A (zh) * | 2024-07-12 | 2024-08-09 | 每日互动股份有限公司 | 一种确定目标位置信息的方法、装置、设备及介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289466A (zh) * | 2011-07-21 | 2011-12-21 | 东北大学 | 一种基于区域覆盖的k近邻查询方法 |
CN103440280A (zh) * | 2013-08-13 | 2013-12-11 | 江苏华大天益电力科技有限公司 | 一种应用于海量空间数据检索的索引方法及装置 |
WO2015096582A1 (zh) * | 2013-12-27 | 2015-07-02 | 华为技术有限公司 | 一种时空数据的索引建立方法、查询方法、装置及设备 |
CN107423368A (zh) * | 2017-06-29 | 2017-12-01 | 中国测绘科学研究院 | 一种非关系数据库中的时空数据索引方法 |
CN108509550A (zh) * | 2018-03-21 | 2018-09-07 | 中南大学 | 一种支持协作处理查询的空间索引结构及其构造方法 |
CN109284338A (zh) * | 2018-10-25 | 2019-01-29 | 南京航空航天大学 | 一种基于混合索引的卫星遥感大数据优化查询方法 |
US10311088B1 (en) * | 2017-02-03 | 2019-06-04 | Marklogic Corporation | Apparatus and method for resolving geospatial queries |
CN110147377A (zh) * | 2019-05-29 | 2019-08-20 | 大连大学 | 大规模空间数据环境下基于二级索引的通用查询算法 |
-
2020
- 2020-06-23 CN CN202010582966.6A patent/CN111723096B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102289466A (zh) * | 2011-07-21 | 2011-12-21 | 东北大学 | 一种基于区域覆盖的k近邻查询方法 |
CN103440280A (zh) * | 2013-08-13 | 2013-12-11 | 江苏华大天益电力科技有限公司 | 一种应用于海量空间数据检索的索引方法及装置 |
WO2015096582A1 (zh) * | 2013-12-27 | 2015-07-02 | 华为技术有限公司 | 一种时空数据的索引建立方法、查询方法、装置及设备 |
US10311088B1 (en) * | 2017-02-03 | 2019-06-04 | Marklogic Corporation | Apparatus and method for resolving geospatial queries |
CN107423368A (zh) * | 2017-06-29 | 2017-12-01 | 中国测绘科学研究院 | 一种非关系数据库中的时空数据索引方法 |
CN108509550A (zh) * | 2018-03-21 | 2018-09-07 | 中南大学 | 一种支持协作处理查询的空间索引结构及其构造方法 |
CN109284338A (zh) * | 2018-10-25 | 2019-01-29 | 南京航空航天大学 | 一种基于混合索引的卫星遥感大数据优化查询方法 |
CN110147377A (zh) * | 2019-05-29 | 2019-08-20 | 大连大学 | 大规模空间数据环境下基于二级索引的通用查询算法 |
Non-Patent Citations (3)
Title |
---|
YASMIN FATHY 等: "Distributed spatial indexing for the Internet of Things data management", 《2017 IFIP/IEEE SYMPOSIUM ON INTEGRATED NETWORK AND SERVICE MANAGEMENT (IM)》 * |
付仲良 等: "M-Quadtree索引:一种基于改进四叉树编码方法的云存储环境下空间索引方法", 《测绘学报》 * |
赵彦庆 等: "一种海量空间数据云存储与查询算法", 《测绘科学技术学报》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113009916A (zh) * | 2021-03-08 | 2021-06-22 | 珠海市一微半导体有限公司 | 一种基于全局地图探索的路径规划方法、芯片及机器人 |
CN113946584A (zh) * | 2021-10-26 | 2022-01-18 | 中国矿业大学 | 面向海量矢量数据检索的qrb树索引方法 |
CN114726595A (zh) * | 2022-03-24 | 2022-07-08 | 中科吉芯(昆山)信息科技有限公司 | 一种利用时空信息认证人机身份的方法 |
CN114726595B (zh) * | 2022-03-24 | 2023-09-29 | 中科吉芯(昆山)信息科技有限公司 | 一种利用时空信息认证人机身份的方法 |
CN115809360A (zh) * | 2023-02-08 | 2023-03-17 | 深圳大学 | 一种大规模时空流数据实时空间连接查询方法及相关设备 |
CN116010677A (zh) * | 2023-03-24 | 2023-04-25 | 中国华能集团清洁能源技术研究院有限公司 | 空间索引方法、装置及其电子设备 |
CN118474861A (zh) * | 2024-07-12 | 2024-08-09 | 每日互动股份有限公司 | 一种确定目标位置信息的方法、装置、设备及介质 |
CN118474861B (zh) * | 2024-07-12 | 2024-09-13 | 每日互动股份有限公司 | 一种确定目标位置信息的方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111723096B (zh) | 2022-08-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111723096B (zh) | 一种集成GeoHash和Quadtree的空间数据索引方法 | |
US6816779B2 (en) | Programmatically computing street intersections using street geometry | |
CN100418092C (zh) | 海量数据内存数据库中快速定位的网格+t树索引的方法 | |
US7046827B2 (en) | Adapting point geometry for storing address density | |
CN101324896B (zh) | 一种矢量数据的存储方法、查询方法和管理系统 | |
US6658356B2 (en) | Programmatically deriving street geometry from address data | |
CN108009265B (zh) | 一种云计算环境下的空间数据索引方法 | |
CN104199860A (zh) | 一种基于二维地理位置信息的数据集分片方法 | |
CN106991149B (zh) | 一种融合编码和多版本数据的海量空间对象存储方法 | |
CN112395288B (zh) | 基于希尔伯特曲线的r树索引合并更新方法、装置及介质 | |
Roumelis et al. | Efficient query processing on large spatial databases: a performance study | |
CN111522892A (zh) | 地理要素的检索方法及装置 | |
CN112214472A (zh) | 气象格点数据的存储及查询方法、装置及存储介质 | |
CN115408382B (zh) | 面向大规模卫星数据的矢量空间信息网格化存储管理方法 | |
Wang et al. | Space filling curve based point clouds index | |
CN116090395A (zh) | 数据处理方法、数据结构的生成方法、查询方法 | |
Vassilakopoulos et al. | External balanced regular (x-BR) trees: new structures for very large spatial databases | |
Hörhammer et al. | Spatial indexing with a scale dimension | |
Lee et al. | An efficient location encoding method for moving objects using hierarchical administrative district and road network | |
Arpitha et al. | A Navigation Supporting System Using R-Tree | |
CN110928968B (zh) | 一种二维地理空间大数据的存储与查询计算机介质 | |
Salzberg | Practical spatial database access methods | |
Brisaboa et al. | A new point access method based on wavelet trees | |
CN118535570A (zh) | 集成NoSQL、空间填充曲线与R*树的点云高效管理方法及应用 | |
CN117909436A (zh) | 一种面向大规模gps轨迹数据的混合多级时空索引构建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |