根据经纬度实现附近的人

随笔
注:您如果有好的方式和其他的架构方式的话,希望可以下方留言交流,交流是进步的阶梯!

本文依旧是一篇杂记,如果对你有帮助的话,基本是一些思想类,简单架构类的方式

  • 1.使用一些经纬度的计算方式
  • 2.使用goeHash达到我们的mysql、oracle、plsql之类树状的数据库无法完成的部分
  • 3.使用一些特殊类型的类库进行计算,比如一些MongoDB,timptip之类三维立体数据库
  • 4.结合redis缓存开启附近人模式的人的地理位置,然后将这人的key设置为地理位置id结合的key,方便后续其他人搜索时候直接进行根据地区id进行索引后续即可
  • 5.使用特殊算法:改圆的一半方程为:(x-a)²+(y-b)²=r²。只要其他用户的坐标代入圆的一般方程满足 (x-a)²+(y-b)² <=r² 即为“附近”的用户

以上介绍几种设计模式,任何程序是一种有思想的东西,如果是只是实现可能你了解了技术都能实现,但是你知不知道有其他的技术和方式可以来实这个功能就未可知了!!!


今早上得空,更新此博客:

拓展一下上文中的1.使用一些经纬度计算方式:

此实现方式有两种

1.在自己的项目中使用util进行计算

2.在我们的数据库中进行,此条可能会问是不是上面的第三条使用数据库呢,回答:并不是

学好数理化走遍天下都不怕是有道理的,这里是需要我们的一些弧长计算公式原理
不做具体说明了可以参考这里:
https://baike.baidu.com/item/%E5%BC%A7%E9%95%BF%E8%AE%A1%E7%AE%97%E5%85%AC%E5%BC%8F/4370799
其中会涉及到我们的三角函数的使用,我们可以在同样的方式在这里进行了解
https://baike.baidu.com/item/%E4%B8%89%E8%A7%92%E5%87%BD%E6%95%B0%E5%85%AC%E5%BC%8F/4374733

ok这里开始上我们的代码进行了解:

