[发明专利]一种基于Geo-BTree的范围查询方法及装置有效
申请号: | 201710843972.0 | 申请日: | 2017-09-19 |
公开(公告)号: | CN107766433B | 公开(公告)日: | 2021-05-14 |
发明(设计)人: | 沈兵林;贾连印;丁家满;游进国;李晓武;左喻灏;胡俊涛;雷妍 | 申请(专利权)人: | 昆明理工大学 |
主分类号: | G06F16/22 | 分类号: | G06F16/22 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 650093 云*** | 国省代码: | 云南;53 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 geo btree 范围 查询 方法 装置 | ||
1.一种基于Geo-BTree的范围查询方法,其特征在于:包括:
数据预处理步骤,将数据集中所有位置点编码成长度为n的字符串string,根据字符串按字典序对数据集中的位置点排序并编号ID;
空间索引建立步骤,根据排序后的字符串构建B-Tree索引结构;
范围查询步骤,以检索B-Tree索引结构返回的ID为起始点双向搜索获取查询域内的ID,经过滤得到ID候选集,并对候选集中ID所对应的位置点验证返回查询范围内的位置点;
所述空间索引建立步骤,具体为:
步骤210:根据字符串构建B-Tree索引结构,每个结点至少存储1个string,ID;
所述范围查询步骤,具体包括如下步骤:
步骤310:给定查询位置点q和查询距离范围d,根据geohash精度表选定与d相对应的geohash编码长度p,通过geohash算法将位置点q编码为p位长度的字符串qs,获取字符串qs周围8个区域的geohash编码,并将字符串qs及其周围8个区域的geohash编码分别作为查询域,共9个查询域;其中,p对应的距离误差不小于d且为最小值,每一个geohash编码表示一个区域;
步骤320:根据检索B-Tree索引结构返回的ID,在记录集中以此ID为起始点双向搜索至不满足查询条件,返回满足查询条件的ID,为一个查询域内的ID;重复以上操作至获取9个查询域内的ID;其中,每一行数据称为一条记录,则由这些数据组成的数据集称为记录集,记录由ID、纬度、经度、字符串组成;查询条件指记录集中字符串的前p位与查询域的geohash编码相同;
步骤330:根据查询位置点q和查询距离范围d分别确定纬度范围与经度范围,通过经纬度范围对9个查询域内的ID进行筛选,最终得到ID候选集;
步骤340:计算候选集中ID对应的位置点到q的距离dq:若dq≤d,则返回该位置点,否则,不返回。
2.根据权利要求1所述的基于Geo-BTree的范围查询方法,其特征在于:所述数据预处理步骤,具体包括如下步骤:
步骤110:给定一个由一系列位置点构成的数据集D,通过geohash算法将D中的位置点编码成长度为n的字符串string;其中,位置点由纬度、经度数据构成;
步骤120:根据字符串按字典序对数据集中的位置点排序并编号,该编号即为对应的位置点ID,每一行数据称为一条记录,则由这些数据组成的数据集称为记录集;其中,记录由ID、纬度、经度、字符串组成。
3.根据权利要求2所述的基于Geo-BTree的范围查询方法,其特征在于:所述步骤110,包括下列步骤111、112:
步骤111:根据geohash精度表确定geohash编码长度n;
步骤112:通过geohash算法将所有位置点编码成长度为n的字符串。
4.根据权利要求1或2所述的基于Geo-BTree的范围查询方法,其特征在于:所述通过geohash算法将位置点编码成字符串具体为:首先,将经纬度范围看作二维平面坐标系;然后,采用二分法对经度/纬度进行划分,根据位置点经度/纬度在划分结果中的位置分别赋值0或1,直到划分次数满足对应的经/纬度位串的位数;之后,通过位交错方法合并经度位串与纬度位串;最后,通过Base32编码将经纬度位串编码为相应长度的字符串。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于昆明理工大学,未经昆明理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710843972.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:齿轮室(S系列)
- 下一篇:燃料电池车用燃料电池发动机