电子地图中查询空间对象和建立空间索引的方法及装置与流程

文档序号:13215314阅读:250来源:国知局
技术领域本发明涉及地理信息系统领域,尤其涉及一种电子地图中查询空间对象和建立空间索引的方法及装置。

背景技术:
卫星定位技术及互联网技术的广泛应用,带动了导航及位置服务相关产业的发展。用户对于地理信息系统提供的位置服务的需求越来越迫切。例如通过电子地图进行定位,检索空间对象的位置等。而对于电子地图数据进行检索必然要建立空间对象的空间索引。所谓空间对象是指电子地图中表示的空间实体,例如,一栋建筑可以为一个空间对象,一条道路可以为一个空间对象,空间对象也可以表示空间实体的集合,例如一定区域内的几家店面或一定区域内的多个建筑。空间对象在电子地图中可以通过配置一个唯一的空间对象标识例如编号1、2、3等将该空间对象与其他空间对象区分开来。空间索引则是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一种数据结构。在电子地图中,四叉树空间索引是一种应用广泛的空间索引机制。四叉树空间索引的基本思想是将地理空间递归划分为不同层级的树结构。它将已知范围的地理空间等分成四个相等的子空间,需要时再将至少一个子空间再等分成四个相等的子空间,如此递归下去,直至树的层次达到一定深度或者满足某种要求后停止分割(例如,当前子空间的每个节点关联的空间对象的个数不超过预设数目,则停止分割,否则就继续对该子空间进行分割)。在四叉树空间索引的数据结构中,建立每个节点与该节点的子节点的对应关系,并存储每个节点表示的空间对象范围(如空间对象标识的范围),当通过四叉树空间索引去查询一个空间对象时,自根节点向叶子节点逐层查询,例如判断该空间对象的空间对象标识是否包含在根节点对应的空间对象范围中,若是,则向该根节点的下层节点继续查询,直至查询到叶子节点。可见,现有技术每一次查询空间对象都需要逐层进行查询,当四叉树空间索引的树结构层次较多时,现有的基于四叉树空间索引查询空间对象的方法的查询效率低下。

