发明内容
有鉴于此,本说明书实施例提供了一种定位方法、系统及设备,用于解决现有技术中围栏定位不准的问题。
本说明书实施例采用下述技术方案:
本说明书实施例提供一种构建定位索引的方法,所述方法包括,确认第一地理哈希值长度的地理哈希矩形边界与围栏边界间的边界关系,以所述地理哈希矩形边界对应的地理哈希值为索引标识构建定位索引,其中,所述定位索引的索引内容包括围栏标识、边界关系描述,针对任意一组相对应的所述索引标识以及所述索引内容:
所述索引内容的围栏标识对应的围栏边界与所述索引标识对应的地理哈希矩形边界拥有重叠的地理位置区域;
所述索引内容的边界关系描述用于描述对应所述索引内容的围栏边界与对应所述索引标识的地理哈希矩形边界间的边界关系。
在本说明书一实施例中,所述边界关系描述包括边界关系类型,对应任一所述围栏标识,所述边界关系类型为围栏边界与地理哈希矩形边界相交、围栏边界包含地理哈希矩形边界、地理哈希矩形边界包含围栏边界中的一种。
在本说明书一实施例中,以第一地理哈希值长度的地理哈希值为索引标识构建定位索引,其中:
当所述索引内容中的围栏标识所对应的边界关系为围栏边界与地理哈希矩形边界相交时,所述索引内容的边界关系描述包括围栏边界与地理哈希矩形边界相交形成的新多边形的多边形描述信息;
和/或,
当所述索引内容中的围栏标识所对应的边界关系为地理哈希矩形边界包含围栏边界时,所述索引内容的边界关系描述包括所述围栏边界的多边形描述信息。
在本说明书一实施例中,在所述以第一地理哈希值长度的地理哈希值为索引标识构建定位索引的过程中,遍历所有的所述围栏边界,其中,将任一围栏边界记为第一围栏边界:
使用对应不同地理哈希长度的地理哈希矩形边界逼近所述第一围栏边界;
确认包含所述第一围栏边界的地理哈希矩形边界中地理哈希长度最小的地理哈希矩形边界,记为第一地理哈希矩形边界;
基于地理哈希算法拆分所述第一地理哈希矩形边界,获取多个子地理哈希矩形边界,所述子地理哈希矩形边界对应所述第一地理哈希值长度;
针对所述第一围栏边界以及每一个所述子地理哈希矩形边界,确认所述边界关系,为所述定位索引增添相应的记录。
在本说明书一实施例中,所述方法还包括,确定所述第一地理哈希长度,包括:
使用对应不同地理哈希长度的地理哈希矩形边界逼近样本围栏边界;
确认包含所述样本围栏边界的地理哈希矩形边界中地理哈希长度最小的地理哈希矩形边界,记为样本地理哈希矩形边界;
基于地理哈希算法逐级拆分所述样本地理哈希矩形边界,直到获取到的子样本地理哈希矩形边界的地理哈希长度满足定位精度和/或数据存储应用场景要求,以所述子样本地理哈希矩形边界的地理哈希长度为所述第一地理哈希长度。
在本说明书一实施例中,所述第一地理哈希长度取6。
本说明书实施例还提出了一种定位方法,所述方法包括:
调用根据本说明书实施例所述方法而生成的定位索引;
获取待定位经纬度对应的地理哈希值,其中,所述待定位经纬度对应的地理哈希值采用所述定位索引的地理哈希长度;
将所述待定位经纬度对应的地理哈希值与所述定位索引做匹配,获取对应的索引内容;
根据获取到的索引内容中的围栏标识以及边界关系描述生成定位结果。
在本说明书一实施例中,根据获取到的索引内容中的围栏标识以及边界关系描述生成定位结果,其中:
当所述获取到的索引内容中的边界关系描述的多边形描述信息为空时,判定所述待定位经纬度位于所述获取到的索引内容中的围栏标识所对应的围栏中;
和/或,
当所述获取到的索引内容中的边界关系描述的多边形描述信息不为空时,根据所述获取到的索引内容中的边界关系描述的多边形描述信息确认所述待定位经纬度是否位于所述获取到的索引内容中的围栏标识所对应的围栏中。
本说明书实施例还提出了一种构建定位索引的系统,所述系统包括:
边界关系确认模块,其用于确认第一地理哈希值长度的地理哈希矩形边界与围栏边界间的边界关系;
定位索引构建模块,其用于以所述地理哈希矩形边界对应的地理哈希值为索引标识构建定位索引,其中,所述定位索引的索引内容包括围栏标识、边界关系描述,针对任意一组相对应的所述索引标识以及所述索引内容:
所述索引内容的围栏标识对应的围栏边界与所述索引标识对应的地理哈希矩形边界拥有重叠的地理位置区域;
所述索引内容的边界关系描述用于描述对应所述索引内容的围栏边界与对应所述索引标识的地理哈希矩形边界间的边界关系。
本说明书实施例还提出了一种定位系统,所述系统包括:
定位索引调用模块,其用于调用根据本说明书实施例所述系统而生成的定位索引;
待定位经纬度确认模块,其用于获取待定位经纬度对应的地理哈希值,其中,所述待定位经纬度对应的地理哈希值采用所述定位索引的地理哈希长度;
检索模块,其用于将所述待定位经纬度对应的地理哈希值与所述定位索引做匹配,获取对应的索引内容;
定位结果生成模块,其用于根据获取到的索引内容中的围栏标识以及边界关系描述生成定位结果。
本说明书实施例还提出了一种用于在访问方设备端信息处理的设备,该设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备执行本说明书实施例所述系统所述的方法。
本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:根据本说明书实施例的方法,在定位索引中记录用于定位检索的地理哈希矩形边界与用于定位结果输出的围栏边界间的边界关系,从而改善围栏边界区域定位不准的问题;相较于现有技术,根据本说明书实施例的方法,可以在不重构围栏定位流程的基础上,大大提高围栏定位的准确程度。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
基于背景技术的描述,在基于围栏的定位方案中,由于围栏的划分具备很高的复杂度,因此最终导致很难精准确认待定位经纬度所对应的围栏,从而大大降低了定位结果的准确度。为了解决上述定位结果不准的问题,发明人首先分析产生该技术问题的根本技术原因。
在基于围栏的定位方案中,地理围栏,简称围栏,就是用一个虚拟的栅栏围出一个虚拟地理边界,也就是一块地图上的多边形区域,其数据格式为一连串边界的经纬度组合。而基于围栏的位置识别,即是识别出经纬度所在的地理围栏。
在常见的基于围栏的定位方案中,通常使用地理哈希值(Geohash字符串)作为检索项,通过对地理哈希值的检索,确认对应的地理围栏。具体的,用geohash对围栏区域进行划分,生成空间索引表(Geohash定位索引),在Geohash定位索引中,围栏区域基于Geohash进行划分,索引标识(rowkey)为Geohash字符串,索引内容为围栏标识。
在进行定位识别时,如图1所示:
S110,获取待定位经纬度;
S120,将待定位经纬度转化为地理哈希值(Geohash字符串);
S130,调用地理哈希值定位索引;
S140,将待定位经纬度转化为地理哈希值作为索引标识,在地理哈希值定位索引中进行检索,确认索引标识所对应的围栏标识;
S150,确认待定位经纬度对应的地理围栏。
在上述方案中,通过Geohash定位索引中保存的地理哈希值与地理围栏的对应关系来进行围栏定位。那么,Geohash定位索引中保存的地理哈希值与地理围栏的对应关系越准确,最终获得的定位结果的准确度也就越高。
Geohash编码,简称Geohash,是将二维的经纬度转换成字符串的一种算法,每一个字符串代表一个矩形区域,矩形区域内所有的经纬度坐标共享相同的Geohash字符串。也就是说,Geohash字符串实际对应的应该是一个矩形区域。然而,在实际应用场景中,地理围栏的实际区域往往并不是一个标准的Geohash矩形区域,而是一个与Geohash矩形区域长/宽不一致的矩形或者甚至是一个多边形。这就使得在Geohash定位索引中,作为索引标识的Geohash字符串所对应的矩形区域与其对应的索引内容(围栏)所对应的区域范围可能并不是完全对应的。即,geohash对应的是矩形区域,而围栏是不规则的多边形,用矩形区域去逼近不规则多边形,在多边形的边界处会存在错判,这必然增加了定位不准确的情况的发生几率。
针对上述问题,本说明书一实施例中,提出了一种构建定位索引的方法,根据本说明书实施例的方法,在定位索引中记录用于定位检索的地理哈希矩形边界与用于定位结果输出的围栏边界间的边界关系,从而改善围栏边界区域定位不准的问题;相较于现有技术,根据本说明书实施例的方法,可以在不重构围栏定位流程的基础上,大大提高围栏定位的准确程度。
以下结合附图,详细说明本说明书各实施例提供的技术方案。
在本说明书一实施例中,如图2所示,构建定位索引的方法包括:
S210,确认第一地理哈希值长度的地理哈希矩形边界与围栏边界间的边界关系;
S220,以地理哈希矩形边界对应的地理哈希值为索引标识构建定位索引。
在上述流程中,定位索引用于根据经纬度数据检索对应的围栏信息,该定位索引的索引内容包括围栏标识、边界关系描述。具体的,针对任意一组相对应的索引标识以及索引内容:
索引内容的围栏标识对应的围栏边界与索引标识对应的地理哈希矩形边界拥有重叠的地理位置区域;
索引内容的边界关系描述用于描述对应索引内容的围栏边界与对应索引标识的地理哈希矩形边界间的边界关系。
进一步的,在本说明书一实施例中,索引内容还包含围栏标识对应的围栏名称。
进一步的,在本说明书一实施例中,定位索引的存储介质使用Hbase数据库,以方便随着数据的增长来动态扩充数据库。
具体的,在本说明书一实施例中,首先索引构建模块对地理围栏数据进行加工,生成索引数据,其中索引rowkey是geohash,索引内容是本说明书实施例所述的信息,然后写入hbase数据库。
进一步的,基于本说明书实施例提出的构建定位索引的方法,本说明书实施例还提出了一种定位方法。如图3所示,在本说明书一实施例中,定位方法包括:
S310,调用根据本说明书实施例所述方法而生成的定位索引;
S320,获取待定位经纬度对应的地理哈希值,其中,待定位经纬度对应的地理哈希值采用定位索引的地理哈希长度;
S330,将待定位经纬度对应的地理哈希值与定位索引做匹配,获取对应的索引内容;
S340,根据获取到的索引内容中的围栏标识以及边界关系描述生成定位结果。
具体的,在本说明书一实施例中,当来一个经纬度查询请求时,位置识别先将经纬度转换成Geohash,然后查询数据库取出索引内容,解析出算法结果,从而得到准确对围栏信息。
进一步的,在实际的应用场景中,两个几何图形(几何图形1以及几何图形2)间的关系可以总结为以下几种情况:
1,几何图形1包含几何图形2;
2,几何图形1与几何图形2相交;
3,几何图形2包含几何图形1;
4,几何图形1与几何图形2相离。
基于上述分析,在本说明书一实施例中,将围栏边界与地理哈希矩形边界间的边界关系归纳为围栏边界与地理哈希矩形边界相交、围栏边界包含地理哈希矩形边界、地理哈希矩形边界包含围栏边界、地理哈希矩形边界与围栏边界相离四类。
例如,在一应用场景中,如图4所示,矩形网格为基于地理哈希值划分的地理哈希矩形区域,在图4所示的地图范围内,存在3个围栏(围栏a、b、c)。地理哈希矩形区域0的边界与围栏a、b的边界相交。地理哈希矩形区域1的边界被包含在围栏b的边界中。地理哈希矩形区域2的边界包含围栏c的边界。地理哈希矩形区域3的边界不包含任何围栏边界(相离)。
进一步的,在描述围栏边界与地理哈希矩形边界间边界关系的应用场景中,由于当围栏区域与地理哈希矩形区域相离时,则说明该围栏与该地理哈希值之间不存在关联,因此,在本说明书一实施例中,边界关系描述包括边界关系类型,对应任一围栏标识,边界关系类型为围栏边界与地理哈希矩形边界相交、围栏边界包含地理哈希矩形边界、地理哈希矩形边界包含围栏边界中的一种。
进一步的,考虑到在围栏边界包含地理哈希矩形边界的情况下,地理哈希值对应的经纬度必然在围栏范围内。因此,当索引内容中的边界关系类型为围栏边界包含地理哈希矩形边界时,不需要其他额外的描述信息就可以确认准确的定位结果(定位结果是当前索引内容中的围栏标识对应的围栏)。
但是,在地理哈希矩形边界包含围栏边界,或者,地理哈希矩形边界与围栏边界相交的情况下,地理哈希值对应的经纬度不是必然在围栏范围内。因此,在本说明书一实施例中,对于地理哈希矩形边界包含围栏边界,或者,地理哈希矩形边界与围栏边界相交的情况,在索引内容中的边界关系描述中加入辅助定位信息,从而使得定位时可以获得准确的定位结果。
具体的,在本说明书一实施例中,当边界关系描述的边界关系类型为围栏边界与地理哈希矩形边界相交时,边界关系描述还包括围栏边界与地理哈希矩形边界相交形成的新多边形的多边形描述信息。在针对某经纬度进行定位时,如果该经纬度匹配到了该索引内容,就可以进一步根据索引内容中的多边形描述信息来确认该经纬度是否在围栏边界范围内。
具体的,在本说明书一实施例中,当边界关系描述的边界关系类型为围栏边界与地理哈希矩形边界相交时,边界关系描述中的多边形描述信息为围栏边界与地理哈希矩形边界相交形成的新多边形的边界经纬度描述。具体的,在本说明书一实施例中,边界关系描述中的多边形描述信息为围栏边界与地理哈希矩形边界相交形成的新多边形的一连串边界经纬度组合。
具体的,在本说明书一实施例中,当边界关系描述的边界关系类型为地理哈希矩形边界包含围栏边界时,边界关系描述还包括围栏边界的多边形描述信息。在针对某经纬度进行定位时,如果该经纬度匹配到了该索引内容,就可以进一步根据索引内容中的多边形描述信息来确认该经纬度是否在围栏边界范围内。
具体的,在本说明书一实施例中,当边界关系描述的边界关系类型为地理哈希矩形边界包含围栏边界时,边界关系描述中的多边形描述信息为围栏边界经纬度描述。具体的,在本说明书一实施例中,当边界关系描述的边界关系类型为地理哈希矩形边界包含围栏边界时,索引内容中的多边形描述信息为围栏的一连串边界经纬度组合。
进一步的,考虑到实际应用场景中,一个地理哈希矩形边界可能与一个或多个围栏边界相交和/或包含一个或多个围栏边界。因此,在本说明书一实施例中,一个索引标识的索引内容可以包含一个或多个围栏标识。在索引内容中针对每个围栏标识标注对应的边界关系描述(边界关系类型以及对应的多边形描述信息)(针对边界关系类型为围栏边界包含地理哈希矩形边界的围栏标识,则不需要附加多边形描述信息)。
具体的,在本说明书一实施例中,针对如图4所示的应用场景,定位索引的部分结构如表1所示。
表1
在表1中,类型1表示索引标识的地理哈希值所对应的地理哈希矩形边界与围栏标识所对应的围栏边界相交;类型2表示围栏标识所对应的围栏边界包含索引标识的地理哈希值所对应的地理哈希矩形边界;类型3表示索引标识的地理哈希值所对应的地理哈希矩形边界包含围栏标识所对应的围栏边界。
进一步的,当索引标识的地理哈希值所对应的地理哈希矩形边界与围栏标识所对应的围栏边界相交,或者,索引标识的地理哈希值所对应的地理哈希矩形边界包含围栏标识所对应的围栏边界时,在定位过程中,实际上是根据多边形描述信息来进一步确认经纬度是否在围栏范围内的。并且,当多边形描述信息为空时就可以确认围栏标识所对应的围栏边界包含索引标识的地理哈希值所对应的地理哈希矩形边界,可以直接定位输出围栏信息。因此,在本说明书一实施例中,索引内容的边界关系描述不包括边界关系类型,仅包含多边形描述信息。
具体的,在本说明书一实施例中,针对如图4所示的应用场景,定位索引的部分结构如表2所示。
表2
对应的,在本说明书是一实施例中,在定位流程中,根据获取到的索引内容中的围栏标识以及边界关系描述生成定位结果,其中:
当获取到的索引内容中的边界关系描述的多边形描述信息为空时,判定待定位经纬度位于获取到的索引内容中的围栏标识所对应的围栏中;
和/或,
当获取到的索引内容中的边界关系描述的多边形描述信息不为空时,根据获取到的索引内容中的边界关系描述的多边形描述信息确认待定位经纬度是否位于获取到的索引内容中的围栏标识所对应的围栏中。
进一步的,在本说明书一实施例中,为了降低数据量,在定位索引中,与围栏无关的地理哈希值是不记录的。然而,在构建定位索引的过程中,为了确保与围栏有关的所有地理哈希值都被记录,就需要遍历目标区域所包含的所有的地理哈希值,判断每一个地理哈希值对应的地理哈希矩形边界是否与围栏边界有关,这就会带来巨量的数据处理压力。
针对上述问题,在本说明书一实施例中,在以第一地理哈希值长度的地理哈希值为索引标识构建定位索引的过程中,并不是遍历目标区域所包含的所有的地理哈希值,而是遍历目标区域所包含的所有围栏。具体的,在本说明书一实施例中,在以第一地理哈希值长度的地理哈希值为索引标识构建定位索引的过程中,遍历目标区域中所有的围栏边界,其中,将任一围栏边界记为第一围栏边界:
使用对应不同地理哈希长度的地理哈希矩形边界逼近第一围栏边界;
确认包含第一围栏边界的地理哈希矩形边界中地理哈希长度最小的地理哈希矩形边界,记为第一地理哈希矩形边界;
基于地理哈希算法拆分第一地理哈希矩形边界,获取多个子地理哈希矩形边界,所有的子地理哈希矩形边界均对应第一地理哈希值长度;
针对第一围栏边界以及每一个所述子地理哈希矩形边界,确认边界关系,为定位索引增添相应的记录。
具体的,在本说明书一实施例中,如图5所示:
S510,选取目标区域中的一个尚未被选取围栏边界;
S520,使用对应不同地理哈希长度的地理哈希矩形边界逼近步骤S510选取的围栏边界;
S530,确认包含围栏边界的地理哈希矩形边界中地理哈希长度最小的地理哈希矩形边界;
S540,基于地理哈希算法拆分步骤S540中确认的地理哈希矩形边界,获取多个子地理哈希矩形边界,所有的子地理哈希矩形边界均对应第一地理哈希值长度;
S550,针对步骤S510选取的围栏边界以及步骤S540获取的每一个子地理哈希矩形边界,确认边界关系,为定位索引增添相应的记录;
S560,判断目标区域中是否存在尚未选取的围栏边界;
当步骤S560判断为是时,返回步骤S S510;
当步骤S560判断为是时,定位索引构建完成。
具体的,在本说明书一实施例的应用场景中,构建定位索引的流程如下:
1,求目标围栏边界最小的外接地理哈希矩形边界,用长度为1的地理哈希矩形边界去逼近目标围栏边界,如果能覆盖,则加大geohash长度,直到找到目标围栏边界最小的外接地理哈希矩形边界,
2,当目标围栏边界最小的外接地理哈希矩形边界的geohash长度大于预设的geohash长度时,将目标围栏边界最小的外接地理哈希矩形边界拆分,得到32个子地理哈希矩形边界,确认得到的子地理哈希矩形边界的geohash长度是否为预设的geohash长度,如果不是,则继续拆分子地理哈希矩形边界,直到最终拆分出的子地理哈希矩形边界的geohash长度为预设的geohash长度。
3,对每一个子地理哈希矩形边界计算与围栏边界间的边界关系:
a)对一个子地理哈希矩形边界计算与围栏边界间的边界关系;
b)如果子地理哈希矩形边界与围栏边界相离,则回到a);
c)如果子地理哈希矩形边界与围栏边界相交,则索引内容是围栏id、围栏名称、相交得到的新多边形的边界信息、类型1;
d)如果围栏边界包含子地理哈希矩形边界,索引内容是围栏id、围栏名称、类型2;
e)如果子地理哈希矩形边界包含围栏边界,索引内容是围栏id、围栏名称、围栏边界信息、类型3。
4,将同样索引标识rowkey=geohash的索引内容合并成列表,写入hbase数据库。
具体的,在本说明书一实施例的应用场景中,定位流程如下:
1)将经纬度转换成geohash,长度与索引中的geohash一致
2)查询hbase数据库;
3)如果查询结果为空,则说明没有命中围栏,返回空结果;
4)如果查询结果非空,则一次判断索引内容中的边界关系字段;
a)如果是类型1,说明多边形与geohash相交,根据相交得到的新多边形的边界信息计算经纬度与相交得到的新多边形的关系,即可准确识别出结果;
b)如果是类型2,说明围栏边界包含矩形边界,直接返回围栏名称/围栏标识;
c)如果是类型3,说明矩形边界包含围栏边界,则根据围栏边界信息计算经纬度与围栏边界间的关系。
进一步的,在实际应用场景中,Geohash算法不同的编码长度(地理哈希长度)代表不同的误差,编码长度越长则误差越小,但是,随着编码长度的增加,定位索引所占用的索引存储空间也就越大。针对上述情况,在本说明书一实施例中,根据具体的定位精度和/或存储需求来确定定位索引的地理哈希长度(第一地理哈希长度)。
具体的,在本说明书一实施例中,构建定位索引的方法还包括,确定定位索引的地理哈希长度(第一地理哈希长度)。如图6所示,确定第一地理哈希长度的流程包括:
S610,使用对应不同地理哈希长度的地理哈希矩形边界逼近样本围栏边界;
S620,确认包含样本围栏边界的地理哈希矩形边界中地理哈希长度最小的地理哈希矩形边界,记为样本地理哈希矩形边界;
S630,基于地理哈希算法逐级拆分样本地理哈希矩形边界,直到获取到的子样本地理哈希矩形边界的地理哈希长度满足定位精度和/或数据存储应用场景要求;
S640,以最终获取的子样本地理哈希矩形边界的地理哈希长度为第一地理哈希长度。
具体的,在本说明书一实施例中,在基于地理哈希算法逐级拆分样本地理哈希矩形边界的过程中,每级将上一级的地理哈希矩形边界拆分为32个地理哈希矩形边界。
具体的,在本说明书一实施例中,样本围栏边界可以近似描述目标区域中的所有围栏边界的共性特征。具体的,在本说明书一实施例中,从目标区域中的所有围栏边界中选取的最有代表性的围栏边界作为样本围栏边界。
进一步的,从目标区域中的所有围栏边界中选取多个围栏边界作为样本围栏边界。分别针对每个样本围栏边界确定第一地理哈希长度。最后综合获取到的所有的第一地理哈希长度,最终确定定位索引的地理哈希长度。
具体的,在本说明书一实施例中,根据实验参数确定定位索引的地理哈希长度(第一地理哈希长度),实验中地理哈希长度取值范围是[3,8],取值越大索引存储量越大。在不降低准确率的情况下减少索引存储量,验证不同取值的准确率以及索引存储量效果从而最终确定效果最佳的地理哈希长度(第一地理哈希长度)。具体的,在本说明书一实施例中,定位索引的地理哈希长度(第一地理哈希长度)取6。
进一步的,基于本说明书实施例的方法,本说明书实施例还提出了一种构建定位索引的系统。如图7所示,在本说明书一实施例中,构建定位索引的系统包括:
边界关系确认模块710,其用于确认第一地理哈希值长度的地理哈希矩形边界与围栏边界间的边界关系;
定位索引构建模块720,其用于以地理哈希矩形边界对应的地理哈希值为索引标识构建定位索引,其中,定位索引的索引内容包括围栏标识、边界关系描述,针对任意一组相对应的索引标识以及索引内容:
索引内容的围栏标识对应的围栏边界与索引标识对应的地理哈希矩形边界拥有重叠的地理位置区域;
索引内容的边界关系描述用于描述对应索引内容的围栏边界与对应索引标识的地理哈希矩形边界间的边界关系。
进一步的,基于本说明书实施例的方法,本说明书实施例还提出了一种定位系统。如图8所示,在本说明书一实施例中,定位系统包括:
定位索引调用模块810,其用于调用根据本说明书实施例所述系统而生成的定位索引;
待定位经纬度确认模块820,其用于获取待定位经纬度对应的地理哈希值,其中,待定位经纬度对应的地理哈希值采用定位索引的地理哈希长度;
检索模块830,其用于将待定位经纬度对应的地理哈希值与定位索引做匹配,获取对应的索引内容;
定位结果生成模块840,其用于根据获取到的索引内容中的围栏标识以及边界关系描述生成定位结果。
进一步的,基于本发明的方法,本发明还提出了一种用于在访问方设备端信息处理的设备,该设备包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该设备执行本发明所述的方法。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由访问方对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。