CN111475597A - 非刚性网格编码、空间对象唯一标识、查询方法及装置 - Google Patents
非刚性网格编码、空间对象唯一标识、查询方法及装置 Download PDFInfo
- Publication number
- CN111475597A CN111475597A CN202010262467.9A CN202010262467A CN111475597A CN 111475597 A CN111475597 A CN 111475597A CN 202010262467 A CN202010262467 A CN 202010262467A CN 111475597 A CN111475597 A CN 111475597A
- Authority
- CN
- China
- Prior art keywords
- grid
- coding
- code
- preset
- grids
- 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
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/29—Geographical information databases
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Remote Sensing (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请公开了一种非刚性网格编码、空间对象唯一标识、查询方法及装置,其中,编码方法在按照预设树状网格结构划分方式对目标地理空间进行划分得到多个网格后,对网格的中心、至少一个顶点和至少两个边进行二进制编码;基于网格这些位置的二进制编码和网格对应的层级,对网格这些位置进行多尺度整数编码;基于网格这些位置的多尺度整数编码和网格对应的层级,确定网格对应的刚性父单元和非刚性父单元中至少一个的多尺度整数编码。该编码方法易于进行编码混合操作,具备更好的空间计算能力。在此基础上建立索引,使得任一空间对象都能用唯一编码来标识,且该唯一编码对应的网格尺度与空间对象的尺度相当,从而使得网格编码与空间对象关联性更强。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种非刚性网格编码、空间对象唯一标识、查询方法及装置。
背景技术
由于人类对地理空间认知的发展和遥感技术的进步,空间信息获取能力大幅提高,积累的空间数据也越来越多。空间数据的爆发式增长使得数据的组织和管理越来越困难,如何实现海量空间数据的有效标识和高效索引,已成为本领域亟待解决的关键问题之一。
为了解决上述问题,本领域人员提出了一种基于网格剖分框架的空间数据管理模式,在该模式中,用空间网格来标识和索引空间对象。在用空间网格标识和索引空间对象时,首先需要对空间网格进行编码,然后用空间网格的编码对空间对象进行标识,让空间对象与空间网格之间建立联系,再建立规则网格之间的联系和索引策略,之后通过空间网格与对象之间的关联查询空间对象。
目前提出了两类空间网格编码方法:
(1)刚性树状网格编码方法
结合网格形态和层次结构的不同,刚性树状网格包括:1)三角形刚性树状网,例如四叉树三角网和九叉树三角网;2)六边形刚性树状网格,例如三叉树六边形网格、七叉树六边形网格、四叉树六边形网格和七叉树六边形网格等;3)四边形刚性树状网格,例如四叉树四边形网格和九叉树四边形网格。
现有的基于地理剖分网格的方法大多采用的是四叉树四边形网格模型,因此下面的分析以这类树状网格为例进行说明,其他类型的树状网格存在类似的问题。
对于刚性树状网格编码方法而言,相邻网格只能按照刚性结构进行合并,用这类网格建立空间对象的索引时存在图1所示三种情况。在图1中,父网格A包含子网格A0、A1、A2和A3,父网格B、C和D没有画出,但画出了它们的部分子网格,这些子网格分别使用B0、B2、C1、D0来表示。在图1(a)中,空间对象(曲线包围的部分代表一个空间对象)占网格A的4个子网格;在图1(b)中,空间对象跨越网格A和B,占A和B各2个子网格,分别为A1、A3、B0、B2;在图1(c)中,空间对象跨越网格A、B、C和D,各占其1个子网格,分别为A3、B2、C1、D0。虽然,在这三种情况中,空间对象的大小没有发生变化,仅是位置发生了变化,但由于图1(a)中空间对象所占的4个子网格是在刚性网格A中存在合并关系,因此可以用其父网格A的编码来标识该对象;而在图1(b)和图1(c)中,空间对象虽然也占4个子网格,但是这4个子网格不存在刚性合并关系,因此在现有的刚性树状网格结构与编码体系中,若要对后两种情况的空间对象进行标识有两种方式:①用多个网格编码标识同一对象,②用一个更大的网格的编码标识对象。很显然,方式①增加了标识量,不利于海量空间数据的管理和存储;方式②虽然用一个编码标识了对象,但是得到的网格尺度和当前对象往往匹配程度很低,冗余度较大,不利于空间索引。
需要说明的是,图1(b)和图1(c)中的情况在全球范围的很多位置都会出现,而图1(a)情况出现的概率相对较小。如图2所示,全球范围采用四叉树四边形网格剖分时,用交叉线填充的圈标注的是四个网格难以合并成上一层次网格的位置,空白圈标注的是四个网格可以合并成上一层次网格的位置,并且很多网格都可以合并成更大的网格,但是却无法合并成上一层非刚性结构的网格,例如图2中赤道和本初子午线交回处的网格。从图2中可以发现,大量的四个网格虽然具备相邻与等层级的特性,但由于不是刚性四叉树结构的中间节点,不具备合并的可能,因此图1(b)和图1(c)中的情况不可避免。
(2)非刚性树状网格编码方法
非刚性树状网格以空间目标(空间对象)为基础,以目标为研究对象,这类树状网格方法以R树及其变种树的对象网格划分为代表,主要特点就是非刚性的树状结构,在R树进行空间对象标识和索引过程中,使用最小外包矩形网格来唯一来标识空间对象。该方式操作简单,可以满足一般量级空间数据的组织与管理,但是建立索引时需要将对象逐个插入,效率很低,不利于海量对象的动态存储和管理;并且数据标识缺少地学涵义,同一地区的空间数据之间缺少空间尺度与位置关联,造成同一区域的数据关联性差,不利于空间数据检索、管理和存储。
总的来说,相关技术中的这两种方式都存在一些缺陷,无法完全满足当下海量空间数据组织与管理的需求。
发明内容
本申请实施例提供了一种非刚性网格编码、空间对象唯一标识、查询方法及装置,以解决相关技术中的空间网格编码方案,无法完全满足当下海量空间数据组织与管理的需求。
为了解决上述问题,本申请实施例是这样实现的:
第一方面,本申请实施例提供一种非刚性空间网格编码方法,包括:
按照预设树状网格结构划分方式对目标地理空间进行划分,得到多个层级下的多个网格,其中,不同层级网格的尺度不同;
对所述网格的预设位置进行二进制编码,其中,所述预设位置包括网格中心、至少一个顶点和至少两个边,所述至少两个边互不平行;
基于所述网格的预设位置的二进制编码和所述网格对应的层级,对所述网格的预设位置进行多尺度整数编码;
基于所述网格的预设位置的多尺度整数编码和所述网格对应的层级,确定所述网格对应的父单元的编码,其中,所述父单元包括刚性父单元和非刚性父单元中的至少一种,所述刚性父单元是所述网格在树状网格结构中的真实父单元,所述非刚性父单元是所述网格与相邻网格聚合形成的虚拟父单元。
第二方面,本申请实施例提供一种空间对象唯一标识方法,包括:
在目标地理空间中,确定空间对象的最小外包矩形,其中,所述目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格;
基于所述最小外包矩形的尺度,确定与所述空间对象相匹配的目标层级,并在所述目标层级下,确定所述空间对象的映射网格,其中,所述映射网格包括多个子网格,所述映射网格是所述多个子网格的父单元,所述父单元为刚性父单元或非刚性父单元,所述刚性父单元是所述多个子网格在树状网格结构中的真实父单元,所述非刚性父单元是所述多个子网格聚合形成的虚拟父单元;
基于预设编码方法,对所述映射网格进行多尺度整数编码,并将所述映射网格的多尺度整数编码确定为所述空间对象的标识,其中,所述预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边;
基于确定的所述空间对象的标识建立所述空间对象的查询索引,得到所述目标地理空间中的空间对象的索引表。
第三方面,本申请实施例提供一种空间对象查询方法,包括:
接收待查询区域的坐标和预设的查询父单元层级阈值;
基于所述待查询区域的坐标,确定所述待查询区域在目标地理空间中的查询网格,并基于预设编码方法确定所述查询网格的多尺度整数编码,得到待查询区域的查询网格编码集合,其中,所述待查询区域在所述目标地理空间中的查询网格包括所述待查询区域占用的网格和按照预设扩充规则扩充的网格,所述目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格,所述预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边,所述刚性父单元是网格在树状网格结构中的真实父单元,所述非刚性父单元是网格与相邻网格聚合形成的虚拟父单元;
基于所述预设编码方法,确定所述查询网格编码集合中每一编码在指定父单元层级中的四个父单元的多尺度整数编码,并保存至父单元编码集合;其中,所述指定父单元层级包括小于和等于上述查询父单元层级阈值的父单元层级;
对所述查询网格编码集合中的每一编码,基于所述预设编码方法确定该编码在上一层级的父单元编码FMc,使用区间查询方法,从预设索引表中查询编码值在[FMc-Tn,FMc+Tn]之间的空间对象,得到第一查询结果,其中,Tn为FMc所在层级的第一个多尺度整数编码值,所述预设索引表中存储有空间对象ID与空间对象的映射网格的多尺度整数编码之间的对应关系,所述映射网格包括多个子网格,所述映射网格是所述多个子网格的刚性或非刚性父单元,所述映射网格的多尺度整数编码是基于所述预设编码方法得到的;
对所述父单元编码集合中的每一编码,从所述预设索引表中查询该编码对应的空间对象,得到第二查询结果;
剔除第一查询结果和第二查询结果中不符合查询条件的空间对象,得到最终查询结果。
第四方面,本申请实施例提供一种非刚性空间网格编码装置,包括:
网格划分模块,用于按照预设树状网格结构划分方式对目标地理空间进行划分,得到多个层级下的多个网格,其中,不同层级网格的尺度不同;
第一编码模块,用于对所述网格的预设位置进行二进制编码,其中,所述预设位置包括网格中心、至少一个顶点和至少两个边,所述至少两个边互不平行;
第二编码模块,用于基于所述网格的预设位置的二进制编码和所述网格对应的层级,对所述网格的预设位置进行多尺度整数编码;
第三编码模块,用于基于所述网格的预设位置的多尺度整数编码和所述网格对应的层级,确定所述网格对应的父单元的编码,其中,所述父单元包括刚性父单元和非刚性父单元中的至少一种,所述刚性父单元是所述网格在树状网格结构中的真实父单元,所述非刚性父单元是所述网格与相邻网格聚合形成的虚拟父单元。
第五方面,本申请实施例提供一种空间对象唯一标识装置,包括:
外包矩形确定模块,用于在目标地理空间中,确定空间对象的最小外包矩形,其中,所述目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格;
映射网格确定模块,用于基于所述最小外包矩形的尺度,确定与所述空间对象相匹配的目标层级,并在所述目标层级下,确定所述空间对象的映射网格,其中,所述映射网格包括多个子网格,所述映射网格是所述多个子网格的父单元,所述父单元为刚性父单元或非刚性父单元,所述刚性父单元是所述多个子网格在树状网格结构中的真实父单元,所述非刚性父单元是所述多个子网格聚合形成的虚拟父单元;
空间对象标识模块,用于基于预设编码方法,对所述映射网格进行多尺度整数编码,并将所述映射网格的多尺度整数编码确定为所述空间对象的标识,其中,所述预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边;
索引建立模块,用于基于确定的所述空间对象的标识建立所述空间对象的查询索引,得到所述目标地理空间中的空间对象的索引表。
第六方面,本申请实施例提供一种空间对象查询装置,包括:
参数接收模块,用于接收待查询区域的坐标和预设的查询父单元层级阈值:
第一编码集合确定模块,用于基于所述待查询区域的坐标,确定所述待查询区域在目标地理空间中的查询网格,并基于预设编码方法确定所述查询网格的多尺度整数编码,得到待查询区域的查询网格编码集合,其中,所述待查询区域在所述目标地理空间中的查询网格包括所述待查询区域占用的网格和按照预设扩充规则扩充的网格,所述目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格,所述预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边,所述刚性父单元是网格在树状网格结构中的真实父单元,所述非刚性父单元是网格与相邻网格聚合形成的虚拟父单元;
第二编码集合确定模块,用于基于所述预设编码方法,确定所述查询网格编码集合中每一编码在指定父单元层级中的四个父单元的多尺度整数编码,并保存至父单元编码集合;其中,所述指定父单元层级包括小于和等于上述查询父单元层级阈值的父单元层级;
第一查询模块,用于对所述查询网格编码集合中的每一编码,基于所述预设编码方法确定该编码在上一层级的父单元编码FMc,使用区间查询方法,从预设索引表中查询编码值在[FMc-Tn,FMc+Tn]之间的空间对象,得到第一查询结果,其中,Tn为FMc所在层级的第一个多尺度整数编码值,所述预设索引表中存储有空间对象ID与空间对象的映射网格的多尺度整数编码之间的对应关系,所述映射网格包括多个子网格,所述映射网格是所述多个子网格的刚性或非刚性父单元,所述映射网格的多尺度整数编码是基于所述预设编码方法得到的;
第二查询模块,用于对所述父单元编码集合中的每一编码,从所述预设索引表中查询该编码对应的空间对象,得到第二查询结果;
精查模块,用于剔除第一查询结果和第二查询结果中不符合查询条件的空间对象,得到最终查询结果。
本申请实施例提供的空间网格编码方案,不仅对代表网格本身的网格中心进行了编码,与此同时还对网格的至少一个顶点和至少两个边进行了编码,这种编码方式不仅可以实现网格的刚性父单元的编码,还可以获得网格的非刚性父单元的编码,并且采用同一套整数编码方式,易于进行编码混合操作,该编码方式具备更好的空间计算能力,更优越。在该编码方案基础上提供的空间对象的索引建立方案,使得任一空间对象都能够用唯一编码来标识,并且该唯一编码对应的映射网格的尺度与空间对象的尺度相当,从而使得映射网格与空间对象关联性更强;此外,通过本方案建立的空间对象的索引不会重复记录空间对象,这不仅使索引数量大大降低,从而提高查询效率和查询准确率,还无需对空间对象查询结果进行去重处理。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为相关技术中的刚性树状网格编码方法的网格结构示意图。
图2为相关技术中,全球范围内刚性树状网格编码方法无法完整包含空间对象的位置示意图。
图3是本申请实施例提供的一种非刚性空间网格编码方法的流程示意图。
图4是本申请实施例提供的四边形网格的结构示意图。
图5是本申请实施例提供的三角形网格的结构示意图。
图6是本申请实施例提供的六边形网格的结构示意图。
图7是本申请实施例提供的四边形网格中心的编码结果示意图。
图8是本申请实施例提供的四边形网格顶点和边的编码结果示意图。
图9是本申请实施例提供的三种父单元网格的结构示意图。
图10是本申请实施例提供的一种空间对象唯一标识方法的流程示意图。
图11是本申请实施例提供的确定空间对象的映射网格的五种情况示意图。
图12是本申请实施例提供的确定空间对象的映射网格的编码的三种情况示意图。
图13是本申请实施例提供的查询网格与空间对象标识网格的关系示意图。
图14是本申请实施例提供的查询网格及其包含和不包含的编码的关系示意图。
图15是本申请实施例提供的扩充查询网格的原理示意图。
图16是本申请实施例提供的网格的空间父单元、编码父单元和虚拟父单元的示意图。
图17是本申请实施例提供的空间父单元的树状结构示意图。
图18是本申请实施例提供的一种空间对象查询方法的流程示意图。
图19是本申请实施例提供的一种非刚性空间网格编码装置的结构示意图。
图20是本申请实施例提供的一种空间对象唯一标识装置的结构示意图。
图21是本申请实施例提供的一种空间对象查询装置的结构示意图。
图22是本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了解决相关技术中的空间网格编码方案,无法完全满足当下海量空间数据组织与管理的需求,本申请实施例:
(1)提出了一种非刚性空间网格编码方法;
(2)在(1)的基础上,提出了一种空间对象唯一标识方法;
(3)在(1)和(2)的基础上,提出了一种空间对象查询方法。
本申请实施例提供的方法及装置可以由计算机等电子设备执行。下面结合附图逐一进行说明。
实施例1
如图3所示,本说明书实施例提供的一种非刚性空间网格编码方法,可以包括:
步骤301、按照预设树状网格结构划分方式对目标地理空间进行划分,得到多个层级下的多个网格。
其中,不同层级网格的尺度不同。在进行树状网格划分时,最大层级数可以根据实际情况确定,例如可以确定最大层级数为30,假设用N表示层级,此时N的取值为[0,30]之间的整数。
在本实施例中,预设树状网格结构可以包括但不限于三角形树状网格结构、四边形树状网格结构和六边形树状网格结构中的一种,其中,三角形树状网格结构包括但不限于四叉树三角网和九叉树三角网等;四边形树状网格结构包括但不限于四叉树四边形网格和九叉树四边形网格;六边形树状网格结构包括但不限于三叉树六边形网格、七叉树六边形网格、四叉树六边形网格和七叉树六边形网格等。图4、图5和图6分别示出了一个四叉树四边形网格、四叉树三角网和四叉树六边形网格的结构示意图。
如图4所示,一个四边形网格可以被称为格元,在编码时,格元可用格元中心代表;一个四边形网格可以被分为四个象限;一个四边形网格的四个顶点可以被称为格点;一个四边形网格的四条边可以被称为格边,在编码时,格边可用格边中心代表;可以对一个四边形网格定义四个方向,它们包括纬度方向上的方向一和方向二,以及经度方向上的方向三和方向四。这里所说的四边形网格可以是通过四叉树四边形网格划分方式划分得到的任一层级的四边形网格。
下文中为了方便说明,主要以四叉树四边形状网格结构为例介绍本申请实施例提供的各个技术方案。也就是说,作为一个例子,步骤301可包括:按照四叉树四边形网格划分方式及经纬度方向,对目标地理空间进行划分。具体划分时,将整个二维的目标地理空间(0级网格)沿经纬度方向进行四叉划分,将目标地理空间等分成四个相同的子空间,再将每个子空间继续划分为四个更高级别的子空间,按照这种方法递归,直至获得规定的最高层级(如30级)的子空间,其中网格层级指的是空间四叉树划分的次数,可以用上文中的N表示。
目标地理空间可以是待管理的任一二维地理空间,目标地理空间可用该地理空间的电子地图表示,例如,全球范围内的地理空间的电子地图,或者一个国家范围内的地理空间的电子地图,或者一个城市范围内的地理空间的电子地图,等等。在对目标地理空间进行划分时,具体是对目标地理空间的电子地图进行划分。
步骤302、对网格的预设位置进行二进制编码,其中,预设位置包括网格中心、至少一个顶点和互不平行的至少两个边。
在本申请实施例中,采用同一套树型编码方法,不仅对代表网格格元的网格中心(格元中心)进行编码,还对网格的至少一个顶点和互不平行的至少两个边进行编码,而相关技术中仅对网格格元进行编码,因此,本申请实施例提供的该编码方法可以实现用数量更少的、唯一编码标识空间对象的目的。
在步骤302中,可以对目标地理空间中各层级下的所有网格进行编码。
参考图4可知,对于四叉树四边形状网格而言,需要编码的预设位置包括网格在第一象限的顶点(格点)、网格在经度方向上的一个边(方向二或方向四格边)和网格在纬度方向上的一个边(方向一或方向三格边)。另外,需要说明的是,在本申请实施例中,对于四叉树四边形网格而言,同真实的地理空间的经纬度方向一致,一个网格的上方指的是沿经度指向北极的方向,一个网格的下方指的是沿经度指向南极的方向,一个网格的左方指的是沿纬度指向西的方向,一个网格的右方指的是沿纬度指向东的方向,下文不再赘述。
参考图5可知,对于三角形树状网格而言,需要编码的预设位置包括网格的一个顶点(格点)和三条边(三条格边)。参考图6可知,对于六边形树状网格而言,需要编码的预设位置包括网格两个顶点(可以是最上方的两个顶点)和三条边(六边形的上半部分或下半部分中的三条边)。
下面以四叉树四边形网格为例,分别对网格的第一预设位置和第二预设位置的编码过程进行说明,其中,第一预设位置为网格中心(格元),第二预设位置包括上述至少一个顶点(格点)和至少两条边(格边)中的一个位置。
(1)网格的第一预设位置(格元)的编码过程
具体的,对网格的第一预设位置进行编码可以包括如下步骤:
第一步:基于对目标地理空间的划分结果,确定网格的第一预设位置的横坐标和纵坐标。
例如,确定出网格的坐标为(I,J),以及该网格所在的层级为N。
第二步:将所述网格的第一预设位置的横坐标和纵坐标,分别转成二进制的第一编码和第二编码。
例如,将(I,J)转换为二进制数(I′2,J′2)。
第三步:按照先第二编码后第一编码的顺序,对第一编码和第二编码进行交叉取位,得到第三编码。
例如,按照先J′2后I′2的顺序,依次交叉取位得到第三编码A2,如公式(1)所示。
第四步:将第三编码左移两位得到网格的第一预设位置的二进制编码。
例如,将第三编码A2左移两位得到编码A′2,如公式(2)所示。
A′2=A2<<2 (2)
其中,左移之后多出来的两位(A′2的最后两位)用于记录该二进制编码(A′2)对应的位置信息,例如,当这两位为00时,表示该编码对应的位置为格元,当这两位为01时,表示该编码对应的位置为方向一格边或方向三格边,当这两位为10时,表示该编码对应的位置为方向二格边或方向四格边,当这两位为11时,表示该编码对应的位置为格点。
进一步地,对网格的第一预设位置进行编码还可以包括:
第五步:将二进制编码A′2转换为四进制编码B4。
也就是说,网格的编码还可以由一系列四进制数构成一维的Z形曲线(也可以是其他区曲线,如Hilbert曲线)来表示,使得二维的网格坐标可映射到一维空间中。采用四进制数对网格坐标进行编码,需要建立网格坐标与编码值的对应关系。依据Z形编码的特点,利用交叉取位的方法将网格的横纵坐标转换为四进制数编码。为了区分进制,本文中使用下标表示编码的进制,二进制使用下标2,四进制使用下标4,十进制不使用下标。
举例来说,第5层级(N=5)网格中坐标为(20,17)的网格格元的编码步骤可以包括:
①网格格元坐标(20,17)对应的二进制编码为(101002,100012);
③将编码左移两位:11000100102<<2=1100010010002;
④转换为四进制:3010204。
需要说明的是,将网格的格元编码由二进制转换成四进制并不是必须的,而是根据需要可选的。
再如,在四叉树四边形网格的第2层级网格中,共有4×4个网格,按照上述对该层级中的各网格格元进行编码得到的编码结果如图7所示,具体计算过程同上。
(2)网格的第二预设位置(格点和格边)的编码过程
由上文中对四叉树四边形网格的描述可知,第N层级共有4N个网格,其中包含4N+1个编码。为保证编码本身数量够用,需要将原有编码方法的最大层级减少一层,相当于用第N+1层的编码对第N层的格元、格点进行编码。
网格格点、格边的编码建立在网格格元编码的基础之上,对四叉树四边形网格的格点和格边编码时,仍然可以按照Z形曲线编码的二进制形式,格点和格边的二进制编码的前几位与该格点和格边所在格元的编码的前几位相同,最后2位用于记录编码的位置信息,同前文所述,当最后两位为00时,表示该编码对应的位置为格元,当最后两位为01时,表示该编码对应的位置为方向一格边或方向三格边,当最后两位为10时,表示该编码对应的位置为方向二格边或方向四格边,当最后两位为11时,表示该编码对应的位置为格点。
具体的,在完成对网格的第一预设位置编码的基础上,对网格的第二预设位置进行编码可以包括如下步骤:
第一步:对网格的第一预设位置的二进制编码进行反向交叉取位,得到二进制的第四编码和第五编码。
假设给定网格格元的编码A2,将编码A2反向交叉取位,得到两个二进制数I2(第四编码)和J2(第五编码)。
第二步:基于所述第四编码和所述第五编码,确定表示所述网格的第二预设位置的坐标的两个二进制值(如下文中的(I′2,J′2)),其中,所述第二预设位置包括所述至少一个顶点(格点)和所述至少两个边(格边)中的一个位置。
第三步:对上述两个二进制值进行交叉取位后,得到所述网格的第二预设位置的二进制编码。
具体的,确定四边形网格中各格点的坐标和二进制编码Mc的公式如下:
其中,确定第一象限格点的坐标和二进制编码Mc的公式如下:
其中,确定第二象限格点的坐标和二进制编码Mc的公式如下:
其中,确定第三象限格点的坐标和二进制编码Mc的公式如下:
其中,确定第四象限格点的坐标和二进制编码Mc的公式如下:
具体的,确定四边形网格中各格边的坐标和二进制编码Mic的公式如下:
其中,确定方向一格边的坐标和二进制编码Mic的公式如下:
其中,确定方向二格边的坐标和二进制编码Mic的公式如下:
其中,确定方向三格边的坐标和二进制编码Mic的公式如下:
其中,确定方向三格边的坐标和二进制编码Mic的公式如下:
进一步地,对网格的第二预设位置进行编码还可以包括:
第四步:将网格的第二预设位置的二进制编码转换为四进制编码。
举例说明,给定四边形网格格元的编码11001110002,计算其周围所有格点、格边编码的步骤如下:
①对11001110002反向交叉取位:得到编码101002和101102。
②根据上述公式计算格点编码:
③根据上述公式计算格边编码:
④将网格的格点和格边的二进制编码转换为四进制编码:
四叉树四边形网格第一象限格点编码为303234,四叉树四边形网格二象限格点编码为302334,四叉树四边形网格第三象限格点编码为301234,四叉树四边形网格第四象限格点编码为303034,四叉树四边形网格方向一格边编码为303214,四叉树四边形网格方向二格边编码为303224,四叉树四边形网格方向三格边编码为302314,四叉树四边形网格方向四格边编码为303024。
再如,按照上述编码方法对四叉树四边形网格的第1层级网格的格元、格点和格边进行编码,得到的四进制编码结果如图8所示,具体计算过程同上。
步骤303、基于所述网格的预设位置的二进制编码和所述网格对应的层级,对所述网格的预设位置进行多尺度整数编码。
为充分使用计算机存储空间,并满足编码简单且高效的要求,本申请实施例设计了如表1所示的网格坐标结构。计算机在x64的环境下,不考虑内存拼接的情况时,可以存储的最大整数为64bit,给I、J两个坐标各分配30位,留2位记录编码位置信息(格元、格点或格边),剩余2位记录编码尺度信息,则每一个坐标的取值范围为0~1073741823,网格最高层级为30级。
表1网格坐标结构
含义 | I | J |
位数(bit) | 30 | 30 |
取值范围 | 0~1073741823 | 0~1073741823 |
存储值 | I方向网格坐标 | J方向网格坐标 |
为了使不同尺度的网格之间建立联系,需要使网格编码具有多尺度特性,为建立不同尺度对象的统一索引奠定基础。
给定网格的预设位置的二进制编码A2(如上文中网格的格元、格点和格边中任意位置的二进制编码)和该二进制编码对应的网格层级,计算该二进制编码的多尺度编码的步骤如下:
第一步:对网格的预设位置的二进制编码进行反向交叉取位,得到二进制的第六编码和第七编码。
例如,将编码A2反向交叉取位,得到两个二进制数I2(第六编码)和J2(第七编码)。
第二步:对第六编码和第七编码分别左移预设位数,对应得到第八编码和第九编码,其中,预设位数由网格的预设位置坐标的最大存储位数和网格对应的层级确定。
例如,将I2和J2分别左移30-N位得到I′2和J′2,如公式(3)所示。
第三步:按照先第九编码后第八编码的顺序,依次交叉取位得到第十编码。
例如,按照先J′2后I′2的顺序,依次交叉取位得到编码B2,交叉取位的过程可参考上文中的公式(1)。
第四步:对第十编码左移一位并转换得到最大层级的多尺度整数编码。
第十编码B2是第30层级的一个二进制的单尺度编码,将其左移一位之后可以转换成二进制的多尺度编码,再转换成十进制之后,即可得到第30层级的多尺度整数编码C。
第五步:基于网格对应的层级和上述最大层级的多尺度整数编码,确定所述网格的预设位置在所述网格对应的层级的多尺度整数编码。
例如,可以像下文中计算网格的预设位置的父单元的编码的方式一样,可以基于最高层级的多尺度整数编码计算出其余层级中的网格的多尺度整数编码D。
举例来说,给定二进制编码1011001001102和该编码层级28,计算多尺度整数编码的计算步骤如下:
①对1011001001102反向交叉取位,得到1101012和100102;
②左移2位:1101012<<2=110101002,100102<<2=10010002;
④将编码多尺度化得到多尺度整数编码91328;
⑤设置层级为28,计算得到原二进制编码对应的多尺度整数编码为1461263。
步骤304、基于网格的预设位置的多尺度整数编码和所述网格对应的层级,确定所述网格对应的父单元的编码,其中,所述父单元包括刚性父单元和非刚性父单元中的至少一种,所述刚性父单元是所述网格在树状网格结构中的真实父单元,所述非刚性父单元是所述网格与相邻网格聚合形成的虚拟父单元。
本申请实施例提供的一种非刚性空间网格编码方法属于一种非刚性的网格结构编码方法,无需按照树状网格的刚性层次结构进行编码聚合,如图9所示,任意相邻的四个网格均可聚合成一个父单元。
参考图9可知,根据相邻层级父单元编码的类型不同,分为三种:格元父单元、格点父单元、格边父单元。图9中粗实线网格为格元父单元,粗虚线网格为格点父单元,双实线网格为格边父单元。由于格元父单元存在于树状网格的刚性结构中,因而称为真实父单元,例如图9中,以A为中心的第n层格元,是第n+1层格元A0、A1、A2、A3的真实父单元;而格点父单元和格边父单元不存在于树状网格的刚性结构中,称为虚拟父单元,例如图9中,以格点E为中心的第n层虚拟格元,是第n+1层格元A3、B2、C1、D0的虚拟父单元;以格边F为中心的第n层虚拟格元,是第n+1层格元B2、B3、D0、D1的虚拟父单元。
下面分别对确定非刚性父单元和刚性父单元的编码过程进行说明。
(1)非刚性父单元(虚拟父单元)
本申请提供的非刚性空间网格编码方法可以支持任意四个相邻网格聚合成父单元,并且无论父单元类型,均有统一的父单元编码计算方法。具体的,基于网格的预设位置的多尺度整数编码和所述网格对应的层级,确定所述网格对应的非刚性父单元的编码,包括:
第一步:以网格的第二预设位置为所述网格对应的非刚性父单元的中心,确定所述非刚性父单元中左下方子网格的多尺度整数编码。
例如,已知相邻的四个网格格元的多尺度整数编码值,其中,最左下方网格的编码值为Mc,其所在层级为N(1≤N≤30),假设这四个网格格元在N-1层的父单元编码值FMc。
第二步:确定所述左下方子网格的上一个层级中的第一个多尺度整数编码。
例如,假设上述左下方网格所在的层级为N,则该网格的上一层级为N-1,相应的,计算第N-1层中第一个整数编码值FMc0,该值的位操作计算方法如公式(4)所示。
FMc0=1<<(62-N-N)-1 (4)
第三步:基于上述左下方子网格的多尺度整数编码和上述左下方子网格所在的层级,确定非刚性父单元的多尺度整数编码相对于上述第一个多尺度整数编码的间隔。
例如,计算非刚性父单元的多尺度整数编码FMc相对于FMc0的间隔ΔFMc,该值的位操作计算方法如公式(5)所示。
ΔFMc=(Mc>>(63-N-N))<<(63-N-N) (5)
第四步:基于所述第一个多尺度整数编码和所述间隔,确定所述非刚性父单元的多尺度整数编码。
例如,通过公式(6)计算得到网格的非刚性父单元的编码值FMc。
FMc=FMc0+ΔFMc (6)
举例来说,假设图9中网格A0为第30层网格,A0及该层级其余网格的多尺度整数编码为:A0=0,A1=8,A2=16,A3=24,B2=48,B3=56,C1=72,D0=96,D1=104,通过上述父单元的计算步骤可以得到:
(1)A0、A1、A2、A3的真实父单元A可由A0代入公式(4)、(5)、(6)计算得到:A=3;
(2)A3、B2、C1、D0的虚拟父单元E可由A3代入公式(4)、(5)、(6)计算得到:E=27;
(3)B2、B3、D0、D1的虚拟父单元F可由B2代入公式(4)、(5)、(6)计算得到:F=51。
(2)刚性父单元
参考图9可知,刚性父单元是格元的真实父单元,也称为格元父单元。
虽然上文介绍了格点父单元和格边父单元是非刚性的,但是网格的树状结构本身是刚性的,而刚性结构中的真实父单元编码是多尺度网格编码关系运算的重要部分,因此需要计算格元真实父单元的编码。
在给定格元编码Mc的情况下,可通过下述过程计算该格元的真实父单元:
第一步:确定网格的上一个层级中的第一个多尺度整数编码。
同样的,假设上述网格所在的层级为N,则该网格的上一层级为N-1,假设上一个层级(N-1)中的第一个多尺度整数编码为FMc0,然后可以基于上述公式(4)计算FMc0。
第二步:基于网格中心的多尺度整数编码和网格所在的层级,确定网格的刚性父单元的多尺度整数编码相对于所述第一个多尺度整数编码的间隔。
假设网格的刚性父单元的多尺度整数编码为FMc,FMc相对于FMc0的间隔为ΔFMc,则可以通过下述公式(7)计算ΔFMc。
ΔFMc=(Mc>>(65-N-N))<<(65-N-N) (7)
第三步:基于第一个多尺度整数编码和上述间隔,确定所述网格的刚性父单元的多尺度整数编码。
具体计算方式可参照上述公式(6)。
本申请实施例提供的一种非刚性空间网格编码方法,不仅对代表网格本身的网格中心进行了编码,与此同时还对网格的至少一个顶点和至少两个边进行了编码,这种编码方式不仅可以实现网格的刚性父单元的编码,还可以获得网格的非刚性父单元的编码,并且采用同一套整数编码方式,易于进行编码混合操作,该编码方式具备更好的空间计算能力,更优越。
实施例2
在实施例1的基础上,本申请实施例还提供了一种空间对象唯一标识方法,如图10所示,该方法可以包括如下步骤:
步骤1001、在目标地理空间中,确定空间对象的最小外包矩形,其中,目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格。
如上一实施例所述,目标地理空间可以是待管理的任一二维地理空间,目标地理空间可用该地理空间的电子地图表示,在对目标地理空间进行网格划分时,具体可以是对目标地理空间的电子地图进行网格划分。而目标地理空间中的空间对象既可以是其电子地图中包含的建筑物、学校、医院、车辆、道路、摄像头等对象,也可以是从目标地理空间中收集的相关数据,如汽车轨迹数据、卫星影像数据等带有地理含义的对象。优选的,空间对象是从目标地理空间中收集的相关数据,如大数据。
对于空间对象A可通过外缘相切的方法确定其最小外包矩形B,如图11所示,(a)至(e)中曲线包围的部分为空间对象(其他附图中亦是如此),空间对象外部与该空间对象的外缘相切的矩形为该空间对象的最小外包矩形。
步骤1002、基于最小外包矩形的尺度,确定与空间对象相匹配的目标网格层级,并在目标层级下,确定空间对象的映射网格。
作为一个例子,可以基于空间对象A的最小外包矩形的长L,确定与空间对象A相匹配的网格的边长lm,其中,与空间对象A相匹配的网格的边长不小于第一值且不大于第二值,第一值为最小外包矩形的长的二分之一,第二值为最小外包矩形的长,也即L/2≤lm≤L;然后,基于与空间对象A相匹配的网格的边长,确定与空间对象A相匹配的网格层级,也即将边长为lm的m层级确定为与空间对象A相匹配的网格层级。
其中,映射网格包括多个子网格,且映射网格是这多个子网格的父单元,该父单元既可以是刚性父单元也可以是非刚性父单元,刚性父单元是这多个子网格的真实父单元,非刚性父单元是这多个子网格在目标地理空间的树状网格结构中聚合形成的虚拟父单元。
示例性的,空间对象A可存在但不限于如图11所示的五种映射网格,这五种映射网格可以分为两种类型,一种类型是空间对象A的最小外包矩形的四个顶点在m层级中实际所占的网格之间没有间隔(如图11(a)和图11(b)所示),另一种类型是空间对象A的最小外包矩形的四个顶点在m层级中实际所占的网格之间存在间隔(如图11(c)、图11(d)和图11(e)所示)。
(1)对于第一种类型,在m层级下,确定空间对象的映射网格可包括:
第一步:确定空间对象最小外包矩形的四个顶点在m层级中所占的网格。
第二步:如果所述四个顶点在网格层级m中所占的网格之间没有间隔(上述第一种类型),则确定所述四个顶点在所述网格层级中所占的网格在上一个层级中形成的父单元网格。
在一种实施方式中,如果最小外包矩形的四个顶点在m层级中占两个网格,则增补同一层级的两个网格形成四个网格,并将这四个网格聚合形成的父单元网格,确定为上述四个顶点在m层级中所占的网格在上一个层级(m-1)形成的父单元网格。
其中,增补的原则是:①如果四个顶点所占的2个网格是沿维度方向并排的,则向上增补2个网格,例如,在图11(a)中,空间对象的四个顶点所占的网格是沿维度方向并排的A0和A1,则向上增补A2和A3两个网格;②如果四个顶点所占的2个网格是沿经度方向并列的,则向右增补2个网格。
在另一种实施方式中,如果最小外包矩形的四个顶点在m层级中占四个网格(如图11(b)所示),则直接将这四个网格聚合形成的父单元网格,确定为所述四个顶点在m层级中所占的网格在上一个层级形成的父单元网格。
可以看出,上述两种实施方式中形成的四个网格在经纬方向上的数量均为两个,且同一方向上的两个网格之间没有间隔。
第三步:将上述父单元网格确定为空间对象的映射网格。
如图11(a)和图11(b)所示,将A0、A1、A2和A3这四个m层级的网格在m-1层级形成的父单元网格确定为空间对象的映射网格。
确定出映射网格之后,可以利用上述实施例1的步骤304中计算同层级(m层级)的四个相邻网格在上一层级(m-1层级)形成的父单元网格的编码的方法,计算映射网格的编码,如图12所示,m层级的四个相邻网格形成的父单元网格包括三种情况:图12(a)所示的格元父单元A0,图12(b)所示的格边父单元A1,以及12(c)所示的格点父单元A3;然后用该映射网格的编码标识空间对象,建立该空间对象的查询索引(简称索引)。其中,格元父单元A0是刚性父单元,格边父单元A1和格点父单元A2为非刚性父单元。
(2)对于第二种类型,在m层级下,确定空间对象的映射网格可包括:
第一步:确定空间对象的最小外包矩形的四个顶点在m层级中所占的网格。
第二步:如果上述最小外包矩形的四个顶点在m层级中所占的网格之间存在间隔,则补全中间网格得到多个网格。
如图11(c)所示,最小外包矩形的四个顶点在m层级中所占的网格为A2和B2,中间间隔有网格A3,补全中间网格后得到的多个网格为A2、A3和B2。如图11(d)所示,最小外包矩形的四个顶点在m层级中所占的网格为A0、A2、B0和B2,中间间隔有网格A1和A3,补全中间网格后得到的多个网格为A0、A1、A2、A3、B0和B2。如图11(e)所示,最小外包矩形的四个顶点在m层级中所占的网格为A1、C1、D1和B1,中间间隔有网格A3、D0、B2、B3和B0,补全中间网格后得到的多个网格为A1、A3、C1、D0、D1、B2、B3、B0和B1。
第三步:确定上述多个网格在上两个层级中形成的祖父单元网格。
在一种实施方式中:
首先,确定上述多个网格中最左下网格的刚性父单元网格G0;其中,确定刚性父单元网格G0的编码的具体方法定参照实施例1中的步骤304。由于虚拟父单元不能再次计算父单元,因此这里计算的是真实父单元G0。
其次,在刚性父单元网格G0所在层级(m-1层级)中,确定第一网格、第二网格和第三网格,其中,第一网格G1位于刚性父单元网格G0的右方,第二网格G2位于所述刚性父单元网格G0的上方,所述第三网格G3位于所述刚性父单元网格的右上方,且刚性父单元网格G0、第一网格G1、第二网格G2和第三网格G3之间没有间隔。
再次,将上述刚性父单元网格G0、第一网格G1、第二网格G2和第三网格G3聚合形成的父单元网格,确定为所述多个网格在上两个层级(m-2层级)中形成的祖父单元网格。
第四步:将所述祖父单元网格确定为所述空间对象的映射网格。
确定出映射网格之后,可以利用上述实施例1的步骤304中计算同层级(m-1层级)的四个相邻网格在上一层级(m-2层级)形成的父单元网格的编码的方法,计算映射网格的编码;然后用该映射网格的编码标识空间对象,建立该空间对象的查询索引(简称索引)。
步骤1004、基于预设编码方法,对映射网格进行多尺度整数编码,并将映射网格的多尺度整数编码确定为所述空间对象的标识。
其中,预设编码方法即上述实施例1中所描述的非刚性空间网格编码方法,该预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边。
在一个例子中,如果映射网格为m层级的多个子网格在m-1层级聚合形成的刚性父单元,基于预设编码方法,对映射网格进行多尺度整数编码,包括:
第一步:确定目标子网格的上一个(m-1)层级中的第一个多尺度整数编码,目标子网格是所述多个子网格中的任意一个,也即确定m-1层级中的第一个多尺度整数编码。
假设上一个(m-1)层级中的第一个多尺度整数编码为FMc0,然后可以基于上文中的公式(4)计算FMc0,具体计算时,将公式(4)中的N替换为m即可。
第二步:基于目标子网格中心的多尺度整数编码和目标子网格所在的层级,确定目标子网格的刚性父单元的多尺度整数编码相对于上述第一个多尺度整数编码的间隔。
假设映射网格的多尺度整数编码为FMc,FMc相对于FMc0的间隔为ΔFMc,则可以通过上文中的公式(7)计算ΔFMc,具体计算时,将公式(7)中的N替换为m即可。
第三步:基于上述第一个多尺度整数编码和上述间隔,确定上述映射网格的多尺度整数编码。
FMc的具体计算方式可参照上文中的公式(6),具体计算时,将公式(6)中的N替换为m即可。
在另一个例子中,如果映射网格为多个子网格的非刚性父单元,基于预设编码方法,对映射网格进行多尺度整数编码,包括:
第一步:确定上述多个子网格中左下方子网格的多尺度整数编码。
假设上述多个子网格中左下方子网格格元的多尺度整数编码为Mc,其所在层级为N(1≤N≤30),假设这多个子网格格元在N-1层的父单元编码值FMc。其中,左下方子网格格元的多尺度整数编码为Mc的计算方式,可参考实施例1步骤302中网格格元的编码过程。
第二步:确定上述左下方子网格的上一个层级中的第一个多尺度整数编码。
例如,计算第N-1层中第一个整数编码值FMc0,该值的位操作计算方法可参考上文中的公式(4)。
第三步:基于上述左下方子网格的多尺度整数编码和上述左下方子网格所在的层级,确定上述多个子网格的非刚性父单元的多尺度整数编码相对于上述第一个多尺度整数编码的间隔。
计算非刚性父单元的多尺度整数编码FMc相对于FMc0的间隔ΔFMc的方式可参考上文中的公式(5)。
第四步:基于上述第一个多尺度整数编码和上述间隔,确定上述多个子网格的非刚性父单元的多尺度整数编码。
计算非刚性父单元的编码值FMc的方式可参考上文中的公式(6)。
第五步:将上述多个子网格的刚性父单元的多尺度整数编码,确定为映射网格的编码。
步骤1005、基于确定的所述空间对象的标识建立所述空间对象的查询索引,得到所述目标地理空间中的空间对象的索引表。
通过本申请实施例中,每一个空间对象都仅仅和一个编码相对应,其中,如图12(b)和图12(c)所示,空间对象的映射网格是一种虚拟网格,而不是树状网格结构中的真实网格(刚性网格),因此,本申请提供的方案是一种非刚性空间网格编码以及空间对象唯一标识方法。需要说明的是,当多个对象位于相同空间范围(多个空间对象的映射网格相同)时,同一个编码可用于标识多个空间对象,但一个空间对象只对应一个编码。
上述步骤1005得到的目标地理空间中的空间对象的索引表中存储有空间对象的ID与空间对象的映射网格的多尺度整数编码的对应关系,该索引表可以是B树索引表,也可以是Hash索引表,索引表的具体建立过程可以参考公开号为CN109992636A的专利申请。如果是Hash索引表,相比于相关技术中建立的空间对象的Hash索引表,至少具备如下优势:
①不存在冲突,因为空间对象的映射网格与空间对象的标识编码是一一对应的,所以不存在相关技术中存在的Hash冲突。
②支持区间查询,相关技术中的Hash索引不能按照索引值顺序存储,无法排序,因此不支持区间查询,而本申请实施例提供的方案中以整数编码作为Hash值,具有排序的能力,所以支持区间查询。
建立好该索引表之后,可以通过输入网格编码查询对应的空间对象。例如,假设目标地理空间为北京市范围内的电子地图,空间对象为北京市的建筑物,索引表中存储的是北京市的各个建筑物的ID与该建筑物的映射网格的多尺度整数编码之间的对应关系,如果想要知道海淀区的建筑物有哪些,那先把海淀区转换成网格编码,用网格编码即可从索引表中查找出海淀区的所有建筑物。
由于本申请实施例提供的编码方法不仅对代表网格本身的网格中心进行了编码,与此同时还对网格的至少一个顶点和至少两个边进行了编码,这种编码方式不仅可以实现网格的刚性父单元的编码,还可以获得网格的非刚性父单元的编码,使得一个空间对象可以用一个唯一的空间网格编码标识。因此,利用本申请实施例提供的非刚性空间网格编码方法唯一标识空间对象以建立空间对象索引的方法,可以克服相关技术中的刚性树状网格编码方法和非刚性树状网格编码方法存在的缺陷,例如,可以克服相关技术中刚性树状网格编码方法,会增加标识量,不利于海量空间数据的管理和存储,以及虽用一个编码标识了对象,但是得到的网格尺度和当前对象往往匹配程度很低,冗余度较大,不利于空间索引等缺陷;还可以克服相关技术中非刚性树状网格编码方法,建立索引时需要将对象逐个插入,效率很低,不利于海量对象的动态存储和管理,以及数据标识缺少地学涵义,同一地区的空间数据之间缺少空间尺度与位置关联,造成同一区域的数据关联性差,不利于空间数据检索、管理和存储等缺陷。
实施例3
一般而言,由于空间对象与待查询区域主要存在四种空间关系:相离、相交、查询区域包含对象、对象包含查询区域。因此,上述空间对象的标识方法采用虚拟网格+真实网格进行标识,会使得空间对象的标识网格和待查询区域网格(简称查询网格)存在四种空间关系(如图13所示):标识网格与查询网格相交、标识网格与查询网格相离、标识网格是查询网格的父单元、标识网格是查询网格或其子单元。
而传统的网格查询方法中空间对象的标识网格与查询网格仅仅是包含或被包含的关系,网格之间是无缝无叠的,因此这种传统查询方法不适用于本申请中空间对象的标识网格与待查询区域网格相交、相叠的情况,会遗漏与待查询区域网格相交的虚拟标识网格。如图14所示,用斜线填充的网格是查询网格,通过传统的编码区间查询方法可以查询黑色矩形小框标识位置的网格编码(查询区域包含的编码),而白色小矩形标识位置的网格编码(查询区域不包含的编码)和查询网格也是相交关系,但无法被查询到,因此若要保证不漏差,查询区域应包含图中白色小矩形标识位置的网格编码。
针对上述问题,本实施例采取的策略是:在对待查询区域进行网格化的过程中,对于待查询区域中不再细分的左下边界处网格(网格的左下顶点在待查询区域外的网格即为左下边界处的网格)可以做如下处理(如图15所示的四种情况,在图15中曲线包围的区域为待查询区域):
(1)左下边界处网格的左下顶点A在待查询区域外,则标记该左下边界处网格左下方的同层级网格为扩充网格,具体如图15(a)所示;
(2)左下边界处网格的左顶点C和左下顶点A在待查询区域外,则标记该左下边界处网格左侧的同层级网格为扩充网格,具体如图15(b)所示;
(3)左下边界处网格的左下顶点A和右下顶点B在待查询区域外,则标记该左下边界处网格下方的同层级网格为扩充网格,具体如图15(c)所示;
(4)左下边界处网格的左顶点C、左下顶点A和右下顶点B在待查询区域外,则标记该左下边界处网格左侧、左下方、下方的同层级网格为扩充网格,具体如图15(d)所示。
然后,将上面标记的扩充网格加入查询网格中,可以保证粗查不会遗漏查询对象,并且由于采用的是多尺度网格化方法,对待查询区域网格化的结果一般是中间区域网格尺度答、边界处的网格尺度小,因此扩充的网格不会包含太多的冗余对象,并且最后可以利用精查,去除不符合查询条件的冗余对象。
一个空间网格编码及其子单元的查询方法——区间查询:由于多尺度整数编码是四叉树结构,因此编码子单元的个数随层级增长的复杂度为O(4n),增长速度很快,若逐个编码查询效率很低。由于多尺度整数编码方法使编码及其所有的子单元都在其对应的区间内,因此用区间查询编码及其子单元效率更高。其中,O是复杂度的符号,复杂度:就是层级增加1,子单元增加4,层级增加2,子单元增加16=42,所以是O(4n),n是增加的层级数,
一个空间网格编码的父单元查询方法——编码查询:编码的父单元的个数随层级增长的复杂度为O(n),一个m层级的编码在m-1层级有4个父单元,在m-2层级也有4个父单元(m-1层级的空间父单元的4个父单元),相隔n个层级共4n个父单元。4个父单元包括编码父单元、空间父单元和两个虚拟父单元,如图16和图17所示,编码父单元指编码树状结构中的父单元(也是格点父单元),空间父单元指每个网格所在空间树状结构中的真实父单元,两个虚拟父单元指相邻四个网格形成的格边父单元。由于空间对象的尺度一般不会比网格尺度大太多,需要查询的父单元编码个数有限,因此在查询父单元的时候用编码查询效率更高。
在此基础上,以及在上述实施例1和实施例2的基础上,本申请实施例还提出了一种空间对象查询方法,如图18所示,该方法可以包括如下步骤:
步骤1801、接收待查询区域的坐标和预设的查询父单元层级阈值。
空间对象数据管理人员可以输入待查询区域的边界矢量坐标数据和预设的查询父单元层级阈值,待查询区域的形状可以是任意形状,坐标数据可以是经纬度坐标值。
预设的查询父单元层级阈值可以用n表示,n的取值为大于1的整数,例如n=3,n=4,或n=5。当查询网格为m层级的网格时,则需要查询的父单元依次为m-1层级、m-2层级、m-3、···、m-n层级的父单元。
步骤1802、基于待查询区域的坐标,确定待查询区域在目标地理空间中的查询网格,并基于预设编码方法确定查询网格的多尺度整数编码,得到待查询区域的查询网格编码集合S1;其中,待查询区域在目标地理空间中的查询网格包括待查询区域占用的网格和按照预设扩充规则扩充的网格。
如上文中的实施例1和实施例2所述,目标地理空间被按照预设树状网格结构划分方式划分成多个层级(如30个层级)下的多个网格。
如果预设树状网格结构为四叉树四边形网格,那么,确定待查询区域在目标地理空间中的查询网格,可以包括如下两部分:
第一部分:在接收到管理人员输入的待查询区域的坐标时,可以在已经按实施例1所示的方法划分好网格的目标地理空间中填充并显示待查询区域所占的网格,并将待查询区域占用的网格确定为查询网格。填充时,既可以是多尺度填充,也可以是单尺度填充,优选的用多尺度填充,可以理解,单尺度填充是指只填充待查询区域所占的某一层级的网格,多尺度填充是指填充待查询区域所占的多个层级(如所有层级)的网格。
第二部分:在确定出待查询区域所占的网格之后,按照预设扩充规则进行扩充,具体的,可以将指定网格的左侧、左下和下方的同层级网格中的至少一个作为扩充网格添加至待查询区域的查询网格中,其中,指定网格为待查询区域中不再细分的左下边界处网格,指定网格的左顶点、左下顶点和右下顶点中的至少一个位于待查询区域之外。
更为具体的,参照图15和上文对图15说明可知,可以先确定待查询区域中不再细分的左下边界处网格(可以是多个):然后,如果左下边界处网格的左下顶点在待查询区域外,则标记该左下边界处网格左下方的同层级网格为待扩充网格;如果左下边界处网格的左顶点和左下顶点在待查询区域外,则标记该左下边界处网格左侧的同层级网格为扩充网格;如果左下边界处网格的左下顶点和右下顶点在待查询区域外,则标记该左下边界处网格下方的同层级网格为扩充网格;如果左下边界处网格的左顶点、左下顶点和右下顶点在待查询区域外,则标记该左下边界处网格左侧、左下方、下方的同层级网格为扩充网格;最后,将标记的扩充网格加入待查询区域的查询网格中。
其中,基于预设编码方法确定查询网格的多尺度整数编码,得到待查询区域的查询网格编码集合S1,包括:基于实施例1中所述的编码方法对待查询区域的查询网格进行编码,得到待查询区域的查询网格编码集合S1。具体的,在步骤1802中,预设编码方法用于对按照预设树状网格结构划分方式划分得到的网格的中心进行多尺度整数编码,具体编码过程详见实施例1。
在步骤1802中,可以预先将目标地理空间中所有网格的多尺度整数编码计算出来并存储,然后在接收到待查询区域的坐标并据此确定出待查询区域的查询网格之后,从存储的编码中读取查询网格的多尺度整数编码,得到S1;也可以在接收到待查询区域的坐标并据此确定出待查询区域的查询网格之后,再基于预设编码方法,计算查询网格的多尺度整数编码。
步骤1803、基于预设编码方法,确定查询网格编码集合S1中每一编码在指定父单元层级中的四个父单元的多尺度整数编码,并保存至父单元编码集合S2;其中,指定父单元层级包括小于和等于上述查询父单元层级阈值的父单元层级。
假设预设树状网格结构为四叉树四边形网格,S1中的任一编码可以表示为Mc,且Mc所在的层级为m,上述查询父单元层级阈值为n,那么,可以从Mc所在的m层级开始向上依次确定在m-1层级、m-2层级、m-3层级、···、直到m-n层级中每一层级的空间父单元、编码父单元和两个虚拟父单元(如图16所示三种父单元)的多尺度整数编码。具体的:
确定Mc在m-1层的空间父单元Mc_1、编码父单元、两个虚拟父单元的多尺度整数编码;
确定Mc_1在m-2层级的空间父单元Mc_2、编码父单元、两个虚拟父单元的多尺度整数编码;
确定Mc_2在m-3层级的空间父单元Mc_3、编码父单元、两个虚拟父单元的多尺度整数编码;
……
确定Mc_n-1在m-n层级的空间父单元Mc_n、编码父单元、两个虚拟父单元(直到预设的-n层级为止)的多尺度整数编码,得到父单元编码集合S2。
在本步骤中,预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边,所述刚性父单元是网格在树状网格结构中的真实父单元,所述非刚性父单元是网格与相邻网格聚合形成的虚拟父单元。
父单元的具体计算过程可参照实施例1,此处不再赘述。
步骤1804、遍历查询网格编码集合S1,对查询网格编码集合S1中的每一编码Mc,基于所述预设编码方法确定该编码Mc在上一层级的父单元编码FMc,使用区间查询方法,从预设索引表中查询编码值在[FMc-Tn,FMc+Tn]之间的空间对象,得到第一查询结果,其中,Tn为FMc所在层级的第一个多尺度整数编码值。
其中,预设索引表中存储有空间对象ID与空间对象的映射网格的多尺度整数编码之间的对应关系,映射网格包括多个子网格,且映射网格是这多个子网格的父单元,该父单元既可以是刚性父单元也可以是非刚性父单元,映射网格的多尺度整数编码是基于上述预设编码方法得到的。其中,基于上述预设编码方法确定映射网格的多尺度整数编码以建立预设索引表的过程可参考上述实施例2,此处不再赘述。
步骤1805、遍历父单元编码集合S2,对父单元编码集合S2中的每一编码Mc,从预设索引表中查询该编码Mc对应的空间对象,得到第二查询结果。
也即直接查询预设索引表中编码值等于S2中的编码值的空间对象。
第一查询结果和第二查询结果可以是查询到的空间对象的ID集合。
步骤1806、剔除第一查询结果和第二查询结果中不符合查询条件的空间对象,得到最终查询结果。
作为一个例子,可以将第一查询结果和第二查询结果汇总得到粗查结果,然后确定S1和S2中的冗余编码,之后剔除粗查结果中冗余编码对应的空间对象(也即剔除不符合条件的空间对象),得到最终查询结果并输出。
本申请实施例提供的一种空间对象查询方法,一方面,通过对待查询区域网格进行扩充,可以保证初查结果不会遗漏查询对象;另一方面,由于采用的是多尺度网格化方法,网格化的结果一般是中间区域网格尺度大、四周区域网格尺度小,因此扩充的网格区域不会包含太多的冗余对象,并且最后可以利用精查,去除不符合查询条件的冗余对象,从而更好的满足查询目的。此外,由于通过本方案建立的空间对象的索引不会重复记录空间对象,这不仅使索引数量大大降低,从而提高查询效率和查询准确率,还无需对空间对象查询结果进行去重处理。
例如,假设目标地理空间为北京市范围内的电子地图,空间对象为北京市的建筑物,预设索引表中存储的是北京市的各个建筑物的ID与该建筑物的映射网格的多尺度整数编码之间的对应关系,如果想要知道海淀区的建筑物有哪些,那先把海淀区作为查询区域并转换成网格编码,然后进行查询区域的扩充,并对扩孔的网格进行编码,得到扩充的查询区域的网格编码,用这些网格编码即可从索引表中查找出海淀区的所有建筑物。
再如,假设目标地理空间为全国范围内的地理空间,空间对象为全国范围内的卫星影像数据,预设索引表中存储的是全国的卫星影像数据ID与该卫星影像数据的映射网格的多尺度整数编码之间的对应关系,如果想要知道北京区域的卫星影像数据,那先把北京区域作为查询区域并转换成网格编码,然后进行查询区域的扩充,并对扩孔的网格进行编码,得到扩充的查询区域的网格编码,用这些网格编码即可从索引表中查找出北京区域的所有卫星影像数据。
总之,本申请实施例提供的各个方案,可以解决相关技术中的空间网格编码方案存在的缺陷,能够很好的满足当下海量空间数据组织与管理的需求。
以上是对本申请实施例提供的方法实施例的说,相应于上述方法实施例本申请还提供了一种非刚性空间网格编码装置、一种空间对象唯一标识装置和一种空间对象查询装置,下面结合附图逐一介绍。
如图19所示,本申请实施例提供了一种非刚性空间网格编码装置1900,在一种软件实施方式中,非刚性空间网格编码装置1900可以包括:网格划分模块1901、第一编码模块1902、第二编码模块1903和第三编码模块1904。
网格划分模块1901,用于按照预设树状网格结构划分方式对目标地理空间进行划分,得到多个层级下的多个网格,其中,不同层级网格的尺度不同。
第一编码模块1902,用于对所述网格的预设位置进行二进制编码,其中,所述预设位置包括网格中心、至少一个顶点和至少两个边,所述至少两个边互不平行。
第二编码模块1903,用于基于所述网格的预设位置的二进制编码和所述网格对应的层级,对所述网格的预设位置进行多尺度整数编码。
第三编码模块1904,用于基于所述网格的预设位置的多尺度整数编码和所述网格对应的层级,确定所述网格对应的父单元的编码,其中,所述父单元包括刚性父单元和非刚性父单元中的至少一种,所述刚性父单元是所述网格在树状网格结构中的真实父单元,所述非刚性父单元是所述网格与相邻网格聚合形成的虚拟父单元。
需要说明的是,图19所示的非刚性空间网格编码装置能够实现图3所示的空间网格方法,并能取得相同的技术效果,相关之处可参考上述方法实施例,此处不再赘述。
如图20所示,本申请实施例提供了一种空间对象唯一标识装置2000,在一种软件实施方式中,空间对象唯一标识装置2000可以包括:外包矩形确定模块2001、映射网格确定模块2002、空间对象标识模块2003和索引建立模块2004。
外包矩形确定模块2001,用于在目标地理空间中,确定空间对象的最小外包矩形,其中,所述目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格。
映射网格确定模块2002,用于基于所述最小外包矩形的尺度,确定与所述空间对象相匹配的目标层级,并在所述目标层级下,确定所述空间对象的映射网格,其中,所述映射网格包括多个子网格,所述映射网格是所述多个子网格的父单元,所述父单元为刚性父单元或非刚性父单元,所述刚性父单元是所述多个子网格在树状网格结构中的真实父单元,所述非刚性父单元是所述多个子网格聚合形成的虚拟父单元。
空间对象标识模块2003,用于基于预设编码方法,对所述映射网格进行多尺度整数编码,并将所述映射网格的多尺度整数编码确定为所述空间对象的标识,其中,所述预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边。
索引建立模块2004,用于基于确定的所述空间对象的标识建立所述空间对象的查询索引,得到所述目标地理空间中的空间对象的索引表。
需要说明的是,图20所示的空间对象唯一标识装置能够实现图10所示的空间对象唯一标识方法,并能取得相同的技术效果,相关之处可参考上述方法实施例,此处不再赘述。
如图21所示,本申请实施例提供了一种空间对象查询装置2100,在一种软件实施方式中,空间对象查询装置2100可以包括:参数接收模块2101、第一编码集合确定模块2102、第二编码集合确定模块2103、第一查询模块2104第二查询模块2105和精查模块2106。
参数接收模块2101,用于接收待查询区域的坐标和预设的查询父单元层级阈值。
第一编码集合确定模块2102,用于基于所述待查询区域的坐标,确定所述待查询区域在目标地理空间中的查询网格,并基于预设编码方法确定所述查询网格的多尺度整数编码,得到待查询区域的查询网格编码集合,其中,所述待查询区域在所述目标地理空间中的查询网格包括所述待查询区域占用的网格和按照预设扩充规则扩充的网格,所述目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格,所述预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边,所述刚性父单元是网格在树状网格结构中的真实父单元,所述非刚性父单元是网格与相邻网格聚合形成的虚拟父单元。
第二编码集合确定模块2103,用于基于所述预设编码方法,确定所述查询网格编码集合中每一编码在指定父单元层级中的四个父单元的多尺度整数编码,并保存至父单元编码集合;其中,所述指定父单元层级包括小于和等于上述查询父单元层级阈值的父单元层级。
第一查询模块2104,用于对所述查询网格编码集合中的每一编码,基于所述预设编码方法确定该编码在上一层级的父单元编码FMc,使用区间查询方法,从预设索引表中查询编码值在[FMc-Tn,FMc+Tn]之间的空间对象,得到第一查询结果,其中,Tn为FMc所在层级的第一个多尺度整数编码值,所述预设索引表中存储有空间对象ID与空间对象的映射网格的多尺度整数编码之间的对应关系,所述映射网格包括多个子网格,所述映射网格是所述多个子网格的刚性或非刚性父单元,所述映射网格的多尺度整数编码是基于所述预设编码方法得到的。
第二查询模块2105,用于对所述父单元编码集合中的每一编码,从所述预设索引表中查询该编码对应的空间对象,得到第二查询结果。
精查模块2106,用于剔除第一查询结果和第二查询结果中不符合查询条件的空间对象,得到最终查询结果。
需要说明的是,图21所示的空间对象查询装置能够实现图18所示的空间对象查询方法,并能取得相同的技术效果,相关之处可参考上述方法实施例,此处不再赘述。
图22是本说明书的一个实施例提供的电子设备的结构示意图。请参考图22,在硬件层面,该电子设备包括处理器11,可选地还包括内部总线、网络接口、存储器12。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成非刚性空间网格编码装置、空间对象唯一标识装置和空间对象查询装置中的一种。该电子设备还可执行图3、图10或图18所示的实施例提供的方法,并取得相同的技术效果,本说明书在此不再赘述。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图3、图10或图18所示的实施例提供的方法。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (24)
1.一种非刚性空间网格编码方法,其特征在于,包括:
按照预设树状网格结构划分方式对目标地理空间进行划分,得到多个层级下的多个网格,其中,不同层级网格的尺度不同;
对所述网格的预设位置进行二进制编码,其中,所述预设位置包括网格中心、至少一个顶点和至少两个边,所述至少两个边互不平行;
基于所述网格的预设位置的二进制编码和所述网格对应的层级,对所述网格的预设位置进行多尺度整数编码;
基于所述网格的预设位置的多尺度整数编码和所述网格对应的层级,确定所述网格对应的父单元的编码,其中,所述父单元包括刚性父单元和非刚性父单元中的至少一种,所述刚性父单元是所述网格在树状网格结构中的真实父单元,所述非刚性父单元是所述网格与相邻网格聚合形成的虚拟父单元。
2.根据权利要求1所述的方法,其特征在于,
所述预设树状网格结构包括三角形树状网格结构、四边形树状网格结构和六边形树状网格结构中的一种;
其中,三角形树状网格结构包括四叉树三角网和九叉树三角网中的一种;四边形树状网格结构包括四叉树四边形网格和九叉树四边形网格种的一种;六边形树状网格结构包括三叉树六边形网格、七叉树六边形网格、四叉树六边形网格和七叉树六边形网格中的一种。
3.根据权利要求2所述的方法,其特征在于,按照预设树状网格结构划分方式对目标地理空间进行,包括:
按照四叉树四边形网格划分方式及经纬度方向,对目标地理空间进行划分。
4.根据权利要求3所述的方法,其特征在于,对所述网格的预设位置进行二进制编码,包括:
基于对目标地理空间的划分结果,确定所述网格的第一预设位置的横坐标和纵坐标,其中,所述第一预设位置为网格中心;
将所述网格的第一预设位置的横坐标和纵坐标,分别转成二进制的第一编码和第二编码;
按照先第二编码后第一编码的顺序,对所述第一编码和所述第二编码进行交叉取位,得到第三编码;
将所述第三编码左移两位作为所述网格的第一预设位置的二进制编码。
5.根据权利要求4所述的方法,其特征在于,对所述网格的预设位置进行二进制编码,还包括:
对所述网格的第一预设位置的二进制编码进行反向交叉取位,得到二进制的第四编码和第五编码;
基于所述第四编码和所述第五编码,确定表示所述网格的第二预设位置的坐标的两个二进制值,其中,所述第二预设位置包括所述至少一个顶点和所述至少两个边中的一个位置;
对所述两个二进制值进行交叉取位后,作为所述网格的第二预设位置的二进制编码。
6.根据权利要求5所述的方法,其特征在于,基于所述网格的预设位置的二进制编码和所述网格对应的层级,对所述网格的预设位置进行多尺度整数编码,包括:
对所述网格的预设位置的二进制编码进行反向交叉取位,得到二进制的第六编码和第七编码;
对所述第六编码和所述第七编码分别左移预设位数,对应得到第八编码和第九编码,其中,所述预设位数由所述网格的预设位置坐标的最大存储位数和所述网格对应的层级确定;
按照先所述第九编码后所述第八编码的顺序,依次交叉取位得到第十编码;
对所述第十编码左移一位并转换得到最大层级的多尺度整数编码;
基于所述网格对应的层级和所述最大层级的多尺度整数编码,确定所述网格的预设位置在所述网格对应的层级的多尺度整数编码。
7.根据权利要求6所述的方法,其特征在于,基于所述网格的预设位置的多尺度整数编码和所述网格对应的层级,确定所述网格的刚性父单元的编码,包括:
确定所述网格的上一个层级中的第一个多尺度整数编码;
基于所述网格的中心的多尺度整数编码和所述网格所在的层级,确定所述网格的刚性父单元的多尺度整数编码相对于所述第一个多尺度整数编码的间隔;
基于所述第一个多尺度整数编码和所述间隔,确定所述网格的刚性父单元的多尺度整数编码。
8.根据权利要求6所述的方法,其特征在于,基于所述网格的预设位置的多尺度整数编码和所述网格对应的层级,确定所述网格对应的非刚性父单元的编码,包括:
以所述网格的第二预设位置为所述网格对应的非刚性父单元的中心,确定所述非刚性父单元中左下方子网格的多尺度整数编码;
确定所述左下方子网格的上一个层级中的第一个多尺度整数编码;
基于所述左下方子网格的多尺度整数编码和所述左下方子网格所在的层级,确定所述非刚性父单元的多尺度整数编码相对于所述第一个多尺度整数编码的间隔;
基于所述第一个多尺度整数编码和所述间隔,确定所述非刚性父单元的多尺度整数编码。
9.根据权利要求3所述的方法,其特征在于,
所述至少一个顶点包括所述网格在第一象限的顶点;
所述至少两个边包括:所述网格在经度方向上的一个边和所述网格在纬度方向上的一个边。
10.一种空间对象唯一标识方法,其特征在于,包括:
在目标地理空间中,确定空间对象的最小外包矩形,其中,所述目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格;
基于所述最小外包矩形的尺度,确定与所述空间对象相匹配的目标层级,并在所述目标层级下,确定所述空间对象的映射网格,其中,所述映射网格包括多个子网格,所述映射网格是所述多个子网格的父单元,所述父单元为刚性父单元或非刚性父单元,所述刚性父单元是所述多个子网格在树状网格结构中的真实父单元,所述非刚性父单元是所述多个子网格聚合形成的虚拟父单元;
基于预设编码方法,对所述映射网格进行多尺度整数编码,并将所述映射网格的多尺度整数编码确定为所述空间对象的标识,其中,所述预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边;
基于确定的所述空间对象的标识建立所述空间对象的查询索引,得到所述目标地理空间中的空间对象的索引表。
11.根据权利要求10所述的方法,其特征在于,所述目标地理空间的网格是按照四叉树四边形网格划分方式划分的,基于所述最小外包矩形的尺度,确定与所述空间对象相匹配的目标层级,包括:
基于所述最小外包矩形的长,确定与所述空间对象相匹配的网格的边长,其中,与所述空间对象相匹配的网格的边长不小于第一值且不大于第二值,所述第一值为所述最小外包矩形的长的二分之一,所述第二值为所述最小外包矩形的长;
基于与所述空间对象相匹配的网格的边长,确定与所述空间对象相匹配的目标层级。
12.根据权利要求11所述的方法,其特征在于,在所述目标层级下,确定所述空间对象的映射网格,包括:
确定所述最小外包矩形的四个顶点在所述目标层级中所占的网格;
如果所述四个顶点在所述目标层级中所占的网格之间没有间隔,则确定所述四个顶点在所述目标层级中所占的网格在上一个层级中形成的父单元网格;
将所述父单元网格确定为所述空间对象的映射网格。
13.根据权利要求12所述的方法,其特征在于,确定所述四个顶点在所述目标层级中所占的网格在上一个层级形成的父单元网格,包括:
如果所述四个顶点在所述目标层级中占两个网格,则增补同一层级的两个网格形成四个网格,并将所述四个网格聚合形成的父单元网格,确定为所述四个顶点在所述目标层级中所占的网格在上一个层级形成的父单元网格;
如果所述四个顶点在所述目标层级中占四个网格,则将所述四个网格聚合形成的父单元网格,确定为所述四个顶点在所述目标层级中所占的网格在上一个层级形成的父单元网格;
其中,所述四个网格在经纬方向上的数量均为两个,且同一方向上的两个网格之间没有间隔。
14.根据权利要求11所述的方法,其特征在于,在所述目标层级下,确定所述空间对象的映射网格,包括:
确定所述最小外包矩形的四个顶点在所述目标层级中所占的网格;
如果所述四个顶点在所述目标层级中所占的网格之间存在间隔,则补全中间网格得到多个网格;
确定所述多个网格在上两个层级中形成的祖父单元网格;
将所述祖父单元网格确定为所述空间对象的映射网格。
15.根据权利要求14所述的方法,其特征在于,确定所述多个网格在上两个层级中形成的祖父单元网格,包括:
确定所述多个网格中最左下网格的刚性父单元网格;
在所述刚性父单元网格所在层级中,确定第一网格、第二网格和第三网格,其中,所述第一网格位于所述刚性父单元网格的右方,所述第二网格位于所述刚性父单元网格的上方,所述第三网格位于所述刚性父单元网格的右上方,且所述刚性父单元网格、所述第一网格、所述第二网格和所述第三网格之间没有间隔;
将所述刚性父单元网格、所述第一网格、所述第二网格和所述第三网格聚合形成的父单元网格,确定为所述多个网格在上两个层级中形成的祖父单元网格。
16.根据权利要求10所述的方法,其特征在于,所述映射网格为所述多个子网格的刚性父单元,其中,基于预设编码方法,对所述映射网格进行多尺度整数编码,包括:
确定目标子网格的上一个层级中的第一个多尺度整数编码,所述目标子网格是所述多个子网格中的一个;
基于所述目标子网格中心的多尺度整数编码和所述目标子网格所在的层级,确定所述目标子网格的刚性父单元的多尺度整数编码相对于所述第一个多尺度整数编码的间隔;
基于所述第一个多尺度整数编码和所述间隔,确定所述多个子网格的刚性父单元的多尺度整数编码;
将所述多个子网格的刚性父单元的多尺度整数编码,确定为所述映射网格的编码。
17.根据权利要求10所述的方法,其特征在于,所述映射网格为所述多个子网格聚合形成的非刚性父单元,其中,基于预设编码方法,对所述映射网格进行多尺度整数编码,包括:
确定所述多个子网格中左下方子网格的多尺度整数编码;
确定所述左下方子网格的上一个层级中的第一个多尺度整数编码;
基于所述左下方子网格的多尺度整数编码和所述左下方子网格所在的层级,确定所述多个子网格的非刚性父单元的多尺度整数编码相对于所述第一个多尺度整数编码的间隔;
基于所述第一个多尺度整数编码和所述间隔,确定所述多个子网格的非刚性父单元的多尺度整数编码;
将所述多个子网格的刚性父单元的多尺度整数编码,确定为所述映射网格的编码。
18.根据权利要求10所述的方法,其特征在于,
所述索引表中存储有所述空间对象的ID与所述空间对象的映射网格的多尺度整数编码之间的对应关系。
19.一种空间对象查询方法,其特征在于,包括:
接收待查询区域的坐标和预设的查询父单元层级阈值;
基于所述待查询区域的坐标,确定所述待查询区域在目标地理空间中的查询网格,并基于预设编码方法确定所述查询网格的多尺度整数编码,得到待查询区域的查询网格编码集合,其中,所述待查询区域在所述目标地理空间中的查询网格包括所述待查询区域占用的网格和按照预设扩充规则扩充的网格,所述目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格,所述预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边,所述刚性父单元是网格在树状网格结构中的真实父单元,所述非刚性父单元是网格与相邻网格聚合形成的虚拟父单元;
基于所述预设编码方法,确定所述查询网格编码集合中每一编码在指定父单元层级中的四个父单元的多尺度整数编码,并保存至父单元编码集合;其中,所述指定父单元层级包括小于和等于上述查询父单元层级阈值的父单元层级;
对所述查询网格编码集合中的每一编码,基于所述预设编码方法确定该编码在上一层级的父单元编码FMc,使用区间查询方法,从预设索引表中查询编码值在[FMc-Tn,FMc+Tn]之间的空间对象,得到第一查询结果,其中,Tn为FMc所在层级的第一个多尺度整数编码值,所述预设索引表中存储有空间对象ID与空间对象的映射网格的多尺度整数编码之间的对应关系,所述映射网格包括多个子网格,所述映射网格是所述多个子网格的刚性或非刚性父单元,所述映射网格的多尺度整数编码是基于所述预设编码方法得到的;
对所述父单元编码集合中的每一编码,从所述预设索引表中查询该编码对应的空间对象,得到第二查询结果;
剔除第一查询结果和第二查询结果中不符合查询条件的空间对象,得到最终查询结果。
20.根据权利要求19所述的方法,其特征在于,所述预设树状网格结构为四叉树四边形网格,其中,确定所述待查询区域在目标地理空间中的查询网格,包括:
确定所述待查询区域在所述目标地理空间中占用的网格并作为所述待查询区域的查询网格;
将指定网格的左侧、左下和下方的同层级网格中的至少一个作为扩充网格添加至待查询区域的查询网格中,其中,所述指定网格为待查询区域中不再细分的左下边界处网格,所述指定网格的左顶点、左下顶点和右下顶点中的至少一个位于所述待查询区域外。
21.根据权利要求19所述的方法,其特征在于,剔除第一查询结果和第二查询结果中不符合查询条件的空间对象,得到最终查询结果,包括:
将所述第一查询结果和所述第二查询结果进行汇总,得到粗查结果;
确定所述查询网格编码集合和所述父单元编码集合中的冗余编码;
剔除所述粗查结果中所述冗余编码对应的空间对象,得到最终查询结果并输出。
22.一种非刚性空间网格编码装置,其特征在于,包括:
网格划分模块,用于按照预设树状网格结构划分方式对目标地理空间进行划分,得到多个层级下的多个网格,其中,不同层级网格的尺度不同;
第一编码模块,用于对所述网格的预设位置进行二进制编码,其中,所述预设位置包括网格中心、至少一个顶点和至少两个边,所述至少两个边互不平行;
第二编码模块,用于基于所述网格的预设位置的二进制编码和所述网格对应的层级,对所述网格的预设位置进行多尺度整数编码;
第三编码模块,用于基于所述网格的预设位置的多尺度整数编码和所述网格对应的层级,确定所述网格对应的父单元的编码,其中,所述父单元包括刚性父单元和非刚性父单元中的至少一种,所述刚性父单元是所述网格在树状网格结构中的真实父单元,所述非刚性父单元是所述网格与相邻网格聚合形成的虚拟父单元。
23.一种空间对象唯一标识装置,其特征在于,包括:
外包矩形确定模块,用于在目标地理空间中,确定空间对象的最小外包矩形,其中,所述目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格;
映射网格确定模块,用于基于所述最小外包矩形的尺度,确定与所述空间对象相匹配的目标层级,并在所述目标层级下,确定所述空间对象的映射网格,其中,所述映射网格包括多个子网格,所述映射网格是所述多个子网格的父单元,所述父单元为刚性父单元或非刚性父单元,所述刚性父单元是所述多个子网格在树状网格结构中的真实父单元,所述非刚性父单元是所述多个子网格聚合形成的虚拟父单元;
空间对象标识模块,用于基于预设编码方法,对所述映射网格进行多尺度整数编码,并将所述映射网格的多尺度整数编码确定为所述空间对象的标识,其中,所述预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边;
索引建立模块,用于基于确定的所述空间对象的标识建立所述空间对象的查询索引,得到所述目标地理空间中的空间对象的索引表。
24.一种空间对象查询装置,其特征在于,包括:
参数接收模块,用于接收待查询区域的坐标和预设的查询父单元层级阈值;
第一编码集合确定模块,用于基于所述待查询区域的坐标,确定所述待查询区域在目标地理空间中的查询网格,并基于预设编码方法确定所述查询网格的多尺度整数编码,得到待查询区域的查询网格编码集合,其中,所述待查询区域在所述目标地理空间中的查询网格包括所述待查询区域占用的网格和按照预设扩充规则扩充的网格,所述目标地理空间被按照预设树状网格结构划分方式划分成多个层级下的多个网格,所述预设编码方法用于对按照所述预设树状网格结构划分方式划分得到的网格的预设位置进行多尺度整数编码,并基于该网格的多尺度整数编码和该网格所在的层级,确定该网格对应的刚性父单元和非刚性父单元的多尺度整数编码,所述预设位置包括网格中心、网格的至少一个顶点和网格中互不平行的至少两条边,所述刚性父单元是网格在树状网格结构中的真实父单元,所述非刚性父单元是网格与相邻网格聚合形成的虚拟父单元;
第二编码集合确定模块,用于基于所述预设编码方法,确定所述查询网格编码集合中每一编码在指定父单元层级中的四个父单元的多尺度整数编码,并保存至父单元编码集合;其中,所述指定父单元层级包括小于和等于上述查询父单元层级阈值的父单元层级;
第一查询模块,用于对所述查询网格编码集合中的每一编码,基于所述预设编码方法确定该编码在上一层级的父单元编码FMc,使用区间查询方法,从预设索引表中查询编码值在[FMc-Tn,FMc+Tn]之间的空间对象,得到第一查询结果,其中,Tn为FMc所在层级的第一个多尺度整数编码值,所述预设索引表中存储有空间对象ID与空间对象的映射网格的多尺度整数编码之间的对应关系,所述映射网格包括多个子网格,所述映射网格是所述多个子网格的刚性或非刚性父单元,所述映射网格的多尺度整数编码是基于所述预设编码方法得到的;
第二查询模块,用于对所述父单元编码集合中的每一编码,从所述预设索引表中查询该编码对应的空间对象,得到第二查询结果;
精查模块,用于剔除第一查询结果和第二查询结果中不符合查询条件的空间对象,得到最终查询结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010262467.9A CN111475597B (zh) | 2020-03-31 | 2020-03-31 | 非刚性网格编码、空间对象唯一标识、查询方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010262467.9A CN111475597B (zh) | 2020-03-31 | 2020-03-31 | 非刚性网格编码、空间对象唯一标识、查询方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111475597A true CN111475597A (zh) | 2020-07-31 |
CN111475597B CN111475597B (zh) | 2022-11-22 |
Family
ID=71750690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010262467.9A Active CN111475597B (zh) | 2020-03-31 | 2020-03-31 | 非刚性网格编码、空间对象唯一标识、查询方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111475597B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112161623A (zh) * | 2020-09-09 | 2021-01-01 | 桂林长海发展有限责任公司 | 一种经纬度定位方法及装置 |
CN112214485A (zh) * | 2020-08-18 | 2021-01-12 | 北京旋极伏羲科技有限公司 | 基于全球剖分网格的电网资源数据组织规划方法 |
CN112348960A (zh) * | 2020-11-27 | 2021-02-09 | 中国人民解放军空军工程大学 | 一种适用于全球空间范围的空域冲突检测方法 |
WO2022078499A1 (zh) * | 2020-10-16 | 2022-04-21 | 歌尔股份有限公司 | 一种路网地图实现方法、装置和电子设备 |
WO2023124470A1 (zh) * | 2021-12-29 | 2023-07-06 | 阿里云计算有限公司 | 区域编码方法、装置、设备和存储介质 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100006843A (ko) * | 2008-07-10 | 2010-01-22 | 한국전자통신연구원 | 공간 검색을 위한 그리드 기반의 트리 구성 방법, 서버시스템 및 노드 |
CN102281075A (zh) * | 2011-03-21 | 2011-12-14 | 中国人民解放军信息工程大学 | 孔径为4的六边形格网层次编码、运算与索引方法 |
CN103455624A (zh) * | 2013-09-16 | 2013-12-18 | 湖北文理学院 | 一种轻量级全球多维遥感影像网络地图服务实现方法 |
US20140040215A1 (en) * | 2011-04-12 | 2014-02-06 | Thomson Licensing | Method for encoding a mesh model, encoded mesh model and method for decoding a mesh model |
CN105426491A (zh) * | 2015-11-23 | 2016-03-23 | 武汉大学 | 一种时空地理大数据的检索方法及系统 |
WO2016095749A1 (zh) * | 2014-12-18 | 2016-06-23 | 高德软件有限公司 | 电子地图中查询空间对象和建立空间索引的方法及装置 |
CN107273470A (zh) * | 2017-06-06 | 2017-10-20 | 武汉大学 | 基于变粒度快速GeoHash编码的时空模式挖掘方法 |
CN107341191A (zh) * | 2017-06-14 | 2017-11-10 | 童晓冲 | 一种三维空间的多尺度整数化编码方法和装置 |
CN109284338A (zh) * | 2018-10-25 | 2019-01-29 | 南京航空航天大学 | 一种基于混合索引的卫星遥感大数据优化查询方法 |
CN109992636A (zh) * | 2019-03-22 | 2019-07-09 | 中国人民解放军战略支援部队信息工程大学 | 时空编码方法、时空索引及查询方法及装置 |
-
2020
- 2020-03-31 CN CN202010262467.9A patent/CN111475597B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100006843A (ko) * | 2008-07-10 | 2010-01-22 | 한국전자통신연구원 | 공간 검색을 위한 그리드 기반의 트리 구성 방법, 서버시스템 및 노드 |
CN102281075A (zh) * | 2011-03-21 | 2011-12-14 | 中国人民解放军信息工程大学 | 孔径为4的六边形格网层次编码、运算与索引方法 |
US20140040215A1 (en) * | 2011-04-12 | 2014-02-06 | Thomson Licensing | Method for encoding a mesh model, encoded mesh model and method for decoding a mesh model |
CN103455624A (zh) * | 2013-09-16 | 2013-12-18 | 湖北文理学院 | 一种轻量级全球多维遥感影像网络地图服务实现方法 |
WO2016095749A1 (zh) * | 2014-12-18 | 2016-06-23 | 高德软件有限公司 | 电子地图中查询空间对象和建立空间索引的方法及装置 |
CN105426491A (zh) * | 2015-11-23 | 2016-03-23 | 武汉大学 | 一种时空地理大数据的检索方法及系统 |
CN107273470A (zh) * | 2017-06-06 | 2017-10-20 | 武汉大学 | 基于变粒度快速GeoHash编码的时空模式挖掘方法 |
CN107341191A (zh) * | 2017-06-14 | 2017-11-10 | 童晓冲 | 一种三维空间的多尺度整数化编码方法和装置 |
CN109284338A (zh) * | 2018-10-25 | 2019-01-29 | 南京航空航天大学 | 一种基于混合索引的卫星遥感大数据优化查询方法 |
CN109992636A (zh) * | 2019-03-22 | 2019-07-09 | 中国人民解放军战略支援部队信息工程大学 | 时空编码方法、时空索引及查询方法及装置 |
Non-Patent Citations (3)
Title |
---|
李爽: ""基于多级信息网格的海量遥感数据存储管理研究"", 《测绘学报》 * |
杨宇博等: "基于GeoSOT剖分编码的多尺度空间信息区域包含关系计算方法", 《遥感技术与应用》 * |
赖广陵: ""三维空间格网的多尺度整数编码与数据索引方法"", 《测绘学报》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112214485A (zh) * | 2020-08-18 | 2021-01-12 | 北京旋极伏羲科技有限公司 | 基于全球剖分网格的电网资源数据组织规划方法 |
CN112214485B (zh) * | 2020-08-18 | 2024-02-20 | 北京旋极伏羲科技有限公司 | 基于全球剖分网格的电网资源数据组织规划方法 |
CN112161623A (zh) * | 2020-09-09 | 2021-01-01 | 桂林长海发展有限责任公司 | 一种经纬度定位方法及装置 |
WO2022078499A1 (zh) * | 2020-10-16 | 2022-04-21 | 歌尔股份有限公司 | 一种路网地图实现方法、装置和电子设备 |
CN112348960A (zh) * | 2020-11-27 | 2021-02-09 | 中国人民解放军空军工程大学 | 一种适用于全球空间范围的空域冲突检测方法 |
CN112348960B (zh) * | 2020-11-27 | 2024-05-07 | 中国人民解放军空军工程大学 | 一种适用于全球空间范围的空域冲突检测方法 |
WO2023124470A1 (zh) * | 2021-12-29 | 2023-07-06 | 阿里云计算有限公司 | 区域编码方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111475597B (zh) | 2022-11-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475597B (zh) | 非刚性网格编码、空间对象唯一标识、查询方法及装置 | |
CN109992636B (zh) | 时空编码方法、时空索引及查询方法及装置 | |
CN104199986B (zh) | 基于hbase和geohash的矢量数据空间索引方法 | |
CN111291016B (zh) | 一种海量遥感影像数据分层混合存储与索引方法 | |
CN102609525B (zh) | 一种基于经纬度的地理网格剖分及聚合方法 | |
CN106898045B (zh) | 一种基于sgog瓦块的大区域真三维地理场景自适应构建方法 | |
CN102411616B (zh) | 一种数据存储方法和系统及数据管理方法 | |
CN108038249B (zh) | 一种全球一张图数据存储组织方法及调用方法 | |
CN113515525A (zh) | 一种基于全球多尺度格网的空间数据组织方法 | |
CN101976468B (zh) | 一种多分辨率动态地形可视化方法及系统 | |
WO2016095749A1 (zh) | 电子地图中查询空间对象和建立空间索引的方法及装置 | |
CN110825831A (zh) | 数字孪生城市多尺度空间网格编码方法及装置 | |
CN103714145A (zh) | 关系型和Key-Value型数据库空间数据索引方法 | |
US20210254995A1 (en) | Methods, apparatuses, systems, and storage media for storing and loading visual localization maps | |
CN111324683B (zh) | 一种时空与要素统一编码的数据管理方法 | |
CN108009265B (zh) | 一种云计算环境下的空间数据索引方法 | |
CN112579712A (zh) | 一种多态地理实体数据模型的构建方法、设备及存储设备 | |
Guo et al. | A geographic meshing and coding method based on adaptive Hilbert-Geohash | |
CN102281075B (zh) | 孔径为4的六边形格网层次编码、运算与索引方法 | |
CN101964157B (zh) | 球面菱形网格递归剖分方法 | |
CN115129795A (zh) | 一种基于地球空间网格的数据空时存储方法 | |
CN110765298B (zh) | 矢量数据几何属性解耦的瓦片编码方法 | |
CN110533764B (zh) | 面向建筑群的分形四叉树纹理组织方法 | |
CN117009411A (zh) | 一种基于点云数据网格化空间存储与索引方法、装置及计算机可读存储介质 | |
CN103106254B (zh) | 多边形矢量数据文件的并行拼接方法 |
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 |