沧州三亚菏泽经济预测自然
投稿投诉
自然科学
知识物理
化学生物
地理解释
预测理解
本质社会
人类现象
行为研究
经济政治
心理结构
关系指导
人文遗产
菏泽德阳
山西湖州
宝鸡上海
茂名内江
三亚信阳
长春北海
西安安徽
黄石烟台
沧州湛江
肇庆鹤壁
六安韶关
成都钦州

想开发一个附近的人功能?你不得不知的Geohash算法

2月10日 枯心人投稿
  随着移动互联网的发展,很多基于地理位置信息的服务也越来越流行。比如说我们平常经常使用的查找附近的人,或者是附近的餐馆,共享单车等等。
  那么,大家有没有想过,这个查找功能是如何实现的吗?作为受过高等教育的人,大家肯定立即就想到了可以通过经纬度进行计算。具体算法类似于这样:
  地球近似于一个球体,地球赤道周长约40075。04公里,半径约为6371公里,因此,可以很容易地用立体几何的方法求出其距离,例如说最常见的大圆距离(GreatCircleDistance)。
  公式如下:
  其中,R为地球半径,Aj、Aw分别表示A点的经度、纬度;Bj、Bw分别表示B点的经度、纬度。这样,通过简单的立体几何方法就可以很容易地求出其距离。
  如果有人对于地理信息学比较了解的话,还会知道半正矢公式(Haversine公式),因为大圆距离公式用到了大量的余弦函数,因此在两点距离过短的时候,会导致比较大的舍入误差。而半正矢公式则因为采用了正弦函数的方法,因此即使距离过小,也可以保留足够的有效数字。半正矢公式的形式如下所示:
  其中
  这里面的R为地球半径,可取平均值63711,2表示两点的纬度;表示两点经度的差值。
  有了这些算法,那么理论上来查找附近的人就可以很方便地实现了。但是为什么要说从理论上讲呢?因为在工程实践中,这样查找的计算量太大了。对于几个经纬度的数据而言还可以,但是对于大规模数据查询而言,没有实际可操作性。就比如想在一个一百万条数据的数据库里查找附近5公里之内的餐馆有哪些,那么要对一百万条数据做各种三角函数操作,这显然是不现实的事情,更别说在互联网上应用的数据体量远大于百万条。而且这样的数据也很难对其查询效率进行优化。
  那么,要怎么解决这个问题呢?这就是我们今天要介绍的神奇算法,Geohash算法了。通过Geohash算法,我们可以把两个坐标的距离计算简化为两个字符串的比较,从而可以最大限度的应用速度更快的字符串相关函数,并且对其进行排序或索引。
  下面我们就来看看Geohash算法具体是怎么做到这一点的。
  Geohash的本质就是将用到的整个地图区域进行矩形分割,然后在各个矩形之中再次进行矩形分割,而每一次分割中所在的区域用一个字符代表,这样一次次分割之后,就可以最大可能的逼近实际坐标所在地。而这个坐标也就可以用一串字符来代替了。常用的Geohash算法中,每个字符用5个比特来标识,这样就会有32个不同的组合(031),于是我们就可以将这个地图区域划分为32个区域。然后我们再对各个区域继续进行划分,就会得到类似于wx4eqzrx,这样的一个字符串了。
  而这时,我们就可以方便地使用类似于
  Selectfromworldwheregeohashlikewx4
  这样的sql语句查询到附近想要查询的东西了。是不是很方便呢?通过这种方式,我们就把复杂的三角函数计算,转化成了计算化处理效率非常高的字符串操作了。
  那么,想必大家一定要问了,坐标转化成的字符串是怎么生成的呢?其实也很简单。
  我们以纬度39。928167为例。
  a。首先我们以区间〔90,90〕进行二分为〔90,0),〔0,90〕,称为左右区间,可以确定39。928167属于右区间〔0,90〕,标记为1
  b。接着将区间〔0,90〕进行二分为〔0,45),〔45,90〕,可以确定39。928167属于左区间〔0,45),标记为0
  c。递归上述过程39。928167总是属于某个区间〔a,b〕。随着每次迭代区间〔a,b〕总在缩小,并越来越逼近39。928167,划分次数越多,距离就越精确,字符串也就会越长,如下图所示:
  这样我们就得到了纬度的二进制表示,同样我们也可以对经度进行二进制表示。然后,我们把经度放到偶数位,纬度放到奇数位,把两个二进制串合并到一起,最后将得到的二进制串编码每5位进行base32编码,最终就得到了我们想要的,对于每个小方格进行表示的Geohash字符串序列。
  但是这样做了之后,很多人会发现一个问题,那就是每个Geohash字符串事实上都是代表一个小方格的,那么就会产生边界跨越的问题。就像下图中的红点,和上面的绿点并不在一个方格里,因此如果我们光查询红点所在的格子的话,就会查询不到明明离它很近的上面的绿点,反而可以查询到更远一点的下面的绿点。
  那么怎么解决这个问题呢?其实也很简单,就是在查询的时候,把周围的8个格子也考虑进来一起查询就行了。那么具体是怎么做的呢?我们可以看到,周围的8个格子,本质上就是经度纬度的格子二进制数与中间的格子差1,所以我们只需要对红点的经纬度二进制数,进行加减1的操作就可以获取到附近格子的字符串了。而这样做本质上就是损失了一个格子的精度。而在经纬度位数足够的情况下,这个误差是可以忽略不计的。通过计数我们可以得出:
  在纬度相等的情况下,经度每隔0。00001度,距离相差约1米;在经度相等的情况下,纬度每隔0。00001度,距离相差约1。1米;而在geohash的位数是9位数的时候,大概为附近2米;8位的话,大约为附近19米。对于大部分人来讲,可以说是一个可以接受的误差了哦。
  喜欢本文的话,欢迎关注活在信息时代哦:)