技术实现要素:
本发明的目的是提供一种电子地图中查询空间对象和建立空间索引的方法及装置,以克服现有技术中空间对象的查询效率低下的问题。第一方面,本发明提供一种电子地图中查询空间对象的方法,包括:获取待查询空间对象的二进制组合ID(Identity,标识),所述二进制组合ID中包括表示该待查询空间对象在空间索引中所属层级的层级指示位,以及表示该空间对象在该层级所属网格的初始ID;根据二进制组合ID中的层级指示位信息,确定该待查询空间对象在空间索引中的所属层级;根据二进制组合ID中的初始ID信息,确定该待查询空间对象在层级指示位信息表示的层级中所属的网格;在确定的网格中查询所述待查询空间对象。第二方面,本发明提供一种电子地图中建立空间索引的方法,所述方法包括:将电子地图所包含的经纬度范围分别映射到均用m位二进制数表示的整数范围,其中,已预先将每一层电子地图分割为地理空间范围相同的22i个网格,i表示每一层电子地图的层级,i的取值为1到N,且m为大于或等于N的正整数;针对每一层中的每一个空间对象,确定该空间对象的经度对应映射的m位二进制数,以及该空间对象的纬度对应映射的m位二进制数;由高位到低位的顺序,从该空间对象的经度对应映射的m二进制数中取i位以及纬度对应映射的二进制数中取i位;由高位到低位的顺序,将取出的该空间对象的i位经度和i位纬度交错排列,得到2i位的二进制序列,该2i位的二进制序列表示该空间对象在第i层中所属的网格的初始ID;将该空间对象的层级指示位信息和初始ID按照预设的组合规则进行组合,生成该空间对象在第i层中的二进制组合ID。第三方面,与第一方面对应地,本发明还提供一种电子地图中查询空间对象的装置,所述装置包括:获取模块,用于获取待查询空间对象的二进制组合ID,所述二进制组合ID中包括表示该待查询空间对象在空间索引中所属层级的层级指示位,以及表示该空间对象在该层级所属网格的初始ID;层级确定模块,用于根据二进制组合ID中的层级指示位信息,确定该待查询空间对象在空间索引中的所属层级;网格确定模块,用于根据二进制组合ID中的初始ID信息,确定该待查询空间对象在层级指示位信息表示的层级中所属的网格;查询模块,用于在确定的网格中查询所述待查询空间对象。第四方面,与第二方面对应地,本发明还提供一种电子地图中建立空间索引的装置,所述装置包括:经纬度表示模块,用于将电子地图所包含的经纬度范围分别映射到均用m位二进制数表示的整数范围,其中,已预先将每一层电子地图分割为地理空间范围相同的22i个网格,i表示每一层电子地图的层级,i的取值为1到N,且m为大于或等于N的正整数;经纬度确定模块,用于针对每一层中的每一个空间对象,确定该空间对象的经度对应映射的m位二进制数,以及该空间对象的纬度对应映射的m位二进制数;取位模块,用于由高位到低位的顺序,从该空间对象的经度对应映射的m二进制数中取i位以及纬度对应映射的二进制数中取i位;初始ID生成模块,用于由高位到低位的顺序,将取出的该空间对象的i位经度和i位纬度交错排列,得到2i位的二进制序列,该2i位的二进制序列表示该空间对象在第i层中所属的网格的初始ID;组合ID生成模块,用于将该空间对象的层级指示位信息和初始ID按照预设的组合规则进行组合,生成该空间对象在第i层中的二进制组合ID。本发明至少具有以下有益效果:通过对待分割电子地图建立空间索引,使得该空间索引中每层的空间对象都有一个二进制组合ID,使该二进制组合ID能够表示该待查询空间对象在空间索引中所属层级的层级指示信息,以及表示该空间对象在该层级中所属网格的初始ID,从而便于在查询空间对象时,能够根据二进制组合ID快速的确定空间对象所属的层级以及所属的网格,相对现有技术通过一个节点一个节点的方式去查询空间对象所属的网格的方法,能够提高查询效率。应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。附图说明图1为本发明实施例中的电子地图中查询空间对象的方法的示例性流程图;图2为本发明实施例总电子地图中建立空间索引的方法的示例性流程图;图3a为本发明实施例中对全球电子地图,在经纬度方向各切分一次得到第一层中的4个网格的示意图;图3b为本发明实施例中在图3a的基础上,得到对全球电子地图的第二层的16个网格的示意图;图4为本发明实施例中的对全球电子地图构建空间索引的示例性流程图;图5为本发明实施例中利用构建的空间索引对待查询空间对象进行查询的过程的示例性流程图;图6为本发明实施例中电子地图中查询空间对象的装置的示意图;图7为本发明实施例中电子地图中查询空间对象的装置的另一示意图;图8为本发明实施例中电子地图中建立空间索引的装置的示意图;图9为本发明实施例中电子地图中建立空间索引的装置的另一示意图。具体实施方式以下结合说明书附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。本发明实施例提供一种电子地图中查询空间对象的方法,在该方法提供的方案中,提供一种新型的电子地图的空间索引机制。具体的,预先将电子地图进行分割划分为多个层级,每一层级都表示一个完整的电子地图,每一层级都将电子地图划分为多份,每一份表示一个网格(可以理解为一个瓦片)。任一层级中的空间对象,在该层级中会隶属于该层中的一个网格。在本发明提供的空间索引机制中,每一个空间对象在每一层都有一个二进制组合ID,该二进制组合ID中包括了表示该待查询空间对象在空间索引中所属层级的层级指示位,以及表示该空间对象在该层级中所属网格的初始ID,从而在查询该空间对象时,无需像现有技术中逐节点的去查询,本发明可以根据待查询空间对象的二进制组合ID能够快速的定位到该待查询空间对象所属层级,以及所属层级中的所属网格,从而可以准确快速的定位该空间对象所属的网格,从而相对于现有技术能够加速查询空间对象的查询效率。本发明中包括查询空间对象和建立空间索引两个方面,下面对这两个方面进行详细说明。实施例一如图1所示,为本发明实施例中电子地图中查询空间对象的方法的示例性流程图,该方法包括以下步骤:步骤101:获取待查询空间对象的二进制组合ID,所述二进制组合ID中包括表示该待查询空间对象在空间索引中所属层级的层级指示位,以及表示该空间对象在该层级所属网格的初始ID。其中,在一个实施例中,该待查询空间对象可以是一个空间实体,也可以是多个空间实体的集合,例如Poi(PointofInterest,兴趣点)。步骤102:根据二进制组合ID中的层级指示位信息,确定该待查询空间对象在空间索引中的所属层级。其中,在一个实施例中,为便于操作和快速查询,步骤102可包括以下步骤:步骤A1:按照二进制组合ID从高位至低位的顺序,从所述二进制组合ID中确定出第一个赋值为1的位,所述第一个赋值为1的位为所述二进制组合ID中表示待查询空间对象在空间索引中的所属层级的层级指示位。步骤A2:确定所述二进制组合ID中第一个赋值为1的位之后的总位数,该总位数为所述初始ID的总位数。步骤A3:用该总位数除以2得到该空间对象的所属层级。由此实现了根据二进制组合ID快速的确定空间对象的所属层级。而不必像现有技术中要通过逐节点去查询,从而提高了查询效率。步骤103:根据二进制组合ID中的初始ID信息,确定该待查询空间对象在层级指示位信息表示的层级中所属的网格。步骤104:在确定的网格中查询所述待查询空间对象。其中,在一个实施例中,在二进制组合ID的最高位前面还有一位符号位。例如当二进制组合ID表示正数时,该符号位为0,当二进制组合ID表示负数时,该符号位为1。本发明实施例实现根据二进制组合ID中层级指示位定位查询的层级,通过初始ID定位待查询空间对象所属的网格,从而相对于现有技术逐节点的查询方法能够快速的定位待查询空间对象所属的网格,以便于加快查询空间对象的速度,从而能够提高空间对象的查询效率。实施例二该实施例用于对空间索引的建立方法进行详细说明,如图2所述,为本发明实施例中电子地图中建立空间索引的方法的示例性流程图,该方法包括以下步骤:步骤201:将电子地图所包含的经纬度范围分别映射到均用m位二进制数表示的整数范围,其中,已预先将每一层电子地图分割为地理空间范围相同的22i个网格,i表示每一层电子地图的层级,i的取值为1到N,且m为大于或等于N的正整数。步骤202:针对每一层中的每一个空间对象,确定该空间对象的经度对应映射的m位二进制数,以及该空间对象的纬度对应映射的m位二进制数。步骤203:由高位到低位的顺序,从该空间对象的经度对应映射的m二进制数中取i位以及纬度对应映射的二进制数中取i位。步骤204:由高位到低位的顺序,将取出的该空间对象的i位经度和i位纬度交错排列,得到2i位的二进制序列,该2i位的二进制序列表示该空间对象在第i层中所属的网格的初始ID。步骤205:将该空间对象的层级指示位信息和初始ID按照预设的组合规则进行组合,生成该空间对象在第i层中的二进制组合ID。下面通过以下1)-4)中的内容对上述各步骤进行详细说明:1)、在步骤201中:其中,在一个实施例中,当电子地图为全球电子地图时,可以将全球电子地图划分为1至15层,每一层为一个层级。其中,对步骤201中所述的每一层电子地图分割为地理空间范围相同的22i个网格进行举例说明,例如在第15层中,将全球电子地图划分为经纬度范围均相同的230等份。例如如图3a所示,在第一层中,将全球电子地图,在纬度方向上进行切分,并在经度方向上进行切分,得到四个网格,图中的编号为二进制数,表示网格的在该层的初始ID(以下图3b中编号的含义相同,以后不再赘述);第二层的形成过程如下:如图3b所示,在图3a的基础上,将图3a中的每个网格在纬度方向和经度方向各进行一次切分,使得图3a中的每个网格被分割成4个。因此,在第二层中,共有16个网格。以此类推,第i层中的网格,是将第i-1层中的每个网格切分成4份之后得到的。需要说明的是,无论在第几层中,先从纬度方向切分网格再从经度方向切分网格,或者先从经度方向切分网格在从纬度方向切分网格,亦或者同时从纬度和经度方向切分网格,在本发明实施例中均适用,本发明对此不做限定。其中,在一个实施例中,m取值为31,N的取值为15。对于全球电子地图,由于地球的周长约为4万千米,则在第15层中每个网格所表示的地理范围约为1.8cm,可以表示的最小空间对象的地理范围为1.82cm2,进而能够足够精确表示空间对象的位置。其中,m位二进制数表示的整数范围,用自然数的范围表示是[0,2m-1],如1位二进制数能够表示的最大整数为21-1=1,共表示0、1共2(即21)个整数;2位二进制数能够表示的最大整数为22-1=3,共表示0、1、2、3共4(即22)个整数,依此类推m位二进制数能够表示的最大整数为22-1,共表示2m个整数,而电子地图经度用m位二进制数表示,纬度也用m位二进制数,则经纬度结合起来共能够表示2m*2m=22m个整数。针对电子地图的每一层,为了使该层的网格和初始ID是一一对应关系,即每个网格对应一个初始ID,每个初始ID对应一个网格,则经纬度结合起来能够表示的整数的个数必须大于等于网格的个数(即22m≥22i),故此针对第i层,m≥i。电子地图共有N层,即i的最大取值为N,故此,m≥N。对于将电子地图的经度映射到m位二进制数表示的整数范围,例如是,当N取值为15,m取值为31时,若电子地图的经度范围为[0,90]则用31位二进制数表示的最小整数即31个0表示最小经度(即经度为0),用31位二进制数表示的最大整数即31个1表示最大经度(即经度为90);同理,对于将电子地图的纬度映射到m位二进制数表示的整数范围,例如是,当N取值为15,m取值为31时,若电子地图的纬度范围为[0,90],则用31位二进制数表示的最小整数即31个0表示最小纬度(即纬度为0),用31位二进制数表示的最大整数即31个1表示最大纬度(即纬度为90)。2)、在步骤203中:其中,在一个实施例中,当对全球电子地图划分为15层时,m取值为31时,即全球电子地图的经纬度各为31位的二进制数。若第5层中的一个空间对象B的经度坐标为“1111111111111111111111111111110”(其中高位到低位的方向为从左到右的方向),该空间对象B的纬度坐标为“0111111111111111111111111111110”,则取该空间对象的经度的高5位为“11111”,取该空间对象的纬度高5位为“01111”。其中,假设最大的经度或纬度取整后转换为二进制数后为m位,则m位的二进制数能够完全表示实际的经纬度的数值,这时候m位二进制数表示的就是实际的取整数部分的经纬度。假若m位二进制数不能够表示实际的经纬度,则对每一个空间对象需要求得对应映射的m位二进制数。以求得经度对应映射的m位二进制数为例,一种最简单的求解方法例如是,确定空间对象的实际经度与最大经度的比例,该比例即是该经度的对应映射的m位二进制数与最大的m位二进制之间的比例,而最大的m位二进制数是确定的,比例是确定的,则该经度对应映射的m位二进制数是可求解。当然,通过其他的数学方法确定对应映射的m位二进制数也适用于本发明实施例,本发明对此不做限定。3)、在步骤204中:例如,空间对象的纬度的高3位二进制数为“C1C2C3”,经度的高3位二进制数为“D1D2D3”,则先从经度开始,交错排列后得到的6位二进制序列应该为“D1C1D2C2D3C3”。则前述空间对象B在第5层中的10位二进制序列应为“1011111111”,换算为十进制数则为767(即本发明实施例中可以用十进制数表示空间对象B在第5层中所属网格的初始ID为767)。当然,也可以先从纬度方向开始交错排列,本发明对此不做限定。通过交错排列该空间对象的经度的高i位和纬度的高i位,可以根据初始ID,快速、明确地确定层级之间的父子关系。例如初始ID为101101(共6位二进制数)。该网格是由上一层(即第二层)的初始ID为1011的网格的基础上分割来的,其中的原理先通过一个简单的例子进行说明,例如对于同一空间对象在每一层中它的经度的m位二进制数均相同,则在第二层,由高位到低位的顺序取的4位二进制数,在第三层同样是由高位到低位的顺序取的6位二进制数,则这6位二进制数的后2位的顺序正好在第二层的4位二进制数之后的两位二进制数,因此第三层中6位二进制数的前4位正好为第二层中的4位二进制数,即同样都是一个空间对象不同层级中仅需要不同的位数表示而已。同理,在第i层中,空间对象在该层的初始ID是经度和纬度的高i位交错排列得来的,因此在最低层(第N层)的初始ID的位数最多为2N位,对于同一空间对象其在最低层的初始ID仅有一个,只不过每一层选取2N位的初始ID的高2i位来使用,基于上述简单的例子,可知,一个空间对象的总位数的初始ID表征了该空间对象在每一层中所属的网格,空间对象在第三层的初始ID为101101的网格中,同时该空间对象在第二层的初始ID为1011的网格中,而空间对象在电子地图中的位置是固定的,根据电子地图的划分机制,上一层二层网格表示的范围大于下一层网格所表示的范围,因此初始ID为101101的网格是由初始ID为1011的网格划分而来,这一点是由划分电子地图和为网格建立初始ID的机制中可以直接推断出来。同理,在第二层中初始ID为1011的网格又是在第一层中初始ID为10的网格分割而来的。可见,在初始ID中网格之间的父子关系非常容易辨识和判断。此外,当在电子地图表示的地理范围内,有新的空间对象需要加入索引时,可以根据该空间对象的经纬度直接生成并存储该新增空间对象的二进制组合ID。而不必像现有技术中,要为对应的每个节点繁琐地生成该空间对象标识,从而本发明实施例有利于简单快速的进行空间索引。4)、在步骤205中:通过对电子地图进行分割,根据空间对象的经纬度坐标生成该空间对象所在网格的初始ID,该初始ID能够明确的表示网格之间的上下级关系,此外,通过初始ID将经纬度坐标与网格的关联起来,便于在查询空间对象时,通过初始ID便能够快速的定位空间对象所在的网格。通过将层级信息加入初始ID中生成二进制组合ID,以便于二进制组合ID能够表示空间对象所属层级,也能够将空间对象所在网格的所属层级表示出来,以便于快速确定在哪个层级中确定该空间对象所属的网格。例如,一个空间对象在多个层级中时,通过二进制组合ID的层级位可以快速的确定在哪个层级中查询该空间对象所属的网格。比如:二进制组合ID为01101101(共8位二进制数),层级位为第一个不为0的位,则该二进制组合ID的层级位在从低位到高位数的第7个(设此位数为第X位),则空间对象所属的网格位于第3层,即:层级等于(7-1)除以2。可以看出:层级i与X的关系:X=2i+1。其中,在一个实施例中,步骤205可以实施为以下步骤:步骤B1:在初始ID对应的二级制序列的最高位前增加一个表示层级指示位的bit位,将该bit位取值设为1。步骤B2:若层级指示位和初始ID构成的二级制序列的位数少于二进制组合ID的预设位数,则在所述层级指示位前增加L个bit位,并将所述L个bit位取值设为0,所述L等于所述预设位数减去所述层级指示位和初始ID所占用的位数之后剩余的位数。其中,较佳的,每一层的预设位数可以不同,每一层的预设位数为能包含该层的初始ID的8的整数倍,例如某一层的初始ID为6位,初始ID的总位数加层级指示位后一共为7位,则该层的预设位数为8位;若某一层的初始ID为8位,初始ID的总位数加层级指示位后一共为9位,则该层的预设位数为16位;若某一层的初始ID为10位,初始ID的总位数加层级指示位后一共为11位,则该层的预设位数为16位。当然,可以根据实际需要将预设位数设置为一个固定的值,例如将待分割电子地图分割为15层,且表示经度和纬度各用31位二进制数表示时,则第15层的初始ID的位数最多为30位(15+15),因此为了能够包含30位二进制数,可以将预设位数设置为32位;再例如,将待分割电子地图分割为31层,且表示经度和纬度各用31位二进制数表示时,则第31层的初始ID的位数最多为62位(31+31),因此为了能够包含62位二进制数,可以将预设位数设置为64位。例如对空间对象B的初始ID的10位序列“0111100111”前面增加一个表示层级指示位的bit位,并将该bit位取值设为1后,得到11位二进制序列“10111100111”,预设位数为16位时,则在所述层级指示位前增加16-11既5个bit位,将这5个bit位置0后,得到最后的二进制组合ID为“0000010111100111”,至此生成了二进制组合ID。此外,在一个实施例中,为了满足编程的需要,在二进制组合ID的最高位前面增加一位符号位。例如当二进制组合ID表示正数时,并将符号位置0,当二进制组合ID表示负数时,将符号位置1。通过上述生成二进制组合ID的过程,使得二进制组合ID能够包含空间对象对应的层级信息以及空间对象所属网格的信息,以便于能够快速在建立的空间索引中查询到该空间对象所属的网格。以便于进行后续操作,例如渲染该空间对象所在的网格,或者根据该空间对象的经纬度坐标,在电子地图中精确的渲染该空间对象所在的位置。综上,本发明实施例通过对电子地图建立空间索引,使得该空间索引中每层的空间对象都有一个二进制组合ID,使该二进制组合ID能够表示该待查询空间对象在空间索引中所属层级的层级指示信息,以及表示该空间对象在该层级中所属网格的初始ID,从而便于在查询空间对象时,能够根据二进制组合ID快速的确定空间对象所属的层级以及所属的网格,进而相对现有技术通过一个节点一个节点的方式去查询空间对象所属的网格的方法,能够提高查询效率。下面通过一个简单的实施例,对本发明实施例中在电子地图中查询空间对象的方法进行详细说明。实施例三以大厦A为待查询空间对象,在上述建立的空间索引中查询该空间对象,定位该空间对象所属的网格,并渲染定位后的网格为例,对本发明实施例中在电子地图中查询空间对象的方法进行详细说明,该方法包括前期预先构建空间索引的过程,和后期利用该构建的空间索引对移动终端进行定位的过程:其中,首先对预先构建空间索引的过程进行说明,以对全球电子地图构建空间索引为例进行说明,如图4所示,包括以下步骤:步骤401:将全球电子地图分割为15层,在每一层中将全球电子地图分割为地理空间范围均相同的22i等份,其中,每一层为一个层级,i表示层级。步骤402:将全球电子地图所包含的经纬度范围分别映射到均用31位二进制数表示的整数范围。其中,步骤402可以理解为将全球的经纬度分别进行量化,使量化后该待分割电子地图的最小经度至最大经度之间的取值范围、以及最小纬度至最大纬度之间的取值范围均为[0,231-1],并用31位数的二进制数分别表示该待分割电子地图的经度和纬度。步骤403:针对第i层中的每一个空间对象,确定该空间对象的经度对应映射的31位二进制数,以及该空间对象的纬度对应映射的31位二进制数。步骤404:由高位到低位的顺序,从该空间对象的经度对应映射的m二进制数中取i位以及纬度对应映射的二进制数中取i位。步骤405:由高位到低位的顺序,将取出的该空间对象的i位经度和i位纬度交错排列,得到2i位的二进制序列,该2i位的二进制序列表示该空间对象在第i层中所属的网格的初始ID。步骤406:在初始ID对应的二级制序列的最高位前增加一个表示层级指示位的bit位,将该bit位取值设为1。步骤407:若层级指示位和初始ID构成的二级制序列的位数少于二进制组合ID的预设位数即31位,则在所述层级指示位前增加L个bit位,并将所述L个bit位取值设为0,所述L等于所述预设位数31减去所述层级指示位和初始ID所占用的位数之后剩余的位数。步骤408:在二进制组合ID最高位前面增加一位用作符号位,生成带有符号位的二进制组合ID。下面介绍利用构建的空间索引查询大厦A所属的网格的过程,如图5所示,包括以下步骤:步骤501:获取大厦A的经纬度。步骤502:根据大厦A的经纬度,并根据步骤403-步骤408生成大厦A在全球电子地图的第15层中的带有符号位的二进制组合ID。其中,步骤502中生成第15层的带有符号位的二进制组合ID,该带有符号位的二进制组合ID具有所有层的层级关系,便于以后在其他层级中定位该大厦A使用。当然,步骤502中仅为举例说明生成在第15层的带有符号位的二进制组合ID,并不用于限定本发明。可以根据实际需要设定在第几层中查询该大厦A以便于生成该层的带有符号位的二进制组合ID。例如可以根据用户设置的地图比例尺,确定在第几层中显示大厦A。例如用户设置的比例尺足够大,则可以确定在第15层中,显示大厦A,则生成第15层的大厦A的带有符号位的二进制组合ID;若用户设置的比例尺为足够小,则可以确定在第1层中显示大厦A,则生成第1层的大厦A的带有符号位的二进制组合ID。步骤503:根据大厦A的带有符号位的二进制组合ID,确定大厦A在全球电子地图的第15层中所属的网格,并在该网格中确定大厦A的位置。步骤504:渲染大厦A在全球电子地图的第15层中所属的网格,并渲染该移动终端在该网格中的位置。步骤505:根据用户执行的选择第10层的选择操作,确定用户要求渲染该移动终端在第10层中所属的网格。步骤506:根据该移动终端在全球电子地图的第15层中的带有符号位的二进制组合ID中的初始ID,确定该移动终端在第10层中的二进制组合ID。其中,在前述构建的空间索引中,带有符号位的二进制组合ID都用32位表示,若大厦A在第15层中的带有符号位的二进制组合ID为“01000101111111111111111111111111,其中最高位0为符号位表示为正数,则从高位开始数第3位到第22位为大厦A在第10层中的初始ID即“00010111111111111111”(即带有符号位的二进制组合ID中由高位到低位的顺序后30位表示的是在第15层的初始ID,第15层的初始ID的前20位为在第10层的初始ID)。按照前述步骤B1-B2的方法,将大厦A在第10层中的初始ID的高位前增加一位表示层级指示位,并将该位置1,然后生成二进制组合ID,再在该二进制组合ID的高位前增加一位符号位后最终获得大厦A在第10层中的32位的带有符号位的二进制组合ID为:000000000000100010111111111111111。步骤507:根据大厦A在第10层中的带有符号位的二进制组合ID,确定该大厦A在第10层中所属的网格,在该网格中确定大厦A的位置。步骤508:渲染大厦A在全球电子地图的第10层中所属的网格,并渲染大厦A在该网格中的位置。本发明实施例还提供一种电子地图中查询空间对象的装置,如图6所示为该装置的示意图,该装置包括:获取模块601,用于获取待查询空间对象的二进制组合ID,所述二进制组合ID中包括表示该待查询空间对象在空间索引中所属层级的层级指示位,以及表示该空间对象在该层级所属网格的初始ID;层级确定模块602,用于根据二进制组合ID中的层级指示位信息,确定该待查询空间对象在空间索引中的所属层级;网格确定模块603,用于根据二进制组合ID中的初始ID信息,确定该待查询空间对象在层级指示位信息表示的层级中所属的网格;查询模块604,用于在确定的网格中查询所述待查询空间对象。其中,在一个实施例中,如图7所示,所述层级确定模块602包括:层级指示信息确定单元605,用于按照二进制组合ID从高位至低位的顺序,从所述二进制组合ID中确定出第一个赋值为1的位,所述第一个赋值为1的位为所述二进制组合ID中表示待查询空间对象在空间索引中的所属层级的层级指示位;初始ID总位数确定单元606,用于确定所述二进制组合ID中第一个赋值为1的位之后的总位数,该总位数为所述初始ID的总位数;层级确定单元607,用于用该总位数除以2得到该空间对象的所属层级。再一方面,基于相同的构思,本发明实施例还提供一种电子地图中建立空间索引的装置,如图8所示,所述装置包括:经纬度表示模块801,用于将电子地图所包含的经纬度范围分别映射到均用m位二进制数表示的整数范围,其中,已预先将每一层电子地图分割为地理空间范围相同的22i个网格,i表示每一层电子地图的层级,i的取值为1到N,且m为大于或等于N的正整数;经纬度确定模块802,用于针对每一层中的每一个空间对象,确定该空间对象的经度对应映射的m位二进制数,以及该空间对象的纬度对应映射的m位二进制数;取位模块803,用于由高位到低位的顺序,从该空间对象的经度对应映射的m二进制数中取i位以及纬度对应映射的二进制数中取i位;初始ID生成模块804,用于由高位到低位的顺序,将取出的该空间对象的i位经度和i位纬度交错排列,得到2i位的二进制序列,该2i位的二进制序列表示该空间对象在第i层中所属的网格的初始ID;组合ID生成模块805,用于将该空间对象的层级指示位信息和初始ID按照预设的组合规则进行组合,生成该空间对象在第i层中的二进制组合ID。其中,在一个实施例中,如图9所示,所述组合ID生成模块805包括:层级位添加单元806,用于在初始ID对应的二级制序列的最高位前增加一个表示层级指示位的bit位,将该bit位取值设为1;组合ID生成单元807,用于若层级指示位和初始ID构成的二级制序列的位数少于二进制组合ID的预设位数,则在所述层级指示位前增加L个bit位,并将所述L个bit位取值设为0,所述L等于所述预设位数减去所述层级指示位和初始ID所占用的位数之后剩余的位数。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1