[发明专利]一种地理位置距离批量计算方法及装置有效
申请号: | 201610721493.7 | 申请日: | 2016-08-24 |
公开(公告)号: | CN106886674B | 公开(公告)日: | 2019-07-23 |
发明(设计)人: | 张依娜 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F17/10 | 分类号: | G06F17/10 |
代理公司: | 北京博思佳知识产权代理有限公司 11415 | 代理人: | 陈蕾 |
地址: | 英属开曼群岛大开*** | 国省代码: | 开曼群岛;KY |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 地理位置 距离 批量 计算方法 装置 | ||
本申请公开了一种地理位置距离批量计算方法及装置。一种地理位置距离批量计算方法包括:对于给定的第一位置点集合A以及第二位置点集合B,分别获得集合A与集合B中位置点的geohash编码;针对所获得的任一种geohash编码i,确定该编码所对应的集合A中位置点所构成的子集Ai,以及确定该编码所对应的集合B中位置点所构成的子集Bi;针对所获得的任一种geohash编码i,计算Ai×Bi中每个元素所对应的位置点对的距离。本申请所提供的技术方案,能够减少不必要的位置点对距离计算,提升处理速度,而且可以有效适用于分布式处理环境。
技术领域
本申请涉及LBS技术领域,尤其涉及一种地理位置距离批量计算方法及装置。
背景技术
在LBS(Location Based Service,基于位置的服务)相关技术中,一种常见的需求是:给定多个地理位置点,批量计算其中任意两个位置点之间的距离,以便基于计算结果提供进一步的服务。例如,已知商家的位置点集合A、以及普通消费者用户的位置点集合B,需要计算出任意“商家-用户”之间的距离,然后根据计算结果进行排序、过滤,向用户进行“附近商家”信息的推送。
为了实现上述需求,现有技术的实现方案是,计算集合A和集合B的笛卡尔积(表示为A×B),A×B中的每一个元素对应一组“商家-用户”对,然后根据商家和用户的位置坐标分别计算出每组“商家-用户”对所对应的距离。这种方式在理论上能够计算出任意位置点对之间的距离,然而在实际应用中,如果A和B本身所包含的数据量很大,那么进行笛卡尔积运算将会消耗大量的资源(例如CPU、内存等),当数据量级别达到一定程度时(例如千万量级、甚至上亿量级),可能连集群运算方案都难以实现高效处理。
发明内容
针对上述技术问题,本申请提供一种地理位置距离批量计算方法及装置,技术方案如下:
一种地理位置距离批量计算方法,用于计算分别取自两个位置点集合的两点间距离,该方法包括:
对于给定的第一位置点集合A以及第二位置点集合B,分别获得集合A与集合B中位置点的geohash编码;
针对所获得的任一种geohash编码i,确定该编码所对应的集合A中位置点所构成的子集Ai,以及确定该编码所对应的集合B中位置点所构成的子集Bi,其中i=1、2、3…N,N为所获得的geohash编码的种类数;
针对所获得的任一种geohash编码i,计算Ai×Bi中每个元素所对应的位置点对的距离,其中Ai×Bi表示Ai和Bi的笛卡尔积。
一种地理位置距离批量计算装置,用于计算分别取自两个位置点集合的两点间距离,该装置包括:
编码获得模块,用于对于给定的第一位置点集合A以及第二位置点集合B,分别获得集合A与集合B中位置点的geohash编码;
子集确定模块,用于针对所获得的任一种geohash编码i,确定该编码所对应的集合A中位置点所构成的子集Ai,以及确定该编码所对应的集合B中位置点所构成的子集Bi,其中i=1、2、3…N,N为所获得的geohash编码的种类数;
距离计算模块,用于针对所获得的任一种geohash编码i,计算Ai×Bi中每个元素所对应的位置点对的距离,其中Ai×Bi表示Ai和Bi的笛卡尔积。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610721493.7/2.html,转载请声明来源钻瓜专利网。