根据两点经纬度获取距离

最近公司开发的一个平台,其中包含配送业务功能, 超出N距离提示不给予配送。

desc

  • 需要有目的地经纬度

  • 获取当前位置的经纬度

    这里商家经纬度由后台返回, 所以需获取到当前的位置的经纬度

效果图

js方法

方法一:

function rad(d) {return d * Math.PI / 180.0;
}// 根据经纬度计算距离,参数分别为第一点的纬度,经度;第二点的纬度,经度
function getDistances(lat1, lng1, lat2, lng2) {var radLat1 = rad(lat1);var radLat2 = rad(lat2);var a = radLat1 - radLat2;var b = rad(lng1) - rad(lng2);var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) +Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));s = s * 6378.137; // EARTH_RADIUS;// 输出为公里s = Math.round(s * 10000) / 10000;var distance = s;var distance_str = "";if (parseInt(distance) >= 1) {// distance_str = distance.toFixed(1) + "km";distance_str = distance.toFixed(2) + "km";} else {// distance_str = distance * 1000 + "m";distance_str = (distance * 1000).toFixed(2) + "m";}//s=s.toFixed(4);// console.info('距离是', s);// console.info('距离是', distance_str);// return s;//小小修改,这里返回对象let objData = {distance: distance,distance_str: distance_str}return objData
}

方法二:

function getDistance(lat1, lng1, lat2, lng2) {lat1 = lat1 || 0;lng1 = lng1 || 0;lat2 = lat2 || 0;lng2 = lng2 || 0;var rad1 = lat1 * Math.PI / 180.0;var rad2 = lat2 * Math.PI / 180.0;var a = rad1 - rad2;var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;var r = 6378137;var distance = r * 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(rad1) * Math.cos(rad2) * Math.pow(Math.sin(b / 2), 2)));return distance;
}

使用

  • 获取当前位置信息:可参考
/**
* 计算两个点经纬度距离
*/
getDestinationAddress: function() {//获取当前经纬度let getLocalLng = wx.getStorageSync('lngAndLat');//这里商家经纬度是后台返回的let getDistance = util.getDistances(getLocalLng.lat, getLocalLng.lng, this.data.bizLat, this.data.bizLng);this.setData({distance: getDistance.distance_str})//判断超过5公里时不可配送if (this.data.currentChooseType == 1 && parseInt(getDistance.distance) >= 5) {this.setData({isOutDistance: false})}
},

感谢参考文章

JS实现根据两点经纬度位置获取距离相关推荐

  1. 【笔记】js根据给定两点经纬度,计算距离

    文章目录 已知地球上两点的经度.纬度:(x1, y1), (x2, y2),其中x1,x2为经度,y1,y2为纬度: 在程序中计算需要转化为弧度(*π/180) 地球半径为R=6378.137 km ...

  2. mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句

    mysql取字段逗号分隔的第一个 cover字段为:(admin/LUpiEMD1Pk6U6B,admin/LUpiEMD1Pk6U6B,admin/LUpiEMD1Pk6U6B) 取逗号分隔第一个词 ...

  3. Python-计算两点经纬度之间的距离

    计算两点经纬度之间的距离 经纬度是利用三维球面空间来描述地球上一个位置的坐标系统,每个经纬度坐标由经度 lng 和纬度 lat 两个分量组成.经纬度的有效范围为经度-180度到+180度,纬度大约-9 ...

  4. 根据两点经纬度,计算距离、方位角

    两点经纬度,计算距离 计算公式: 1.Lat1 Lung1 表示A点经纬度,Lat2 Lung2 表示B点经纬度: 2.a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung2 为两点 ...

  5. mysql 下 计算 两点 经纬度 之间的距离 计算结果排序

    根据经纬度计算距离公式 公式 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung ...

  6. mysql 单精度和双经度_mysql 下 计算 两点 经纬度 之间的距离 计算结果排序

    根据经纬度计算距离公式 公式 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung ...

  7. mysql 计算gps坐标距离_mysql 下 计算 两点 经纬度 之间的距离(转)

    公式如下,单位米: 第一点经纬度:lng1 lat1 第二点经纬度:lng2 lat2 round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2* ...

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

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

  9. js判断点在线上位置,距离各端点距离算法

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/gisdoer/article/details/80995311 判断点在线上位置,距离各端点距离算法 ...

最新文章

  1. 如何使用Java中的UTC或GMT获取当前日期和时间?
  2. 未来智能制造就是跨界大数据
  3. Java学习之do---while语句
  4. 【C 语言】字符串操作 ( strlen 与 sizeof 函数 | 计算 字符串长度 与 内存块大小 )
  5. 想要成为软件开发中的王者,需要明白的 21 条准则
  6. Failed to find data source: text
  7. 分块内存映射处理大文件-例子
  8. 简单获取任意app的URL Schemes
  9. rf框架搭建_Robot framework(RF)基本使用
  10. java 网吧计费系统_java网吧计费管理系统
  11. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
  12. 【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)
  13. 计算长方形的面积 周长 C语言,c语言计算长方形的面积和周长
  14. 保研经验分享:痛并快乐的成长经历
  15. Groovy 和 Java 联合开发环境搭建
  16. python module docs是什么意思_Python Module和Package辨析
  17. shell 学习笔记---运算符
  18. 数据分析:Day01软件安装及基础
  19. 软考笔记(八)高级系统架构师/分析师:系统架构
  20. 洛谷P3964 [TJOI2013]松鼠聚会 切比雪夫距离转曼哈顿距离

热门文章

  1. JS获取浏览器可视区域宽高
  2. 百度《城市元指标研究报告》正式发布
  3. concat、concatenate、add
  4. [内附完整源码和文档] 基于C++实现的小型超市管理系统
  5. 爬虫技术python nutch_基于Nutch的python爬虫分析
  6. 拒绝选择恐惧症!国内好用的Markdown编辑器之有道云笔记
  7. Python Selenium 抖音直播平台实现自动发送评论
  8. SharePoint site down when I used sharepoint designer 2007
  9. 一文实现Mac 上简单定时提醒小脚本
  10. HBase数据库表的创建