[发明专利]一种地理编码方法、位置查询系统及方法有效
申请号: | 201210130908.5 | 申请日: | 2012-05-01 |
公开(公告)号: | CN103383682B | 公开(公告)日: | 2017-12-26 |
发明(设计)人: | 刘龙 | 申请(专利权)人: | 刘龙 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 200011 上海市黄*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 地理 编码 方法 位置 查询 系统 | ||
技术领域
本发明涉及位置服务领域,特别地涉及一种地理编码方法、位置查询系统及方法。
背景技术
位置服务(Location Based Services,LBS)指的是通过移动终端、卫星和移动网络的配合,确定用户的实际地理位置,从而为用户提供与位置相关的服务信息。地理编码(Geo-coding)又称地址匹配,是为识别点、线、面的位置和属性而设置的编码,它将全部实体按照预先拟定的分类系统,选择最适宜的量化方法,按实体的属性特征和集合坐标的数据结构记录在计算机的储存设备上。在位置服务中,地理编码的应用非常广泛,可用于空间索引、可进行查询排序统计、可作为URLs、可在地图中显示、还可识别信息中所包含的模式。目前常用的GIS软件和空间数据库都具备地理编码功能,例如,ArcGIS的Geocoding和MapInfo的MapMarker等。
geohash是一种地理编码,它把二维的经纬度编码成一维的字符串。其思想为先将地球看成一个二维平面,将二维平面坐标均分为4格,按照顺序进行编号,之后再对每个子格以同样的方式进行划分,得到另一编号,一直按照这个规则划分下去,最终编号越来越多,而子格越来越小,直到能表达坐标所需要的精度为止。而在划分之中得到的每个编号对应一维坐标之中的一段,这些编号最后可以编码成一个字符串。例如,上海新天地(31.21980 121.47516)的编码是wtw3s5rs82。geohash有以下几个特点:首先,geohash用一个字符串表示经度和纬度两个坐标,只需在一列上应用索引即可。其次,geohash表示的并不是一个点,而是一个矩形区域。例如编码wtw3s5rs82s,它表示的是一个矩形区域。第三,编码的前缀可以表示更大的区域。例如编码wtw3s5rs82,它的前缀wtw3s5rs8表示包含编码wtw3s5rs82在内的更大范围。NoSQL数据库MongoDB利用geohash进行地理位置索引,这也是全球流行的LBS服务Foursquare选择MongoDB的原因之一。
但是,geohash也存在一些问题和限制:
在位置服务中,附近位置的查询往往对精确度有要求,但要求不严格,例如,搜索附近200米内的目标,搜到的目标实际距离为150米或220米对用户来说并没有多大区别,搜到的目标数多几个或少几个对用户来说也没多大问题,因此大多采用近似查询。由于geohash的网格是4分的,各次划分间子格的边长呈2倍关系,跨度很大(例如,纬度第12~16次划分,子格边长分别为0.02197、0.01099、0.00549、0.00275、0.00137、0.00069度,这里保留5位小数),虽然利用前缀匹配可以进行附近位置的近似查询,但却无法直接实现指定范围(例如,100米内、200米内、800米内,近似10000米/度)的近似查询。目前的解决方法是先指定一个深度,然后将指定范围所覆盖的所有子格全部找出来,再逐个在这些子格内查找,但这增加了近似查询的复杂性;深度越深,查询越精确,查询的复杂性也越高。
根据geohash,赤道和本初子午线两侧的位置由于从一开始就处于不同的子格,因此即使两个位置很近,编码及前缀也完全不同,利用前缀匹配进行附近位置的近似查询无法查到。同样是因为划分问题,处于网格边界两侧的位置,即使两个位置很近,编码也不同,利用前缀匹配进行附近位置的近似查询不一定查到。目前的解决方法是对当前子格周边8个子格都进行计算,但这增加了近似查询的复杂性。
发明内容
有鉴于此,本发明的目的是提供一种地理编码方法和采用该地理编码方法的位置查询系统和方法,其可以方便快捷地实现任意指定位置的任意指定范围和附近位置的近似查询,并改善赤道/本初子午线问题、边界问题。
为达到上述目的,本发明采用如下的技术方案:
一种地理编码方法,所述方法包括:
a.确定地理位置;
b.确定第i 编码精度;
c.进行第i种划分,将地球表面划分成多个子区域,并进行编号,对每个子区域继续划分编号,直至划分出的每个子区域与第i编码精度相关;
d.获取指定地理位置落入的相应子区域的编号并判断是否落在相应子区域的边界区域,编码得到一维的第i地理编码和第i边界标识;
b~d重复N次;
e.组合所述N个地理编码和边界标识;
其中,N为大于零的整数,i为1~N的整数。
作为本发明的进一步改进,所述N种划分方式为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于刘龙,未经刘龙许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210130908.5/2.html,转载请声明来源钻瓜专利网。