[发明专利]一种基于地理位置的搜索方法有效
申请号: | 201710312262.5 | 申请日: | 2017-05-05 |
公开(公告)号: | CN107273414B | 公开(公告)日: | 2019-01-22 |
发明(设计)人: | 方清 | 申请(专利权)人: | 广州恒巨信息科技有限公司 |
主分类号: | G06F16/9537 | 分类号: | G06F16/9537;G06F16/909 |
代理公司: | 广州嘉权专利商标事务所有限公司 44205 | 代理人: | 胡辉 |
地址: | 510630 广东省广州市天河*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 地理位置 搜索 方法 | ||
1.一种基于地理位置的搜索方法,其特征在于,包括数据索引建立步骤和数据检索步骤;
所述数据索引建立步骤具体包括:
采集地理位置数据;
对平面地图按照距离进行分层网格化处理;
将采集的地理位置数据归属到对应的分层网格中;
对分层网格化后的地理位置数据建立索引;
所述数据检索步骤具体包括:
判断搜索范围所属的层级网格;
根据搜索范围所属的层级网格提取对应的地理位置数据,并在提取地理位置数据的过程中过滤不在搜索范围内的地理位置数据;
所述的对平面地图按照距离进行分层网格化处理,这一步骤具体包括:
按照距离对平面地图进行网格化分层,得到分层网格;
对得到的分层网格进行编码,得到网格编码;
所述网格化分层处理中的分层公式为:
Grid(k,n)=d*10k*(n+1);
Grid(k,n)表示对应分层的网格尺寸,d表示最小一级的网格边长基数;k和n表示网格边长步进大小;
所述的判断搜索范围所属的层级网格,这一步骤具体为:
通过搜索范围的半径来计算所属的层级网格,其具体计算公式为:
k=floor(log(r/d));
n=floor(r/(d*10k));
其中,d表示最小一级的网格边长基数,r表示搜索范围的半径,k和n表示网格边长步进大小。
2.根据权利要求1所述的一种基于地理位置的搜索方法,其特征在于:所述的将采集的地理位置数据归属到对应的分层网格中,这一步骤具体为:
根据采集到地理位置数据的经纬度,记录地理位置数据中每个数据点在每个层所属的网格编码。
3.根据权利要求1所述的一种基于地理位置的搜索方法,其特征在于:所述的对分层网格化后的地理位置数据建立索引,这一步骤具体为:
利用全文检索引擎技术,针对地理位置数据中的数据点的网格编码和所有归属分层网格编码建立索引。
4.根据权利要求1所述的一种基于地理位置的搜索方法,其特征在于:所述的根据搜索范围所属的层级网格提取对应的地理位置数据,这一步骤具体包括:
判断搜索范围的中心点所属的网格编码;
通过搜索范围的半径,获取搜索范围内的所有网格编码;
根据获取的网格编码,提取归属于这些网格编码中的数据项。
5.根据权利要求4所述的一种基于地理位置的搜索方法,其特征在于:所述的中心点所属的网格编码的网格纵横编号的计算公式为:
x=floor((lng-lng0)/[d*10k*(n+1)]);
y=floor((lat-lat0)/[d*10k*(n+1)]);
其中,d表示最小一级的网格边长基数;k和n表示网格边长步进大小,所属网格为T[kn]X[x]Y[y],平面地图的左上角原点坐标为(lng0,lat0),搜索范围的中心点坐标为(lng,lat)。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州恒巨信息科技有限公司,未经广州恒巨信息科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710312262.5/1.html,转载请声明来源钻瓜专利网。