【GIS新探索】GeoHash原理和编解码实现

  • 时间:
  • 浏览:0
  • 来源:大发五分时时彩—大发分分时时彩

        答案二:采用GIS二次开发组件,调用GIS接口查询该点付近5KM范围内点数据,你什儿 做法也越来越 疑问,我着实我不清楚GIS组件具体实现的方案是哪些,假若我我着实性能应该比方案一要差点,愿因着很简单GIS组件都非常的庞大和繁杂(以AE机会ArcGIS JS API为例)。

        就像上边这张图,四个 多多多坐标点,能不需要 当做四个 多多多小格子,而格子的标注只是该坐标点geohash值,当然格子越小精度越高,你什儿 看实际应用吧。

        geohash基本原理是将地球理解为四个 多多多二维平面,将平面递归分解成更小的子块,每个子块在一定经纬度范围内拥有相同的编码。不好理解,没关系,我来找个图。

        下图是某年参加ArcSummit会议滴滴某位技术大咖分享的滴滴实物使用geohash快速查询付近车辆信息的PPT截图。PPT下载

        举个栗子:我有1W+个经纬度坐标点,我现在还要查询其中四个 多多多点付近5KM范围内哪些点,能不需要 为什么在么在会么会做?

        答案一:以该点为圆心,半径5KM做圆,循环这1W+个点与圆心的直线距离,判断与否 小于5KM。你什儿 做法我我着实是非常常用也非常高效的。

        机会是手动取点坐标有一定误差,不过不影响结果演示。这之前 让当他们再回来结速那个疑问,我有1KW+个点,还要找到某点5KM范围内的数据,我就要把哪些坐标删剪转为第5级别的geohash值,假若SQL查询等于你什儿 点geohash值的所有数据即可。所以geohash适合于快速查询且对绝对精度要求不高的业务场景。

        以上的答案我都越来越 测试过,不过设想机会我把数据量扩大到5000W+个坐标点呢?循环计算的计算量可想而知,机会再要求点时效性,那就为难了。你什儿 之前 让当他们来谈谈geohash,还是举个栗子,我选四个 多多多点,A B C D,每个点之间的距离都约5KM,如下表。

        看不懂没关系,让当他们再来看一张图。

        现在让当他们来说说为哪些要用geohash,普通的经纬度坐标也有挺好的么?

具体代码麻烦移步当事人博客:http://www.88gis.cn/web/pages/blog/blogInfo.html?id=fd587a3e-f7df-41c8-85003-8f4a298e500c4

        这张图说明哪些呢,让当他们来对应看一下两张表的“geohash长度”,拿5级别为例,看KM误差,意思是在5级别机会geohash相同,说明四个 多多多点的距离误差在2.4*2=4.8KM左右(+-算左右两次)。再看看表中A和B的geohash是一样的,说明A和B距离在5KM范围内,而A与C、D也有在5KM范围内。不信,让当他们来看看地图。