最近做了几个小站,要求要定位到当前地址并且显示附近多少公里内的商家和产品。

定位好办,直接用高德地图搞定。有不需要显示地图又需要定位的页面把地图直接隐藏掉都可以。或者可以直接调用高德的定位组件。

但是显示附近多少公里的商家和产品就难搞了。商家和产品加好经纬度地址,然后定位一个地址,通过这两个经纬度地址去算他们间的距离。

网上找了好多,基本上都是同一个算法:

ACOS(SIN((PI() / 180) * 114.055036) * SIN((PI() / 180) * 114.114627) + COS(SIN((PI() / 180) * 114.055036) * COS((PI() / 180) * 114.114627) * COS((PI() / 180) * 22.904124 - (PI() / 180) * 22.52153)) * 6371;

然而并没多大软用,距离算不正确,与实际距离相差挺大

所以我想到直接到高德地图去扒他的测距的方法。

找了好久找到他的原生方法

var d = Math.PI/180

, e = Math.cos

, f = b.P * d

, h = c.P * d

, k = 2 * 6378137

, d = c.Q * d - b.Q * d

, e = (1 - e(h - f) + (1 - e(d)) * e(f) * e(h)) / 2;

return k * Math.asin(Math.sqrt(e))

然后转成SQL语句

12756.274 * asin(sqrt((1-cos(cp * pi()/180 - bppi()/180)+(1-cos(cqpi()/180 - bqpi()/180))cos(bppi()/180)cos(cp*pi()/180))/2))

然后套用为php代码

$list = model('seller')->query('(12756.274 * asin(sqrt((1-cos('.$longitude.' * pi()/180 - longitudepi()/180)+(1-cos('.$latitude.'pi()/180 - latitudepi()/180))cos(longitudepi()/180)cos('.$longitude.'*pi()/180))/2))) < 5');

搞定,收工,就是这么简单,不知道大家是否看懂了,若没有看懂八叔模版堂欢迎大家前来吐槽。

高德地图获取坐标距离_高德地图获取两个经纬度点间直线距离JS/PHP/SQL代码相关推荐

  1. Java - 计算两个经纬度之间的直线距离

    Java - 计算两个经纬度之间的直线距离 代码Github地址 https://github.com/FrankZuozuo/JavaSpecial 1.点接口 public interface P ...

  2. js计算两个经纬度之间的直线距离

    function getRad(d){ var PI = Math.PI; return d*PI/180.0; }/*** 获取两个经纬度之间的距离* @param lat1 第一点的纬度* @pa ...

  3. python基于经纬度距离汇聚点_python实现两个经纬度点之间的距离和方位角

    from:http://blog.csdn.net/zhuqiuhui/article/details/53180395 1.  求两个经纬点的方位角,P0(latA, lonA), P1(latB, ...

  4. vue吸管拾色器、利用canvas获取坐标点颜色、canvas获取坐标点颜色图片跨域、图片转base64、colorPicker

    vue吸管拾色器.利用canvas获取坐标点颜色.canvas获取坐标点颜色图片跨域.图片转base64.colorPicker 1.需求:表格中主颜色和次颜色是需要从缩略图上吸取颜色,然后渲染色块, ...

  5. python计算两个点之间的距离_python实现两个经纬度点之间的距离和方位角的方法...

    最近做有关GPS轨迹上有关的东西,花费心思较多,对两个常用的函数总结一下,求距离和求方位角,比较精确,欢迎交流! 1. 求两个经纬点的方位角,P0(latA, lonA), P1(latB, lonB ...

  6. 变分法求解两点间直线距离最短

    变分法求解两点间直线距离最短,问题很小,意义很大.

  7. python 计算两个经纬度的距离_python实现两个经纬度点之间的距离和方位角的方法...

    最近做有关GPS轨迹上有关的东西,花费心思较多,对两个常用的函数总结一下,求距离和求方位角,比较精确,欢迎交流! 1. 求两个经纬点的方位角,P0(latA, lonA), P1(latB, lonB ...

  8. geotools 计算两个经纬度点之间的距离

    geotools 计算两个经纬度点之间的距离 主要的maven依赖 代码实现 最近研究geotools,发现网上的直接搜索相关实现比较少,所以贴出示例代码,方便大家寻找. 主要的maven依赖 < ...

  9. android 高德地图移动卡顿_高德、百度和腾讯三家比拼,哪个 Android 车机地图 App 更好用?...

    写在前面 不管是自己开车.还是平时打车,相信你一定留意过驾驶座旁边位于车辆中间的那块大屏幕,不管是平时开车导航.放音乐,还是通过倒车影像辅助倒车,都离不开这块屏幕,这就是中控车机. 中控车机往往搭载的 ...

最新文章

  1. 07.GitHub实战系列~7.Git之VS2013团队开发(如果不想了解git命令直接学这篇即可)...
  2. [转]C++ 使用Makefile文件
  3. 开源大数据周刊-第44期
  4. SharePoint2010沙盒解决方案基础开发——开发webpart读取绑定列表数据,并以一定的格式显示(加css样式)...
  5. java提高篇(十七)-----异常(二)
  6. openldap linux客户端,OpenLDAP 客户端安装部署
  7. Python代码这样写更优雅(转)
  8. 发动机悬置python仿真计算
  9. Ubuntu下安装vim以及常用命令
  10. 2019最新版Eclipse下载与安装
  11. Java—企业微信网页版登陆认证详解
  12. BUUCTF-神秘龙卷风
  13. 基于TCP的STM32 IAP bootloader初步设计
  14. 薅羊毛php源码,基于AutoJs实现的薅羊毛App专业版源码大分享---更新啦
  15. 使用jquery生成随机二维码的方法
  16. vue 生成带logo的二维码 qrcode-vue 支持下载图片 实例详解
  17. 如何自行编辑Endnote中参考文献格式?
  18. SEO网站优化第一步:关键词词库表格的建立和关键词分组
  19. 编译sakai10.6
  20. 吴恩达机器学习:方差与偏差

热门文章

  1. ubuntu20.04双系统启动盘制作、安装和卸载
  2. 系统默认只有一张内置的静态壁纸,如如何修改可以内置多张静态壁纸
  3. 胡巴动态表情包 捉妖记胡巴QQ表情无水印下载
  4. 工大校园邮箱申请流程
  5. 左耳朵耗子:我做系统架构的一些原则
  6. Win10更新的若干弊端以及关闭Win10更新方法
  7. 百度、微博的大数据算法Top10热搜怎么实现?
  8. Docker Desktop启动失败(Docker failed to initialize Docker Desktop is shutting down)
  9. CSDN上Android与IPhone开发博客精选
  10. B站JavaScript从入门到精通智能社Blue石川老师视频部分代码_幻灯片