JS实现根据两点经纬度位置获取距离
根据两点经纬度获取距离
最近公司开发的一个平台,其中包含配送业务功能, 超出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实现根据两点经纬度位置获取距离相关推荐
- 【笔记】js根据给定两点经纬度,计算距离
文章目录 已知地球上两点的经度.纬度:(x1, y1), (x2, y2),其中x1,x2为经度,y1,y2为纬度: 在程序中计算需要转化为弧度(*π/180) 地球半径为R=6378.137 km ...
- mysql 下 计算 两点 经纬度 之间的距离 含具体sql语句
mysql取字段逗号分隔的第一个 cover字段为:(admin/LUpiEMD1Pk6U6B,admin/LUpiEMD1Pk6U6B,admin/LUpiEMD1Pk6U6B) 取逗号分隔第一个词 ...
- Python-计算两点经纬度之间的距离
计算两点经纬度之间的距离 经纬度是利用三维球面空间来描述地球上一个位置的坐标系统,每个经纬度坐标由经度 lng 和纬度 lat 两个分量组成.经纬度的有效范围为经度-180度到+180度,纬度大约-9 ...
- 根据两点经纬度,计算距离、方位角
两点经纬度,计算距离 计算公式: 1.Lat1 Lung1 表示A点经纬度,Lat2 Lung2 表示B点经纬度: 2.a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung2 为两点 ...
- mysql 下 计算 两点 经纬度 之间的距离 计算结果排序
根据经纬度计算距离公式 公式 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung ...
- mysql 单精度和双经度_mysql 下 计算 两点 经纬度 之间的距离 计算结果排序
根据经纬度计算距离公式 公式 对上面的公式解释如下: Lung1 Lat1表示A点经纬度, Lung2 Lat2表示B点经纬度: a=Lat1 – Lat2 为两点纬度之差 b=Lung1 -Lung ...
- mysql 计算gps坐标距离_mysql 下 计算 两点 经纬度 之间的距离(转)
公式如下,单位米: 第一点经纬度:lng1 lat1 第二点经纬度:lng2 lat2 round(6378.138*2*asin(sqrt(pow(sin( (lat1*pi()/180-lat2* ...
- js计算两个经纬度之间的距离
function getRad(d){ var PI = Math.PI; return d*PI/180.0; }/*** 获取两个经纬度之间的距离* @param lat1 第一点的纬度* @pa ...
- js判断点在线上位置,距离各端点距离算法
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/gisdoer/article/details/80995311 判断点在线上位置,距离各端点距离算法 ...
最新文章
- 如何使用Java中的UTC或GMT获取当前日期和时间?
- 未来智能制造就是跨界大数据
- Java学习之do---while语句
- 【C 语言】字符串操作 ( strlen 与 sizeof 函数 | 计算 字符串长度 与 内存块大小 )
- 想要成为软件开发中的王者,需要明白的 21 条准则
- Failed to find data source: text
- 分块内存映射处理大文件-例子
- 简单获取任意app的URL Schemes
- rf框架搭建_Robot framework(RF)基本使用
- java 网吧计费系统_java网吧计费管理系统
- HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP
- 【BP靶场portswigger-服务端5】业务逻辑漏洞-11个实验(全)
- 计算长方形的面积 周长 C语言,c语言计算长方形的面积和周长
- 保研经验分享:痛并快乐的成长经历
- Groovy 和 Java 联合开发环境搭建
- python module docs是什么意思_Python Module和Package辨析
- shell 学习笔记---运算符
- 数据分析:Day01软件安装及基础
- 软考笔记(八)高级系统架构师/分析师:系统架构
- 洛谷P3964 [TJOI2013]松鼠聚会 切比雪夫距离转曼哈顿距离
热门文章
- JS获取浏览器可视区域宽高
- 百度《城市元指标研究报告》正式发布
- concat、concatenate、add
- [内附完整源码和文档] 基于C++实现的小型超市管理系统
- 爬虫技术python nutch_基于Nutch的python爬虫分析
- 拒绝选择恐惧症!国内好用的Markdown编辑器之有道云笔记
- Python Selenium 抖音直播平台实现自动发送评论
- SharePoint site down when I used sharepoint designer 2007
- 一文实现Mac 上简单定时提醒小脚本
- HBase数据库表的创建