投诉 评论

长江为什么叫江,黄河为什么叫河?原因如此,涨知识在1984年的春晚上,香港歌手张明敏的一曲《我的中国心》红遍大江南北,其中一句长江长城,黄山黄河,在我心中重千金,唱出了我们中国人的骄傲和自豪。那么长江为什么叫江,黄河为什么叫……解密食物的故事,美食带给你不同的世界什么可以改变世界?食物可以改变世界,历史记载因为食物引发了无数的战争,有些地方为了得到某一种食物而发动战争。人类生存需要什么?空气、水、阳光、食物,食物。。。。。。缺一不……都体米兰担心扎尼奥洛身体状况ampampamp纪律问题,无意直播吧1月28日讯《都灵体育报》撰文分析了米兰不愿提高预算引进扎尼奥洛的原因,并称马尔蒂尼与米兰老板之间的关系因此变得紧张。目前米兰的引援首选依然是齐耶赫。报道称,米兰确……妇科医生女人45岁后,不想雌激素枯涸,这4类食物尽量少吃说到雌激素的问题,相信大家在生活当中都听说过,雌激素是促进女性第二特征生长发育以及器官成熟的重要物质,也是保持体内雌激素的年轻状态,呵护身体健康的一种重要激素。每个女性朋……世上最温暖的一句话每个人都有一片海,自己不扬帆,没人帮你启航,久了就是一片死海。每个人心中都有一个梦,自己不去实现,没人替你绽放,久了心中就没了寄托。每个人心……藏南到底有多重要?藏南被称为西藏江南,也称中国雨都,面积有9。3万平方公里,面积和浙江相等降水量却是浙江的5倍。降水充沛,植被丰富,土地肥沃,四季如春,降水量平均30005000毫米年,个别地区……人民币不值钱了?美联储9月加息75基点,人民币跌破6。9,会人民币不值钱了?8月29日,离岸人民币兑美元2年来首次跌破6。9,而从4月份的6。4,到现在的6。9,人民币区间跌幅已经达到了8。那么,为什……欧美女性最危险的工作,为什么搞体育新闻?新闻记者很多是女性。在大众印象中,文科女多男少,新传学院挤满了理想成为法拉奇的莘莘学子。而进入体育新闻领域就截然不同,为数不多的女记者奔赴赛场一线,这里很可能面临肉身与尊……万一阳了,记得药补不如食补,多吃6样食物,助您早日康复!导语:万一阳了,记得药补不如食补,多吃6样食物,助你早日康复大家好我是傻姐美食,生活中唯有美食和美景不可辜负。随着疫情的全面放开病毒的传播速度也越来越快,身边的亲戚朋友很……想开发一个附近的人功能?你不得不知的Geohash算法随着移动互联网的发展,很多基于地理位置信息的服务也越来越流行。比如说我们平常经常使用的查找附近的人,或者是附近的餐馆,共享单车等等。那么,大家有没有想过,这个查找功能是如……steam上面赛博朋克2077值得入手吗?说起赛博朋克2077都会说这是一款PPT游戏,宣传的时候高大上,购买的时候各种穿模,波兰蠢驴可谓是把巫师3的情怀和韭菜割完了,之前我是在steam上面预购的,200多入手的现在……李慕豪会去哪?刘晓宇和常林告别北京队后,现在李慕豪可能也要离开北京队了。李慕豪现在和北京队的关系很微妙,就在今天,李慕豪删掉了感谢秦总的长文!这一举动有些让人浮想联翩,看来李慕豪真的要离开北……
公认虽丑但良心的老国货大曝光!建议看看有没有你用的我们家一致认为国货比大牌子都好用价格便宜而且效果也好,一点不输大牌非要说缺点,那就是包装有点简陋不过也不求换包装了,怕涨价这几个国货是我最推荐的自……小贝现身世界杯场地!眼里全是故事,46岁还这么帅,不愧万人迷北京时间12月19日凌晨,阿拉伯杯决赛上演,阿尔及利亚在卡塔尔的海湾球场,勇夺桂冠,他们通过加时赛20击败突尼斯,值得一提的是,这场比赛的时间点,往后倒推一年,也将是2022卡……边缘计算创新爆炸式增长,未来年均增速有望超50!概念股砸出深数据是个宝数据宝炒股少烦恼和已经成熟的公有云、私有云相比,边缘计算还处在上升期,机构预计2024年市场规模将突破1800亿元。中国边缘计算行业创新突飞猛……狂飙懵了!毒贩钟阿四扮演者,竟是著名涉毒歌星含笑极目新闻记者付瞰比戏剧更戏剧化的事情,出现在《狂飙》之中。11日晚,在《狂飙》中饰演钟阿四(与李宏伟一起绑架孟珏的废品站老板)的演员竟然是前歌手含笑(现改名为韩朴俊……广东队3消息徐杰伤情更新,朱芳雨正式表态,杜锋喷裁判或重罚广东队第二阶段全胜的金身终于被打破,13连胜之后,广东队输给了领头羊浙江,本赛季三次与浙江队强强对话,目前的战绩是一胜两负。对于广东队来说,输掉这场比赛回去之后,可以总结提升的……现在再看,黄晓明和杨颖的婚姻,绝对没有想象中的那么简单2022年1月28日,黄晓明和杨颖终于正式离婚了。两个人用同样一句冠冕堂皇的话,给这段长达十几年的感情划上了句号。出乎意外的是,评论区全是,‘哦,不奇怪,早该公布了……曹曦文能尝尽生活的酸甜苦辣,是演员的幸事在不久前收官的电视剧《我们的婚姻》中,蒋静(曹曦文饰)的结局是最惨烈的。一直信奉把老公当老板的她原本是一位富太太,但最终却以离婚收场,净身出户。蒋静最初的婚姻观、爱情观和曹曦文……负债17亿,张康阳着急,盼出售国米套现,重创蓝黑军团,无缘争国米在近几个赛季表现抢眼,恢复了几分巅峰时期的模样。尤其是在今夏接连签下卢卡库、科雷亚、姆希塔良、奥纳纳等强援之后,小因扎吉想要重夺意甲冠军的野心逐渐显露,蓝黑军团将成为新赛季……非洲最美五月天刚果分两季,每年的五月是旱季的开始,十月底结束,十一月开始是雨季,来年的四月底结束,周而复始。五月的刚果是最美的,你会在不经意间,忽然地发现满山遍野,沟沟坎坎,或路边或林下,成……再访潇湘之十一益阳篇之五益阳博物馆从益阳北郊周立波故居,返回市里,去参观益阳博物馆。益阳博物馆座落康复南路东侧的一座长方形深灰色建筑。与益阳文旅广电局同为一楼。在最左端,墙面是余秋雨题写的黑体字益阳市博物……我在苏州的日子里系列故事之一留园揽胜我怀揣着对江南生活的向往,曾在19年前,到苏州待住一年多,领悟到上有天堂,下有苏杭江南的风韵。解读了苏州城历史悠远旷渺,命运波澜壮阔,风物饶余丰富,故事跌宕起伏关于苏州,东方威……智能化自动化代替人工,科技革命时代来了吗?科技革命一词,在中文语境中是指在科学技术方面发生的一系列的重大变化。科学革命:主要指通过科学技术活动改变和促进社会生产和人类生活方式,使传统生产方式改变为现代生产方式的历史运动……

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找