空间服务提供方法、装置、服务器及存储设备与流程

文档序号:16146881发布日期:2018-12-05 16:35阅读:233来源:国知局
空间服务提供方法、装置、服务器及存储设备与流程
本发明实施例涉及信息处理
技术领域
,具体涉及一种空间服务提供方法、装置、服务器及存储设备。
背景技术
地理元素,主要可以分为三类:点、线和面,地理元素的空间关系,主要包括两类:位置关系和从属关系,位置关系指的是地理元素相隔距离、方位等关系,从属关系指地理元素之间相互包含的关系,例如,某个点元素是否属于某个线元素、或面元素。空间服务,是指通过终端获取用户的位置信息,并在相关平台的支持下,为用户提供空间关系服务的一种增值业务。传统的空间服务主要是基于点来实现的,即将线、面等地理元素转换成点来表示,构建点索引,基于点之间的关系得到地理元素之间的关系,从而提供对应的空间服务。例如,地图领域的周边召回问题,会构建点的索引来实现召回,当地理元素为线或面时,会取其中心点来构建点索引,从而转换成点的召回问题。传统的空间服务提供方案,由于依赖点索引,因此只能提供基于位置关系的服务,不能提供基于从属关系的服务,且提供的基于位置关系的服务,还存在不够精确的问题。例如,判断点元素到面元素之间的距离时,使用面的中心点会存在误差,且面越大,误差越大。技术实现要素:有鉴于此,本发明实施例提供了一种空间服务提供方法、装置、服务器及存储设备,提高了地理元素表示的精确度,且能够提供基于位置关系和从属关系的服务。本发明实施例提供的空间服务提供方法,包括:将地图进行区块划分,并为划分得到的区块设置哈希值;在所述地图上确定地理元素所在的区块,并获取所述地理元素所在的区块的哈希值;利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引;基于建立的地理元素索引为终端提供空间服务。本发明实施例提供的空间服务提供装置,包括:划分单元,用于将地图进行区块划分,并为划分得到的区块设置哈希值;确定单元,用于在所述地图上确定地理元素所在的区块,并获取所述地理元素所在的区块的哈希值;建立单元,用于利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引;服务单元,用于基于建立的地理元素索引为终端提供空间服务。本发明实施例还提供了一种服务器,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如本发明实施例提供的空间服务提供方法。本发明实施例还提供了一种存储设备,所述存储设备用于储存多条指令,所述指令适于由处理器加载并执行如本发明实施例提供的空间服务提供方法。本发明实施例中,会将地图进行区块划分,并为划分得到的区块设置哈希值,然后在地图上确定地理元素所在的区块,利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引,即将线、面等地理元素转换表示为地图区块的哈希集合,相对于将线、面等地理元素转换表示为中心点,本发明实施例的表示方法更精确,基于地理元素所在的区块的哈希值建立的地理元素索引,不仅可以提供基于位置关系的服务、还可以提供基于从属关系的服务,扩展了服务类型。附图说明图1是本发明实施例的空间服务提供系统的场景示意图。图2a是本发明实施例的空间服务提供方法的流程示意图。图2b是本发明实施例对地图进行区块划分的方法示意图。图2c是本发明实施例对地图进行区块划分的效果示意图。图2d是本发明实施例提供的在不同精度下确定地理元素所在区块的效果对比图。图2e是本发明实施例提供的区块的哈希值的合并原理示意图。图2f是本发明实施例关键步骤中涉及的信息示意图。图2g是本发明实施例的空间服务提供方法的另一流程示意图。图3a是本发明实施例的空间服务提供方法的又一流程示意图。图3b是本发明实施例基于位置关系提供的空间服务的结果示意图。图4a是本发明实施例的空间服务提供方法的再一流程示意图。图4b是本发明实施例基于从属关系提供的空间服务的流程示意图。图4c是本发明实施例基于从属关系提供的空间服务的结果示意图。图5是本发明实施例空间服务提供装置的结构示意图。图6是本发明实施例空间服务提供装置的另一结构示意图。图7是本发明实施例所提供的服务器的结构示意图。具体实施方式请参照图示,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。在以下的说明中,本申请的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存系统中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实体位置,其具有由该数据格式所定义的特定特性。但是,本申请原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。本文所使用的术语“模块”可看做为在该运算系统上执行的软件对象。本文所述的不同组件、模块、引擎及服务可看做为在该运算系统上的实施对象。而本文所述的装置及方法可以以软件的方式进行实施,当然也可在硬件上进行实施,均在本申请保护范围之内。本申请中的术语“第一”、“第二”和“第三”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是某些实施例还包括没有列出的步骤或模块,或某些实施例还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。由于传统的空间服务提供方案,依赖点索引,只能提供基于位置关系的服务,无法提供基于从属关系的服务,例如,只能提供某个点周边的线或面,而无法提供某个点所属的线或面,且存在线、面等地理元素表示不够精确的问题,因而,本发明实施例提供了一种空间服务提供方法、将线、面等地理元素转换表示为地图区块的哈希集合,以提高线、面元素表示的精确度,利用地理元素所在的区块的哈希值表示地理元素,建立地理元素索引,不仅可以提供基于位置关系的服务、还可以提供基于从属关系的服务,扩展了服务类型。请参阅图1,图1是本发明实施例的空间服务提供系统的场景示意图,该空间服务提供系统中包括空间服务提供装置,该空间服务提供装置具体可以集成在服务器或其他具备储存单元并安装有微处理器而具有运算能力的设备中。以空间服务提供装置集成在服务器中为例,具体实现中,服务器可以将地图进行区块划分,并为划分得到的区块设置哈希值,之后,可以在所述地图上确定每个地理元素所在的区块,并获取每个地理元素所在的区块的哈希值,当地理元素为点元素时,地理元素所在的区块可能只有一个,哈希值对应也只有一个,而当地理元素为线或面元素时,地理元素所在的区块可能包括多个,哈希值对应也有多个;利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引,基于建立的地理元素索引为终端提供空间服务。另外,本发明实施例的空间服务提供系统中还可以包括终端,终端例如可以为手机、平板电脑、个人计算机或其他如智能车载等智能终端,终端可以向服务器请求所需的空间服务,服务器可以根据终端的请求为终端提供相应的空间服务。比如,服务器可以基于建立的地理元素索引为终端提供基于位置关系的服务,例如为终端召回某个点周边的地理元素;再比如,服务器可以基于建立的地理元素索引为终端提供基于从属关系的服务,例如召回包含某个点的地理元素(比如线、面等地理元素)。所谓召回,可以指给定一个位置信息(比如经纬度信息),根据某种匹配关系,返回该位置周围的地理元素信息。需要说明的是,图1所示的空间服务提供系统的场景示意图仅仅是一个示例,本发明实施例描述的空间服务提供系统及场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着空间服务提供系统的演变和新业务平台的出现,本发明实施例的技术方案对于类似的技术问题,同样适用。以下分别进行详细说明。本实施例将从空间服务提供装置的角度描述本发明实施例的空间服务提供方法,该空间服务提供装置可以集成在服务器中,如图2a所示,本实施例的空间服务提供方法包括以下步骤:步骤s101、将地图进行区块划分,并为划分得到的区块设置哈希值。具体实现中,地图的具体划分方法可如下:首先,可以将地图均分成预设数量的一级区块,按照预设顺序对均分得到的每个一级区块进行数字编码,将每个一级区块的数字编码转换成对应的字符串,得到每个一级区块的哈希值。接着,将每个一级区块均分成预设数量的二级区块,按照预设顺序对均分得到的每个二级区块进行数字编码,将每个二级区块的数字编码转换成对应的字符串,得到每个二级区块的哈希值。重复执行区块均分的步骤,直至将每个n-1级区块均分成预设数量的n级区块,按照预设顺序对均分得到的每个n级区块进行数字编码,将每个n级区块的数字编码转换成对应的字符串,得到每个n级区块的哈希值,每个n级区块的哈希值的精度为第一预设精度,第一预设精度的取值为n,n为大于等于1的正整数。即地图划分的过程,直至得到的区块的哈希值的精度达到第一预设精度为止。比如,可以先将地图一分为二,均分成两个一级区块,再将每个一级区块一分为二,得到四个二级区块,再将每个二级区块一分为二,得到八个三级区块,依次类推,直至划分得到的区块的哈希值的精度达到某个比较高的精度,即第一预设精度。本实施例中,哈希值的精度指哈希值的长度,实际划分过程中,每划分一次,区块的哈希值的长度增加一位,即精度增加1,当划分n次时,得到的区块的哈希值的精度即为n,第一预设精度可根据实际需求自定义取值。本实施例中,区块的数字编码可以是二进制数字编码或十进制数字编码,将区块的数字编码转换成字符串,可采用base32、base36、base64等任意一种转换方式。具体实现中,可预先确定所采用的转换方式,并根据所采用的转换方式确定预设数量的具体取值。比如,当采用base32转换方式时,预设数量的取值可为32,当采用base36转换方式时,预设数量的取值可为36。下面以将地图进行区块划分,并采用base32转换方式得到每个区块的哈希值为例,说明区块划分及哈希值的设置方法。base32转换方式,其实是使用32个字符(0-9、b-z,去掉a,i,l,o,字母可以不区分大小写)来表示一个五位的二进制数组,在表示的时候,可以先将二进制数组转换成0~31之间的十进制数,十进制数与这32个字符之间的对应关系可如下表1所示:表1采用base32转换方式,可以先将整个地图均分为32个一级区块。将地图视为矩形,第一次划分的时候,如图2b所示,可以将经度划分成8个区段,这8个区段可以按自左至右的顺序,分别用000~111这8个3比特(bits)的序列进行标记,将纬度划分为4个区段,这4个区段可以按自下而上的顺序,分别用00~11这4个2比特的序列进行标记,即得到了32个一级区块。这32个一级区块可以按照预设顺序分别用00000~11111这32个5比特的序列来标记,即得到了每个一级区块的二进制数字编码。预设顺序,例如皮亚诺(peano)空间填充曲线顺序,皮亚诺空间填充曲线在局部区域呈现类似“z”型,比如图2b中,一级区块00000,00001,00010及00011的标识顺序即呈现类似“z”型。每个一级区块的二进制数字编码中的5比特序列,其实是经度0、1序列和纬度0、1序列中的数字交替进行排列得到的,其中,二进制数字编码中的偶数位对应的序列为经度序列,奇数位对应的序列为纬度序列,例如二进制数字编码11100,这5个bits中有3bits表示经度,2bits表示纬度。在得到这32个一级区块的二进制数字编码之后,可将该二进制数字编码转换成对应的十进制数字编码,然后按照表1所示的base32转换方式,将每个一级区块的十进制数字编码转换成对应的字符串,即得到了每个一级区块的哈希值。第一次对地图进行区块划分后,每个一级区块的哈希值可如图2c所示,第一次划分之后,每个一级区块的哈希值长度只有1位,即区块的精度为1。同理,可以按照第一次划分所采用的方式对第一次划分所得的32个一级区块中的每个一级区块各自再次划分,即将每个一级区块再次划分成32个二级区块,并按照上述方法为再次划分得到的每个二级区块设置哈希值,每个二级区块的哈希值的精度为2。重复执行区块均分的步骤,直至划分得到的区块的哈希值的精度达到第一预设精度n。由于经度取值区间为[-180,180],纬度取值区间为[-90,90],地球球体参考周长为40075016.68米,则在划分的过程中,每级区块的哈希值的精度、用来标记每个区块的二进制数组中包含的经纬度位数及区块的误差可如表2所示:哈希值的精度纬度位数经度位数误差(千米km)123±2500255±630378±7841010±2051213±2.461515±0.06171718±0.07682020±0.0191192223±0.00478表2从表2可以看出,当划分的区块的哈希值的精度(即长度)为8时,区块的误差在19米左右,而当划分的区块的哈希值的精度为9时,区块的误差在4米左右。实践证明,当区块的哈希值的精度为8时,即区块的误差在19米左右,已经能够满足大部分的位置服务需求,因此,第一预设精度n的取值可以大于或等于8。以第一预设精度n的取值为8为例,则可以在将地图划分至第八次,得到八级区块之后,停止划分过程,每个八级区块的哈希值的精度为8。步骤s102、在所述地图上确定地理元素所在的区块,并获取所述地理元素所在的区块的哈希值。地理元素可以包括点、线、面等地理元素。划分地图时,区块的哈希值的精度越高,意味着地理元素的表示效果越精确,例如图2d所示,针对同一地理元素,当区块的哈希值的精度较低时,该地理元素的表示效果可如图2d左图所示,当区块的哈希值的精度较高时,该地理元素的表示效果可如图2d右图所示,从图2d左、右图的对比可以看出,区块的哈希值的精度越高,地理元素的表示效果越精确。具体实现中,可以在划分的区块的哈希值的精度达到第一预设精度时,在地图上确定每个地理元素所在的区块,并获取每个地理元素所在的区块的哈希值,以提高地理元素表示的精确度,这样一来,每个地理元素所在的区块都具有该第一预设精度,亦即每个地理元素所在的区块的哈希值都具有最大长度。例如,当将地图划分第n次时,区块的哈希值的精度满足了第一预设精度的要求,则可以在地图上确定地理元素所在的n级区块,并获取地理元素所在的n级区块的哈希值。步骤s103、利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引。具体实现中,可以在划分得到的区块具有第一预设精度时,即划分得到n级区块时,获取每个地理元素所在的n级区块的哈希值,并直接利用每个地理元素所在的n级区块的哈希值表示对应的地理元素,建立地理元素索引。这种情况下,由于n级区块的哈希值具有较高的精度,存储该地理元素索引,会由于存储数据量比较大而给存储设备带来较大的存储压力。通过研究发现,如果一个点落在哈希值精度较高的某个下级区块内,则该点必然落在该下级区块对应的哈希值精度较低的上级区块中。如图2e所示,如果一个点落在哈希值为wtw37q这个区块,则该点必然落在wtw37q这个区块的上级区块wtw37内。基于该思路,可以对高精度的哈希值进行合并,比如用图2e中的大区块wtw37的哈希值来表示其下级的这9个小区块的哈希值,即将表示该面元素的9个哈希值合并成了一个哈希值,且哈希值的长度从6压缩到了5。基于上述原理,为解决存储压力问题,可以将每个地理元素所在的区块的高精度的哈希值进行合并,利用合并处理之后的哈希值表示对应的地理元素,以建立地理元素索引。具体的合并过程可以是:在每个地理元素所在的n级区块中,查找均分n-1级区块得到的所述预设数量的n级区块,利用所述n-1级区块的哈希值表示所述预设数量的n级区块的哈希值;在所述n-1级区块中,查找均分n-1级区块的上一级区块得到的所述预设数量的n-1级区块,利用所述n-1级区块的上一级区块的哈希值表示所述预设数量的n-1级区块的哈希值;重复执行区块查找步骤,直至当前级别的区块中,不存在均分当前级别的区块的上一级区块得到的所述预设数量的当前级别的区块。合并的原理,简单来说,即如果某些下级区块为均分某个上级区块得到的全部区块,则可以将这些下级区块的哈希值进行合并,利用该上级区块的哈希值来表示这些下级区块的哈希值;如果这些下级区块仅为均分某个上级区块得到的部分区块,则这些下级区块的哈希值将不能被合并,则将这些下级区块的哈希值保留存储。以n的取值为8,区块划分时,将每个上级区块均分为32个下级区块为例。比如,某个地理元素所在的八级区块中,有32个八级区块是均分某个七级区块得到的全部区块,则将这32个八级区块的哈希值用该七级区块的哈希值表示,如此一来,32个八级区块的哈希值即合并成了一个七级区块的哈希值;另外,如果该地理元素所在的八级区块中,还有一些八级区块是均分另一七级区块得到的部分区块,则这部分八级区块将不能进行合并,保留这部分八级区块的哈希值不变。接下来,在合并得到的七级区块的哈希值中查找能继续合并的区块的哈希值,比如,合并得到的七级区块中,有32个七级区块是均分某个六级区块得到的全部区块,则将这32个七级区块的哈希值用该六级区块的哈希值表示,如此一来,32个七级区块的哈希值即合并成了一个六级区块的哈希值;以此类推,保留每级区块的哈希值中不能合并的区块的哈希值,直至合并得到的某个级别的区块中,不存在还能进一步合并哈希值的区块为止,最终用来标识该地理元素的区块的哈希值中,可以包含不同级别的区块的哈希值。在建立了地理元素索引之后,可以按照键值key-value存储方式存储所述地理元素索引,其中,所述key中存储所述地理元素所在的区块的哈希值,所述value中存储对应区块中包含的地理元素信息,该地理元素信息例如:地理元素的标识、类别、方位、中心点等信息。步骤s104、基于建立的地理元素索引为终端提供空间服务。本实施例中,提供的空间服务可以包括基于位置关系的空间服务,例如,召回某个点周边的地理元素;进一步地,还可以提供基于从属关系的空间服务,例如,召回包含某个点的地理元素(比如线、面等地理元素),具体的提供方法,后文将详细描述。本实施例中,索引构建、索引存储及空间服务这几个步骤中涉及的主要信息可如图2f所示。在索引构建过程中,涉及的地理元素,具体例如:道路、区划、水系、区域面、兴趣点(pointofinterest,poi)等;在索引存储过程中,涉及哈希值的合并、存储,以及地理元素信息的合并、存储;在空间服务的过程中,涉及地理元素的位置关系(周边关系),从属关系、中心点、距离、方位等信息。另外,本实施例的空间服务提供方法的流程还可以如图2g所示,在服务器将地图上的区块划分至哈希值精度达到某个较高的精度(即第一预设精度时),可以确定地理元素(点、线、面等地理元素)所在的区块,并获取所述地理元素所在的区块的哈希值,然后将区块的哈希值从高精度向低精度进行合并,并建立地理元素索引,最后可以基于建立的地理元素索引为终端提供空间服务,本实施例中,服务器可以通过特定的应用程序编程接口(applicationprograminterface,api)为终端提供空间服务。在一个具体的实施例中,服务器可以为终端提供基于位置关系的空间服务,如图3a所示,具体的空间服务提供方法可以包括如下步骤:步骤201、接收终端发送的第一查询请求,所述第一查询请求中包括第一位置信息。该第一查询请求可以是请求查询某个兴趣点附近的目标地理元素,第一查询请求中包括该兴趣点的位置信息,即第一位置信息,该位置信息可以是由经纬度构成的坐标信息。步骤202、按照第二预设精度计算所述第一位置信息的哈希值。第二预设精度小于第一预设精度,即本实施例中,在提供基于位置关系的空间服务时,可以从较低的精度开始,先按照较低的精度计算给定位置信息的哈希值,以减轻服务器的计算压力。在一个具体的实施例中,例如第二预设精度可以为4,对应的哈希值的长度即为4,则首先可以为第一位置信息计算出一个长度为4的哈希值。例如,由经纬度构成的第一位置信息为(116.38955,39.92816),则按照第二预设精度计算所述第一位置信息的哈希值的过程可如下:首先对纬度39.92816进行逼近编码,地球纬度区间为[-90,90],对纬度39.92816编码的过程可如下:(1)将地球纬度区间[-90,90]二分为[-90,0),[0,90],称为左右区间,如果给定的纬度值属于左区间,则编码标记为0,如果给定的纬度值属于右区间,则编码标记为1,可以看出纬度39.92816属于右区间,则编码标记为1。(2)将给定纬度所属的区间[0,90]再次二分为[0,45),[45,90],可以确定纬度39.92816属于左区间,则编码标记为0。(3)递归上述过程,对给定纬度所属的区间一直进行二分,给定纬度总属于某个区间,且随着每次迭代,给定纬度所属的区间总在缩小,并越来越逼近给定纬度39.92816。通过前面的表2可知,当要得到长度为4的哈希值,则需要的纬度的位数为10位,而区间的一次二分,可以得到一位纬度编码,因此,上面的例子中,需要将纬度区间进行10次二分,二分的过程可如表3所示:二分次数纬度区间左区间右区间纬度编码1[-90,90][-90,0)[0,90]12[0,90][0,45)[45,90]03[0,45)[0,22.5)(22.5,45)14(22.5,45)(22.5,33.75)(33.75,45)15(33.75,45)(33.75,39.375)(39.375,45)16(39.375,45)(39.375,42.1875)(42.1875,45)07(39.375,42.1875)(39.375,40.7812)(40.7812,42.1875)08(39.375,40.7812)(39.375,40.0781)(40.0781,40.7812)09(39.375,40.0781)(39.375,39.7265)(39.7265,40.0781)110(39.7265,40.0781)(39.7265,39.9023)(39.9023,40.0781)1表3地球经度区间为[-180,180],同理,可以对经度116.389550进行编码,编码过程可如表4所示:表4通过上述编码计算可以得到,纬度39.92816的二进制编码为1011100011,经度116.389550的二进制编码为1101001011,接下来将两串编码进行合并,偶数位放经度编码,奇数位放纬度编码,合并后得到如下编码串:11100111010010001111,将得到的字符串每五位分割:11100,11101,00100,01111,将分割后的字符串转换成十进制数28,29,4,15,按照表1的对应关系,可知第一位置信息(116.38955,39.92816)的哈希值为wx4g。步骤203、根据所述地理元素索引及所述第一位置信息的哈希值,在所述地图上查找所述第一位置信息的哈希值对应的区块以及所述第一位置信息的哈希值对应的区块的相邻区块。第一位置信息的哈希值对应的区块的相邻区块,可以是第一位置信息的哈希值对应的区块的周边及对角相邻的8个区块,例如图3b所示,当第一位置信息的哈希值对应的区块为区块0时,第一位置信息的哈希值对应的区块的相邻区块可以是图3b中的区块1,区块2……区块8。步骤204、召回所述第一位置信息的哈希值对应的区块内的目标地理元素,以及召回所述第一位置信息的哈希值对应的区块的相邻区块内的目标地理元素。即可以召回图3b所示的0~8这9个区块内的目标地理元素,例如召回这9个区块内的餐馆、银行等。所谓召回,即给定一个位置信息(比如经纬度信息),根据某种匹配关系,返回该位置周围的地理元素信息。步骤205、判断召回的目标地理元素是否满足预设条件,若不满足,则执行步骤206,否则结束处理。预设条件例如:可以是对召回地理元素的距离限定条件,对召回地理元素的数量限制条件等,比如,召回的目标地理元素与第一位置间的距离要小于某个距离值,召回的目标地理元素的数量要小于某个数量值等,预设条件可根据实际需求设置。步骤206、在所述第一预设精度与所述第二预设精度的范围内选取其他精度,根据选取的精度重新计算所述第一位置信息的哈希值。比如,第一预设精度为8、第二预设精度为4,当为第一位置信息计算出一个长度为4的哈希值时,若召回结果不满足预设条件,则可以提高计算所使用的精度,比如,可以为第一位置信息计算出一个长度为5的哈希值,然后按照上述方法再次召回,依次遍历第一预设精度与第二预设精度范围内(4、5、6、7、8)的各个精度,直至将计算所使用的精度提高至最高预设精度(即第一预设精度),或者直至召回的目标地理元素满足所述预设条件为止。在一个具体的实施例中,服务器还可以为终端提供基于从属关系的空间服务,如图4a所示,具体的空间服务提供方法可以包括以下步骤:步骤301、接收终端发送的第二查询请求,所述第二查询请求中包括第二位置信息。第二查询请求可以是请求查询包含某个兴趣点的目标地理元素,第二查询请求中包括该兴趣点的位置信息,即第二位置信息,该位置信息可以是由经纬度构成的坐标信息。步骤302、按照所述第一预设精度计算所述第二位置信息的哈希值。为保证召回的准确度,计算第二位置信息的哈希值时,可以直接采用较高的精度(即第一预设精度)进行计算,第二位置信息的哈希值的具体的计算过程,可参考前文的描述,此处不再赘述。步骤303、根据所述地理元素索引召回所在区块的哈希值中,包含所述第二位置信息的哈希值的目标地理元素。通常来说,兴趣点(poi)的哈希值只有一个,而面、线等地理元素的哈希值有多个,要查询包含兴趣点的面或线元素,则可以根据地理元素索引找出每个面或线元素所在的区块的哈希值集合,判断每个面或线元素所在的区块的哈希值集合中是否包含该兴趣点的哈希值,如果包含,则说明该兴趣点属于该线或面元素。以判断某兴趣点是否属于某个面元素为例,判断过程可如图4b所示,按照第一预设精度计算该兴趣点的哈希值,并找出该面元素所在区块的哈希值集合,判断该兴趣点的哈希值是否属于该面元素所在区块的哈希值集合,若属于,则认为该兴趣点在该面元素内。在一个具体的实施例中,召回结果可为图4c所示,例如召回某个兴趣点所在的线元素(海淀南路),以及召回另一兴趣点所在的面元素(中国技术交易大厦)。为了更好地实施以上方法,本发明实施例还提供一种空间服务提供装置,如图5所示,本实施例的装置包括:划分单元401,确定单元402,建立单元403及服务单元404,如下:划分单元401,用于将地图进行区块划分,并为划分得到的区块设置哈希值;确定单元402,用于在所述地图上确定地理元素所在的区块,并获取所述地理元素所在的区块的哈希值;建立单元403,用于利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引;服务单元404,用于基于建立的地理元素索引为终端提供空间服务。一实施例中,所述划分单元401具体用于,将所述地图均分成预设数量的一级区块,按照预设顺序对均分得到的每个一级区块进行数字编码,将每个一级区块的数字编码转换成对应的字符串,得到每个一级区块的哈希值;将每个一级区块均分成所述预设数量的二级区块,按照所述预设顺序对均分得到的每个二级区块进行数字编码,将每个二级区块的数字编码转换成对应的字符串,得到每个二级区块的哈希值;重复执行区块均分的步骤,直至将每个n-1级区块均分成所述预设数量的n级区块,按照所述预设顺序对均分得到的每个n级区块进行数字编码,将每个n级区块的数字编码转换成对应的字符串,得到每个n级区块的哈希值,每个n级区块的哈希值的精度为第一预设精度,所述第一预设精度的取值为n,n为大于等于1的正整数。一实施例中,所述确定单元402具体用于,在所述地图上确定所述地理元素所在的n级区块,并获取所述地理元素所在的n级区块的哈希值。一实施例中,如图6所示,所述建立单元403包括:合并子单元4031,用于将所述地理元素所在的n级区块的哈希值进行合并处理;建立子单元4032,用于利用合并处理之后的哈希值表示所述地理元素,建立所述地理元素索引。一实施例中,所述合并子单元4031具体用于,在所述地理元素所在的n级区块中,查找均分n-1级区块得到的所述预设数量的n级区块,利用所述n-1级区块的哈希值表示所述预设数量的n级区块的哈希值;在所述n-1级区块中,查找均分n-1级区块的上一级区块得到的所述预设数量的n-1级区块,利用所述n-1级区块的上一级区块的哈希值表示所述预设数量的n-1级区块的哈希值;重复执行区块查找步骤,直至当前级别的区块中,不存在均分当前级别的区块的上一级区块得到的所述预设数量的当前级别的区块。一实施例中,如图6所示,所述服务单元404包括:第一接收子单元4041,用于接收所述终端发送的第一查询请求,所述第一查询请求中包括第一位置信息;第一计算子单元4042,用于按照第二预设精度计算所述第一位置信息的哈希值,所述第二预设精度小于所述第一预设精度;查找子单元4043,用于根据所述地理元素索引及所述第一位置信息的哈希值,在所述地图上查找所述第一位置信息的哈希值对应的区块以及所述第一位置信息的哈希值对应的区块的相邻区块;第一召回子单元4044,用于召回所述第一位置信息的哈希值对应的区块内的目标地理元素,以及召回所述第一位置信息的哈希值对应的区块的相邻区块内的目标地理元素。一实施例中,所述第一计算子单元4042还用于,在召回的目标地理元素不满足预设条件时,在所述第一预设精度与所述第二预设精度的范围内选取其他精度,根据选取的所述其他精度重新计算所述第一位置信息的哈希值并召回目标地理元素,直至召回的目标地理元素满足所述预设条件。一实施例中,如图6所示,所述服务单元404包括:第二接收子单元4045,用于接收所述终端发送的第二查询请求,所述第二查询请求中包括第二位置信息;第二计算子单元4046,用于按照所述第一预设精度计算所述第二位置信息的哈希值;第二召回子单元4047,用于根据所述地理元素索引召回所在区块的哈希值中,包含所述第二位置信息的哈希值的目标地理元素。一实施例中,如图6所示,所述装置还包括:存储单元405,用于按照键值key-value存储方式存储所述地理元素索引,其中,所述key中存储所述地理元素所在的区块的哈希值,所述value中存储该区块中包含的地理元素信息。需要说明的是,上述实施例提供的空间服务提供装置在提供空间服务时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的空间服务提供装置与空间服务提供方法属于同一构思,其具体实现过程详见方法实施例,此处不再赘述。本实施例中,划分单元会将地图进行区块划分,并为划分得到的区块设置哈希值,然后确定单元在地图上确定地理元素所在的区块,建立单元利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引,即将线、面等地理元素转换表示为地图区块的哈希集合,相对于将线、面等地理元素转换表示为中心点,本发明实施例的表示方法更精确,服务单元基于建立的地理元素索引为终端提供空间服务,基于地理元素所在的区块的哈希值建立的地理元素索引,不仅可以提供基于位置关系的服务、还可以提供基于从属关系的服务,扩展了服务类型。相应的,本发明实施例还提供了一种服务器,该服务器中集成有本发明实施例提供的空间服务提供装置。如图7所示,其示出了本发明实施例所涉及的服务器的结构示意图,具体来讲:该服务器可以包括一个或者一个以上处理核心的处理器501、一个或一个以上计算机可读存储介质的存储器502、射频(radiofrequency,rf)电路503、电源504、输入单元505、以及显示单元506等部件。本领域技术人员可以理解,图7中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:处理器501是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器502内的软件程序和/或模块,以及调用存储在存储器502内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器501可包括一个或多个处理核心;优选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。存储器502可用于存储软件程序以及模块,处理器501通过运行存储在存储器502的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器502还可以包括存储器控制器,以提供处理器501对存储器502的访问。rf电路503可用于收发信息过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器501处理;另外,将涉及上行的数据发送给基站。通常,rf电路503包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(subscriberidentificationmodule,sim)卡、收发信机、耦合器、低噪声放大器(lna,lownoiseamplifier)、双工器等。此外,rf电路503还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystemofmobilecommunication,gsm)、通用分组无线服务(generalpacketradioservice,gprs)、码分多址(codedivisionmultipleaccess,cdma)、宽带码分多址(widebandcodedivisionmultipleaccess,wcdma)、长期演进(longtermevolution,lte)、电子邮件、短消息服务(shortmessagingservice,sms)等。服务器还包括给各个部件供电的电源504(比如电池),优选的,电源504可以通过电源管理系统与处理器501逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源504还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。该服务器还可包括输入单元505,该输入单元505可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元505可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器501,并能接收处理器501发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元505还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。该服务器还可包括显示单元506,该显示单元506可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元506可包括显示面板,可选的,可以采用液晶显示器(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图7中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。尽管未示出,服务器还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,服务器中的处理器501会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器502中,并由处理器501来运行存储在存储器502中的应用程序,从而实现各种功能,如下:将地图进行区块划分,并为划分得到的区块设置哈希值;在所述地图上确定地理元素所在的区块,并获取所述地理元素所在的区块的哈希值;利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引;基于建立的地理元素索引为终端提供空间服务。在一些实施例中,在将地图进行区块划分,并为划分得到的区块设置哈希值时,处理器501具体用于执行以下步骤:将所述地图均分成预设数量的一级区块,按照预设顺序对均分得到的每个一级区块进行数字编码,将每个一级区块的数字编码转换成对应的字符串,得到每个一级区块的哈希值;将每个一级区块均分成所述预设数量的二级区块,按照所述预设顺序对均分得到的每个二级区块进行数字编码,将每个二级区块的数字编码转换成对应的字符串,得到每个二级区块的哈希值;重复执行区块均分的步骤,直至将每个n-1级区块均分成所述预设数量的n级区块,按照所述预设顺序对均分得到的每个n级区块进行数字编码,将每个n级区块的数字编码转换成对应的字符串,得到每个n级区块的哈希值,每个n级区块的哈希值的精度为第一预设精度,所述第一预设精度的取值为n,n为大于等于1的正整数。在一些实施例中,在所述地图上确定地理元素所在的区块,并获取所述地理元素所在的区块的哈希值时,处理器501具体用于执行以下步骤:在所述地图上确定所述地理元素所在的n级区块,并获取所述地理元素所在的n级区块的哈希值。在一些实施例中,在利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引时,处理器501具体用于执行以下步骤:将所述地理元素所在的n级区块的哈希值进行合并处理;利用合并处理之后的哈希值表示所述地理元素,建立所述地理元素索引。在一些实施例中,在将所述地理元素所在的n级区块的哈希值进行合并处理时,处理器501具体用于执行以下步骤:在所述地理元素所在的n级区块中,查找均分n-1级区块得到的所述预设数量的n级区块,利用所述n-1级区块的哈希值表示所述预设数量的n级区块的哈希值;在所述n-1级区块中,查找均分n-1级区块的上一级区块得到的所述预设数量的n-1级区块,利用所述n-1级区块的上一级区块的哈希值表示所述预设数量的n-1级区块的哈希值;重复执行区块查找步骤,直至当前级别的区块中,不存在均分当前级别的区块的上一级区块得到的所述预设数量的当前级别的区块。在一些实施例中,在基于建立的地理元素索引为所述终端提供空间服务时,处理器501具体用于执行以下步骤:接收所述终端发送的第一查询请求,所述第一查询请求中包括第一位置信息;按照第二预设精度计算所述第一位置信息的哈希值,所述第二预设精度小于所述第一预设精度;根据所述地理元素索引及所述第一位置信息的哈希值,在所述地图上查找所述第一位置信息的哈希值对应的区块以及所述第一位置信息的哈希值对应的区块的相邻区块;召回所述第一位置信息的哈希值对应的区块内的目标地理元素,以及召回所述第一位置信息的哈希值对应的区块的相邻区块内的目标地理元素。在一些实施例中,处理器501还用于执行以下步骤:若召回的目标地理元素不满足预设条件,则在所述第一预设精度与所述第二预设精度的范围内选取其他精度,根据选取的所述其他精度重新计算所述第一位置信息的哈希值并召回目标地理元素,直至召回的目标地理元素满足所述预设条件。在一些实施例中,在基于建立的地理元素索引为所述终端提供空间服务时,处理器501具体用于执行以下步骤:接收所述终端发送的第二查询请求,所述第二查询请求中包括第二位置信息;按照所述第一预设精度计算所述第二位置信息的哈希值;根据所述地理元素索引召回所在区块的哈希值中,包含所述第二位置信息的哈希值的目标地理元素。在一些实施例中,处理器501还用于执行以下步骤:按照键值key-value存储方式存储所述地理元素索引,其中,所述key中存储所述地理元素所在的区块的哈希值,所述value中存储该区块中包含的地理元素信息。本实施例的服务器,会将地图进行区块划分,并为划分得到的区块设置哈希值,然后在地图上确定地理元素所在的区块,利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引,即将线、面等地理元素转换表示为地图区块的哈希集合,相对于将线、面等地理元素转换表示为中心点,本实施例的表示方法更精确,基于地理元素所在的区块的哈希值建立的地理元素索引,不仅可以提供基于位置关系的服务、还可以提供基于从属关系的服务,扩展了服务类型。本申请实施例还提供一种存储设备,所述存储设备存储有计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行上述任一实施例中的空间服务提供方法,比如:将地图进行区块划分,并为划分得到的区块设置哈希值;在所述地图上确定地理元素所在的区块,并获取所述地理元素所在的区块的哈希值;利用所述地理元素所在的区块的哈希值表示所述地理元素,建立地理元素索引;基于建立的地理元素索引为终端提供空间服务。在本申请实施例中,存储设备可以是磁碟、光盘、只读存储器(readonlymemory,rom)或者随机存取记忆体(randomaccessmemory,ram)等。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1