基于哈希区域映射的时空距离计算系统及方法与流程

文档序号:12550303阅读:435来源:国知局
基于哈希区域映射的时空距离计算系统及方法与流程

本发明涉及一种时空距离计算系统及方法,特别是涉及一种基于哈希区域映射的时空距离计算系统及方法。



背景技术:

现有的利用地理位置信息进行空间分析的系统中,常常会遇到求取某一连通域内两点间最短路径和相应的距离这类问题,通常上使用的欧氏距离对此有较大的局限性,其原因在于定义区域中两点之间的距离时,只考虑了两点之间的抽象距离;现有的散列存储算法效率较低、硬件资源消耗较高,已无法满足大数据下海量的数据的存储和计算。



技术实现要素:

本发明所要解决的技术问题是提供一种基于哈希区域映射的时空距离计算系统及方法,其能够采用快速HASH算法,提高测地距离的准确度,高效低耗。

本发明是通过下述技术方案来解决上述技术问题的:一种基于哈希区域映射的时空距离计算系统,其包括地理位置数据库模块、网格划分器、网格距离计算引擎模块、快速HASH计算引擎模块、网格定位器、查询引擎模块、点与点的测地距离模块、分布式缓存模块,网格划分器、网格定位器都与地理位置数据库模块相连,网格距离计算引擎模块位于网格划分器和快速HASH计算引擎模块之间,快速HASH计算引擎模块与分布式缓存模块相连,分布式缓存模块、点与点的测地距离模块都与查询引擎模块相连,查询引擎模块与网格定位器相连。

优选地,所述网格划分器用网格表达地理位置动态时空变化的规律,根据经纬度或坐标位置以及海拔信息,将规划区域划分为更粗粒度的网格,并赋予唯一的网格编号以用于后续的计算。

优选地,所述网格距离计算引擎模块是针对非障碍物的网格,计算两两网格之间的测地距离;网格距离计算引擎模块的输入为成对的网格经纬度和海拔高度,输出为两个网格间的实际测地距离。

优选地,所述快速HASH计算引擎模块采用HighwayHash算法。

优选地,所述HighwayHash算法利用CPU的AVX-2、SIMD指令每次处理32字节数据,根据输入的256位秘钥和变长参数计算出64-256位的哈希值,以网格ID为Key,将两两网格距离快速散列存储到相应存储介质中,以便于快速查询。

优选地,所述网格定位器是根据地理位置的经纬度或者坐标位置,将其定位至网格划分器划分好的相应网格,也根据输入的经纬度或坐标位置计算出对应的网格。

优选地,所述查询引擎模块是根据网格定位器的计算结果,按照网格ID,通过快速HASH找出要计算的点的测地距离作为最终距离。

本发明还提供一种基于哈希区域映射的时空距离计算方法,其包括以下步骤:

步骤一,使用网格规划区域内的点,通过网格划分器将规划区划分为多个网格,根据区域性质和用户密度适当调整,网格大小在0.2-2平方公里之间,以网格为单位,用于描述或表达其中的属性分类、统计分级以及变化参数;

步骤二,针对非障碍物网格,计算两两之间的测地距离;通过网格距离计算引擎计算非障碍物的网格之间的测地距离;

步骤三,以网格位置作为key,通过快速HASH存入内存或硬盘桶中;通过快速HASH计算引擎,将步骤二的计算结果存储到存储介质中;

步骤四,计算某两个点距离时,通过网格计算对应的点的网格位置;根据位置的经纬度,通过网格定位器,将其定位到对应的网格位置;

步骤五,根据网格位置,通过快速HASH找出要计算的点的测地距离作为最终距离;根据两点的网格位置,通过查询引擎查询出步骤二中的相对应网格间的测地距离作为最终结果。

本发明的积极进步效果在于:本发明能够采用快速HASH算法,提高测地距离的准确度,高效低耗。

附图说明

图1为本发明的结构示意图。

图2为本发明的流程图。

具体实施方式

下面结合附图给出本发明较佳实施例,以详细说明本发明的技术方案。

如图1所示,本发明基于哈希区域映射的时空距离计算系统包括地理位置数据库模块、网格划分器、网格距离计算引擎模块、快速HASH(哈希)计算引擎模块、网格定位器、查询引擎模块、点与点的测地距离模块、分布式缓存模块,网格划分器、网格定位器都与地理位置数据库模块相连,网格距离计算引擎模块位于网格划分器和快速HASH计算引擎模块之间,快速HASH计算引擎模块与分布式缓存模块相连,分布式缓存模块、点与点的测地距离模块都与查询引擎模块相连,查询引擎模块与网格定位器相连。

所述网格划分器用网格表达地理位置动态时空变化的规律,即用于描述或表达地理位置的属性分类、统计分级以及变化参数等;根据经纬度或坐标位置以及海拔信息,将规划区域划分为更粗粒度的网格,并赋予唯一的网格编号以用于后续的计算;根据市政道路、河流、铁路等作为边界线,将住宅小区、校园、城中村以及商业圈等将规划的区域划分成网格。

所述网格距离计算引擎模块是针对非障碍物的网格,计算两两网格之间的测地距离;网格距离计算引擎模块的输入为成对的网格经纬度(或坐标位置)和海拔高度,输出为两个网格间的实际测地距离。

所述快速HASH计算引擎模块采用HighwayHash(高效哈希)算法,其特点为高吞吐量、低硬件消耗。

所述HighwayHash算法利用CPU(Central Processing Unit,中央处理器)的AVX-2(指令集)、SIMD(Single Instruction Multiple Data,单指令多数据流)指令每次处理32字节(Byte)数据,根据输入的256位秘钥和变长参数计算出64-256位的哈希值,以网格ID(identification,身份证)为Key(钥匙),将两两网格距离快速散列存储到相应存储介质中(如Reids(数据库)),以便于快速查询。

所述网格定位器是根据地理位置的经纬度或者坐标位置,将其定位至网格划分器划分好的相应网格,也根据输入的经纬度或坐标位置计算出对应的网格。

所述查询引擎模块是根据网格定位器的计算结果,按照网格ID,通过快速HASH找出要计算的点的测地距离作为最终距离。

如图2所示,本发明基于哈希区域映射的时空距离计算方法包括以下步骤:

步骤一,使用网格规划区域内的点,通过网格划分器将规划区划分为多个网格(赋予唯一网格编号),网格以市政道路、河流、铁路等作为边界围成独立区域,住宅小区、大学校园、居委会、城中村等可单独划为一个网格,可根据区域性质和用户密度适当调整,网格大小在0.2-2平方公里之间,以网格为单位,用于描述或表达其中的属性分类、统计分级以及变化参数等,即在地图上表达动态时空变化的规律;

步骤二,针对非障碍物网格,计算两两之间的测地距离;通过网格距离计算引擎计算非障碍物的网格之间的测地距离;

步骤三,以网格位置作为key,通过快速HASH存入内存或硬盘桶中;通过快速HASH计算引擎,将步骤二的计算结果存储到存储介质(建议使用分布式缓存,例如Redis)中;

步骤四,计算某两个点距离时,通过网格计算对应的点的网格位置;根据位置的经纬度,通过网格定位器,将其定位到对应的网格位置;

步骤五,根据网格位置,通过快速HASH找出要计算的点的测地距离作为最终距离;根据两点的网格位置,通过查询引擎查询出步骤二中的相对应网格间的测地距离作为最终结果。

以上所述的具体实施例,对本发明的解决的技术问题、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1