本文引用了饿了么资深开发工程师万汨“Redis 到底是怎么实现“附近的人”这个功能的呢?”一文的内容,感谢原作者的分享,为了提升文章品质,即时通讯收录时有内容补充和修订。1、引言基本上以陌生人社交为主的IM产品里,都会增加“附近的人”、“附近的xxx”这种以LBS(地理位置)为导向的产品特色(微信这个熟人社交产品里为啥也有“附近的人”?这当然是历史原因了,微信当初还不是想借此引流嘛。。。),因为“            
                
         
            
            
            
            1. XMPP协议 与 OpenfireXMPP协议是IM领域的标准协议了,具体可参考  http://xmpp.org   及RFC6120,RFC6121,RFC6122等相关文档。 http://xmpp.org/xmpp-protocols/   XMPP协议实现,开源的也很多,server端可参考 http://xmpp.org/xmpp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-22 16:12:29
                            
                                27阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            前言当前大多数app都有查找附近的功能, 简单的有查找周围的运动场馆, 复杂的有滴滴, 摩拜查找周围的车辆. 本文主要阐述查找附近地点的一般实现.方案比较方案1 (性能还不错)数据库直接存经纬度, 然后计算矩形边界值, 走索引查询方案2 (还没试过)将经纬度转换成 一个值, 然后进行比较查询 genhash方案3 (据说高性能, 性能怎样?待测试)方案1的实现(本文主要阐述此方案)实现环境: ja            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-23 23:22:50
                            
                                162阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            当两个元素的距离不是很远时,可以直接使⽤勾股定理就能算得元素之间的距离。我们平时使⽤的「附近的⼈」的功能,元素距离都不是很⼤,勾股定理算距离⾜矣。不过需要注意的是,经纬度坐标的密度不⼀样 (地球是⼀个椭圆),勾股定律计算平⽅差时之后再求和时,需要按⼀定的系数⽐加权求和,如果不求精确的话,也可以不必加权。业界⽐较通⽤的地理位置距离排序算法是 GeoHash 算法,Redis 也使⽤ GeoHash            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-02 00:15:10
                            
                                278阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            GeoHash算法原理 1.基本原理  GeoHash算法采用将经纬度网转化成一个个小区域,为落在相同区域中的点生成同样的GeoHash字符串,通过将经纬度二维数据转化成一维的字符串,简化了对地理位置操作的复杂性。  如下图所示,一片区域被分割成9块,落在相同区域内的点有着相同的GeoHash字符串。通过这种划分,我们可以根据点所对应的GeoHash字符串来判断两点是否在同一区域或者相邻            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-12 15:30:03
                            
                                109阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言最近在做社交的业务,用户进入首页后需要查询附近的人;项目状况:前期尝试业务阶段;特点:快速实现(不需要做太重,满足初期推广运营即可)快速投入市场去运营收集用户的经纬度:用户在每次启动时将当前的地理位置(经度,维度)上报给后台提到附近的人,脑海中首先浮现特点:需要记录每位用户的经纬度查询当前用户附近的人,搜索在N公里内用户架构设计时序图技术实现方案SpringBootRedis(version&            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-14 10:53:20
                            
                                79阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            各种社交软件里面都有附件的人的需求,在该应用中,我们查询附近 1 公里的食客,同时只需查询出 20 个即可。解决基于地理位置的搜索,很多数据库品牌都支持:MySQL、MongoDB、Redis 等都能支持地理位置的存储。
当用户登录应用时,或者保持用户登录后用户在使用应用时,客户端是可以时刻获取用户位置信息的(前提是用户要开启位置获取的权限),客户端获取到最新的地理位置后,上传到后端服务器进行更            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-06-24 14:57:32
                            
                                606阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 使用Java实现“附近的人”功能指南
在这篇文章中,我们将一起探讨如何在Java中实现“附近的人”功能。这是一项常见的需求,特别是在社交应用中。我们会一步步地进行,确保你能完全理解每一个步骤和代码。下面是整个实现过程的概览:
| 步骤 | 描述 |
|------|------|
| 1    | 确定功能需求和技术栈 |
| 2    | 创建用户数据模型 |
| 3    | 实现地理            
                
         
            
            
            
            # Java实现附近的人
## 引言
随着社交网络和位置服务的普及,人们有了更多的需求来寻找附近的人。无论是聊天交友、找玩伴,还是寻找附近的商家,都需要一个能够根据地理位置信息找到附近的人的功能。本文将介绍一种使用Java实现附近的人功能的方法,并给出相应的代码示例。
## 背景
在实现附近的人功能之前,需要先了解一些基础知识。首先,我们需要知道如何获取用户的地理位置信息。常用的方式有通过            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-08-23 07:41:38
                            
                                40阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            开始项目上需要在用户端展示周围的商家,比如用户周围5km内的商家,思路是先获取用户的经纬度,然后与商家的经纬度计算出距离是否符合。环境框架后端使用关系型数据库,前端使用js、jq。步骤1. 获取用户经纬度。因为是手机端网页,且小程序初始代码中就写好了方法,因此这里给出微信公众号网页和支付宝内网页获取用户地理位置的方式:微信公众号获取用户地理位置// 微信公众号获取用户地理位置
wx.getLoca            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-17 15:51:48
                            
                                366阅读
                            
                                                        
                                点赞
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            需求:通过指定点搜索附近的人 , 要求可以过滤年龄, 结果按照距离进行排序, 并且展示她/他距离你多远设计:ES提供了很多地理位置的搜索方式 :
geo_bounding_box: 找出落在指定矩形框中的点。
geo_distance: 找出与指定位置在给定距离内的点。
geo_distance_range: 找出与指定点距离在给定最小距离和最大距离之间的点。一般常用的是前两者。1. 地理坐标盒模            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-03-22 14:17:44
                            
                                178阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            艺术家常说“距离产生美”,其实距离近才是优势,谁不希望自己的工作事少钱多离家近呢?不光是工作,像租房买房、恋爱交友,大家都希望找个近点的,比如58、赶集主打同城交易,微信、陌陌主打同城交友,所谓近水楼台先得月嘛。 正因为位置信息如此重要,所以手机早早支持定位功能,还锲而不舍推进卫星定位、基站定位、WiFi定位等手段。 通过分享自己的位置,人们可以迅速找到附近志同道合的朋友,从而在传统社交之外开辟了            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-19 15:22:33
                            
                                70阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
             文章目录1、GEOHash——如何“摇一摇”1-1、为什么需要GEOHash1-2、什么是GEOHash1-3、GEOHash编码的简易原理1-4、GEOHash的边缘问题2、Redis中GEOHash的应用GEOADD:增加地理位置的坐标(支持批量操作)GEOPOS:获取地理位置的坐标(支持批量操作)GEODIST:获取两个地理位置的距离GEORADIUS:根据给定地理位置坐标获取指定范围内的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-23 13:48:53
                            
                                132阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            本文引用了饿了么资深开发工程师万汨“Redis 到底是怎么实现“附近的人”这个功能的呢?”一文的内容,感谢原作者的分享,为了提升文章品质,即时通讯收录时有内容补充和修订。1、引言基本上以陌生人社交为主的IM产品里,都会增加“附近的人”、“附近的xxx”这种以LBS(地理位置)为导向的产品特色(微信这个熟人社交产品里为啥也有“附近的人”?这当然是历史原因了,微信当初还不是想借此引流嘛。。。),因为“            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-20 17:21:02
                            
                                77阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            1. XMPP协议 与 OpenfireXMPP协议是IM领域的标准协议了,具体可参考  http://xmpp.org   及RFC6120,RFC6121,RFC6122等相关文档。 http://xmpp.org/xmpp-protocols/其中XMPP协议的JAVA实现 Openfire 热门程度很高,也许取决于其安装使用门槛低以及底层基于MINA框架的经典            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-22 13:00:21
                            
                                73阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            “附近的人”在社交类APP已成为标配的功能,Low一点的实现方式可以把坐标存至关系型数据库,通过计算的坐标点距离实现,这种计算可行但计算速度远不及内存操作级别的NoSql数据库。基于Redis数据库实现附近的人信息缓存,服务由Spring-boot框架搭建。控制器(Controller)类@RestController
public class Controller {
    @Autowir            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-07 18:20:30
                            
                                72阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            这次跟门子轩写了个查找附近的人,功能是使用同一软件的人可以将地理位置信息上传到服务器,其他人可通过查找的功能将指定距离内的人的相关信息(包括地理位置信息)查找出来。其实没什么技术含量,整个工程中最核心的地方就是用到了百度地图提供的lbs接口,通过这个接口访问百度地图提供的数据库,可以实现对表的增删改查等命令,也可以精确的计算gps之间的距离。工程分为服务器与客户端,客户端可以上传GPS信息,服务器            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-30 23:46:07
                            
                                117阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            前言在应用中使用动画,可以给用户带来良好的交互体验。通过之前对Android动画的分类总结,尝试了使用属性动画实现支付宝支付效果及购物车添加动画的效果,今天在这里模仿一下微博雷达页面效果。对Android动画不太熟悉或遗忘的知识,可以通过下面两篇文章了解。Android 动画总结,Android 动画实战此次模仿新浪微博雷达页的功能,虽然只有一个Activity,但使用到了很多知识。包括属性动            
                
         
            
            
            
            针对“附近的人”这一位置服务领域的应用场景,常见的可使用 PG、MySQL 和 MongoDB 等多种 DB 的空间索引进行实现。       图片来自 Pexels而 Redis 另辟蹊径,结合其有序队列 ZSET 以及 GEOHASH 编码,实现了空间搜索功能,且拥有极高的运行效率。本文将从源码角度对其算法原理进行解析,并推算查询时间复杂度。要提供完整的“附近的人”服务,最基本的是要实现“增”            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-11-23 13:22:55
                            
                                84阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            文章目录根据经纬度计算指定范围内或者附近的人(java)前言实现 根据经纬度计算指定范围内或者附近的人(java)前言最近项目中有一个需求,就是在地图中随便标一个点位,然后根据这个点位显示出附近所选范围内的人员。这里说一下人员的经纬度是app实时上传更新的。说白了就是要根据指定的坐标计算所选半径内的在线人员。实现思路: 这个大概有两种方式,各位大佬要是有好的建议还请分享一下。 1、在sql中直接            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-18 18:21:04
                            
                                113阅读