/**
* 如果是你使用这个程序内的工具进行处理的话可以使用这里
*/
public static double Distance(double long1, double lat1, double long2,double lat2) {double a, b, R;R = 6378137; // 地球半径lat1 = lat1 * Math.PI / 180.0;lat2 = lat2 * Math.PI / 180.0;a = lat1 - lat2;b = (long1 - long2) * Math.PI / 180.0;double d;double sa2, sb2;sa2 = Math.sin(a / 2.0);sb2 = Math.sin(b / 2.0);d = 2* R* Math.asin(Math.sqrt(sa2 * sa2 + Math.cos(lat1)* Math.cos(lat2) * sb2 * sb2));return d;}
本使用直接放入之后
-- 如果你想要使用你的一些数据库方式实现的话需要使用这里(mysql是测试没有问题的)
ROUND(6378.138 * 2 * asin(sqrt(pow(sin( ( 我的latitude1 * pi() / 180 - 传入latitude * pi() / 180 ) / 2),2) + cos(我的latitude1 * pi() / 180) * cos(传入latitude * pi() / 180) * pow(sin((我的longitude1 * pi() / 180 - 传入longitude2 * pi() / 180) / 2),2))),2
) AS 一个自己的业务名-- 在你使用的时候可以:select 上方的一段,字段a,字段b··· from {table名} 尝试一番

根据经纬度实现附近的人相关推荐

  1. MySql中实现 按经纬度搜索附近的人,并按距离排序的简单实现

    按经纬度搜索附近的人,并按距离排序的简单实现. 2016年05月31日 23:26:17 阅读数:7235 按经纬度搜索附近的人,并按距离排序的简单实现 这是一种简单的实现,数据量不大的情况下还是能满 ...

  2. 附近的人(使用<GeoHash>经纬度查询附近的人,并根据距离排序)

    todo: 资源: Java中"附近的人"实现方案讨论及代码实现 | Java技术经验分享 Mysql实现按距离排序.范围查找 - 刘曙尘 - 博客园 GitHub - larsc ...

  3. 附近的人 php,php 附近的人

    根据经纬度查找附近的人 1.[代码][PHP]代码 $uid=$_POST[uid]; if($uid>0) { $re=mysql_query("select `lat`,`long ...

  4. 交友项目的思路与逻辑

    前台接口: 注册接口:首先我们可以用到支付宝为我们提供的手机号发送验证码功能,之后我们利用这个功能向用户的手机号发送一个验证码 ,然后我们将这个验证码设置一分钟过期时间形式存入到redis中作为之后登 ...

  5. 经纬度绘图_【知识科普】地形图图例汇总,测绘人识图绘图必备(含dwg版下载)...

    地形图(topographic map)指的是地表起伏形态和地理位置.形状在水平面上的投影图.具体来讲,将地面上的地物和地貌按水平投影的方法(沿铅垂线方向投影到水平面上),并按一定的比例尺缩绘到图纸上 ...

  6. Mysql: LBS实现查找附近的人 (两经纬度之间的距离)

    1. 利用GeoHash封装成内置数据库函数的简易方案: A:Mysql 内置函数方案,适合于已有业务,新增加LBS功能,增加经纬度字段方可,避免数据迁移 B:Mongodb 内置函数方案,适合中小型 ...

  7. 根据经纬度计算指定范围内或者附近的人(java)

    文章目录 根据经纬度计算指定范围内或者附近的人(java) 前言 实现 根据经纬度计算指定范围内或者附近的人(java) 前言 最近项目中有一个需求,就是在地图中随便标一个点位,然后根据这个点位显示出 ...

  8. 【Java、Redis】通过中心经纬度与半径获取范围内的结果集(类似附近的人)

    文章目录 需求 解决方案 什么是Redis + GeoHash 1.Java + Redis实现 引用的pom依赖 InitEquLongLatTask.java Controller Service ...

  9. mysql数据库根据经纬度计算距离,获取离我最近的地点列表,并排序。附近的人,附近商店等功能,一个sql就搞定

    mysql数据库根据经纬度计算距离,获取离我最近的地点列表,并排序 附近的人,附近商家等功能,顺序显示顺序是由近到远的,便利用户查看和判断,sql实现如下. StringBuilder sb=new ...

  10. redis 经纬度_原来用Redis实现查找附近的人这么容易

    1. 前言 老板突然要上线一个需求,获取当前位置方圆一公里的业务代理点.明天上线!当接到这个需求的时候我差点吐血,这时间也太紧张了.赶紧去查相关的技术选型.经过一番折腾,终于在晚上十点完成了这个需求. ...

最新文章

  1. 【科研必备】保持高效论文写作的10个原则!
  2. 推荐系统炼丹笔记:阿里DMIN多重兴趣网络
  3. spring下jndi配置
  4. android系统提供了url通信,Android两种HTTP通信,HttpURLConnection和HttpClient
  5. Python datetime time
  6. 京东回应“两年将回购20亿美元股份”;微软即刻关闭全球所有旗下商店;. Net 5首个预览版发布|极客头条...
  7. Github-PAT(Personal Access Token)
  8. Docker学习: 配置Docker阿里云的镜像加速器(图文)
  9. IT民工金鱼哥从业8年的历程与感悟
  10. P2346 四子连棋 题解
  11. PS第三课--套索和魔棒工具
  12. RN style的常用布局页面属性
  13. CityEngine+Python自动化建模实现【系列文章之四】
  14. 简介响应状态码1xx、2xx、5xx
  15. win10系统,点击连接校园网WLAN后,弹不出登录网页
  16. CPU型号后缀字母所代表的含义
  17. Jenkins 流水线语法 02 片段生成器和声明式语法生成器
  18. chen混沌系统的FPGA设计与实现
  19. 李宏毅《机器学习》模型压缩-知识蒸馏
  20. AMQ9208: Error on receive from host,AMQ9999: Channel ‘ACLIENT‘ to host ‘192.168.159.1‘ ended abnorma

热门文章

  1. 安卓otg识别ntfs_你知道手机的OTG功能吗?学会用之后再也不担心内存不够了!...
  2. Excel复制的数据到文本文件里面有 双引号
  3. 逐向双碳:绿色计算的误区与正确打开方式
  4. 值得看看的艺术影片 (转)
  5. 全国大学生数学建模竞赛、美赛研究生数学建模优秀论文分享
  6. 虚拟机安装ubuntu怎么全屏_ubuntu虚拟机怎么设置全屏显示?
  7. 【第十八题】填坑I(北理工/北京理工大学/程序设计方法与实践/小学期 )
  8. 太阳系各大行星运行轨迹
  9. 初中数学计算机图片,初中数学课件背景图片大全.doc
  10. 【转】PV3D的小练习~太阳系八大行星