童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

产品功能解读:附近的人是按什么规则计算的

3月19日 牵手手投稿
  距离不一定产生美,还有GeoHash算法。
  附近的人这样的产品功能,你一定不陌生吧?
  微信就有附近的人的功能,依托于位置信息,展示平台上与你距离较近的用户,这个功能在各种平台上曾经盛极一时,依托附近的人的功能,也产生了一些灰色的产业链。
  但今天要讨论的不是如何利用附近的人来撩汉约P,而是站在产品的角度,分析附近的人是如何实现的。
  如何实现?可能就是获取了个人位置信息,将平台上的所有用户的位置信息按位置排序,然后逐一计算距离
  起初我也觉得这事就这么简单。但果真如此,就不值得学习探讨了。附近的人的实现策略,并不是一句话就能说清楚的。
  首先,我们来回顾一些地理知识。
  1、地球是圆的,分南北极,以地轴为中心自转。
  2、纵切线是经线,常用经度来衡量;横切线是纬线,常用纬度来衡量;
  3、纬线赤道往北极方向称为北纬,往南极方向称为南纬;经线地轴往左方向是西经,往右方向是西经;经线和纬线相交的点叫坐标,如下图中的红点:
  也就是说,我们每个人目前所在的位置,都在某一条经线和纬线的相交点上,都有一个坐标,我们也常说位置。
  那手机应用是如何获取我们的位置的呢(手机如何定位,知道我们在哪里)?
  目前常用的定位技术有GPS定位、基站定位、WiFi辅助定位、AGPS定位、Glonass定位、北斗定位等。具体这些技术是什么原理这里不细讲了,通过这些技术,我们的位置会换算成一个坐标,使用坐标点(XX。XXXXX,Y。XXXXX)来描述,我们也常说这是经纬度。
  假如我们都获取到了平台上的用户位置所在的坐标点,就可以计算你和TA的距离,就知道TA是不是你附近的人了。
  如何计算你和TA的距离呢?
  坐标值保留小数5位,大概就可以精确到1米左右,比如A用户和B用户坐标点A(20。38635,93。85210)与B(20。638635,93。85212)Y轴相差93。8521293。852100。00002,相差在2米左右;
  在纬度相等的情况下:
  经度每隔0。00001度,距离相差约1米;
  每隔0。0001度,距离相差约10米;
  每隔0。001度,距离相差约100米;
  以此类推
  在经度相等的情况下:
  纬度每隔0。00001度,距离相差约1。1米;
  每隔0。0001度,距离相差约11米;
  每隔0。001度,距离相差约111米;
  以此类推
  但并不是所有用户都在同一条经线或者纬线上直接算直线距离,如果用户量较大的情况下,要这样使用二维坐标(x,y)来计算距离是不现实的,其次,真实记录用户所在的经纬度,且在多个地方使用经纬度来计算位置,有一定的隐私问题。
  如果我们想要更快地得知你所在的位置附近,都有哪些人,必须寻找快一点的方式,比如数据库在数据量较大且需要排序时,会经常用到索引来提高计算效率。
  GeoHash算法将二维的经纬度(x,y)转换成一维信息(字符串),同时解决了隐私问题。
  以下图为例,把某个区域划分为9个格子,9个给格子分别命名为WX4ER,WX4G2、WX4G3等这样的字符串,每一个字符串是某个格子的代号,用这个代号来代表被划分的子区域。
  也就是说,每个格子(子区域)内所有的点(经纬度坐标)都共享相同的GeoHash字符串,大家表示自己的所在位置时,只需要说出该字符代号(比如我们在做自我介绍时说我是广州天河人,“天河”就是广州被划分的其中一个格子),这样既可以保护隐私(只表示大概区域位置而不是具体的点),一维的信息也比较容易计算和做缓存,只要格子划分地越小,距离就越精确。
  那GeoHash字符串如何表示自己的精确等级呢?
  GeoHash字符串越长,表示的范围越精确。如图所示,5位的编码能表示10平方千米范围的矩形区域,而6位编码能表示更精细的区域(约0。34平方千米)
  GeoHash字符串相似的表示距离相近,比如上图中的:
  WX4G09和
  WX4G08较近,和
  WX4FBX较远
  这样可以利用字符串的前缀匹配来查询附近的POI信息(POI信息表示一栋房子、一个商铺、一个邮筒、一个公交站等),在地图程序中找附近的医院、加油站等都有应用。
  同样地,我们可以用此方法来圈到同一区域(格子)或者附近区域的人群,再计算大概的距离,而不用把与所有人的距离计算出来,再做排序。
  再来回顾一下两种计算方法:
  (1)只保存了每个人的坐标,要找出某个用户附近的人
  把所有人的坐标与当前用户的坐标计算一次,算出距离
  按找算出的距离升序排列,返回附近的人
  (2)保存了用户的坐标GeoHash字符串,要找出附近的人
  按区域字符串相似度划出该区域的人群,区域划分越小,距离越近。
  很明显,2方法要快一些。
  GeoHash字符串在位置接近矩形边界时不太准确。
  比如红色的点是A用户,绿色的两个点从上到下分别是B用户和C用户,但在圈定人群时会发现距离A较远的C用户的GeoHash编码与A一样(因为在同一个GeoHash区域块上),而较近的B用户的GeoHash编码与A不一样,算起来好像C与A较近。
  A:WX4G0
  B:WX4G2
  C:WX4G0
  所以,除了区域的划分尽可能小来缩小边界问题,在距离要求不是很精确时,可以同时返回以A为中心区域的其他8个点附近的人。
  Geohash的长度越长时,表示距离越近(大部分时候准确)。如上图,6位的Geohash长度距离大概在2。4公里,8位的Geohash长度,大概在8米左右的距离误差,9位的Geohash长度,大概就是2米了。
  如此,产品在准备类似附近的人这样的产品需求时,可以给到大概地理范围内的值,让研发知道你所谓的附近,边界在哪里。
投诉 评论

设计中的设计:日本公共服务中的点数设计让自己相信,来自于对事物本质的理解,对人心的洞察,和对未来的想象;让别人相信,来自于数据和事实,但同样也来自于讲故事,感染力和影响力。日本设计大师,无印良品艺术总监原研哉……产品迭代:总想着改变,你有关注过不变的东西吗?将战略建立在不变的事物上。很多人在产品的使用上有依赖习惯,会习惯一些固有操作和内容,有时候一段时间没用某个App,如果再次打开已经不是之前的样子,很可能就把它晾在一边了。……浅析OTA中车票类的一元免单免费的订单,免费的获得。一元免单既是花一元钱获取免单的机会,属于抽奖类的免单,文章拿火车票和汽车票来做例子对一元免单服务进行了一些分析。免费的订单,免费的获得。商家为了促……浅析支付系统的整体架构本文主要是简单地描述支付系统的整体架构。支付的典型架构每个公司根据其业务和公司发展的不同阶段,所设计的支付系统也会有所不同。我们先看看互联网公司的一些典型的支付系统……漫谈CRM体系化建设3:如何留住客户《漫谈CRM体系化建设》系列共分五篇,前两篇讨论了企业客户管理的基本业务问题和新客户开发管理问题。本文是第三篇,讨论如何实现新客户向稳定优质客户的转变,重点介绍了客户细分、建模……经验分享ToB产品的登录安全企业级服务产品,产品安全是用户选择时的关键因素,在登录安全,密码安全,设备安全等三个方面都要做到周全且极致。多设备同时登录并不是不安全目前市面上多数产品都是单设备登……以“涨乐财富通”为例,浅析券商开户APP流程及优化点今天介绍一下:客户如果通过APP注册一个股票账户,是什么样的流程?社交、即时通讯等互联网APP产品,产品内容比较容易理解。但互联网金融范围很广,同时需具备一定的专业知识。……当你刷Facebook的时候,应该注意什么?Facebook能千方百计来收集你的个人信息。完全避免使用Facebook是非常困难的;但通过了解它所收集的数据,你能明白使用Facebook的潜在风险,并在使用中更加谨慎。……商品管理系统设计总结:第三方医药电商平台设计这是作者第一次主导系统级的产品项目总结,与大家分享,也希望可以给大家带来一些借鉴、参考。背景从2016年年初开始,我们内部一直在讨论将原来商城代码逐步模块化的构想以……产品方法论:精益产品设计精益创业理论源自于硅谷创业专家《精益创业》和《四步创业法》,通过敏捷思维,小步快跑,快速迭代的方式,将一款最小化产品快速上线并不断迭代优化,最终形成一款现象级的产品。基于……产品功能解读:附近的人是按什么规则计算的距离不一定产生美,还有GeoHash算法。附近的人这样的产品功能,你一定不陌生吧?微信就有附近的人的功能,依托于位置信息,展示平台上与你距离较近的用户,这个功能在各……iOS和Android规范解析底部浮层(下)上次的文章(点击查看),介绍了AndroidMD设计规范中对于“底板(BottomSheets)”的定义,这次的文章来跟大家介绍一下iOS设计规范中的底部浮层。在iOS规……
职场的语录职场正能量的语录55条职场心灵鸡汤语录38条职场的语录简洁的职场的语录职场的语录职场正能量的语录职场的语录96条职场的语录60条职场正能量的语录摘录50条经典职场正能量的语录摘录70条经典职场心灵鸡汤语录袁伟时:教育、历史、新左派和当前的改革今年双11降价幅度超千元的机型汇总,以下五款重点关注如果追随现代美容趋势,15位世界女名人会是什么样子?防棉花早衰“三招”这几笔高难度会计分录,90的会计不会写哈工大励志教授简历曝光好的人生,不怕大器晚成是先有鸡还是先有蛋正确答案公布经过科学研究论证发春诗二首其一股票起飞前,“筹码分布”都将出现这3大征兆。。。孩子出生了是个双胞胎一个随父姓,一个随母姓大家认为好么?舟滞新沟有感其一AMDRyzen52400G与R32200G桌上型APU测试

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界