# 计算地图上两点距离
~~~javascript
/**
* 获取地图上两点间距离。单位:米
* @param {lat1} 第一个点的纬度
* @param {lon1} 第一个点的经度
* @param {lat2} 第二个点的纬度
* @param {lon2} 第二个点的经度
* @author 不爱喝橙子汁
*/
export function getDistance(lat1, lon1, lat2, lon2) {
const radLat1 = (lat1 * Math.PI) / 180.0;
const radLat2 = (lat2 * Math.PI) / 180.0;
const a = radLat1 - radLat2;
const b = (lon1 * Math.PI) / 180.0 - (lon2 * Math.PI) / 180.0;
let 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 * 6378137;
s = Math.round(s * 10000) / 10000;
return s;
}
~~~
> 本文作者:不爱喝橙子汁
- 自述
- 学会提问
- 起步
- 安装
- 版本升级
- 1.x 升级 2.x 常见问题
- 命令行模式下node-sass安装错误
- 查看版本
- uView UI 1.x 相关问题
- 安装
- Popup 弹窗
- tabs 标签
- Waterfall 瀑布流
- Table 表格
- Dropdown 下拉菜单
- uview-ui组件篇
- u-upload监听beforeRead事件无效
- 组件怎么关不了
- 导航栏不默认返回好麻烦
- ref怎么获取不到
- z-index拉满都覆盖不了map
- u-text对手机号脱敏
- u-input的placeholder去不掉
- 服务端返回数据,form表单验证错误
- checkbox增加选中面积
- uview-ui组件篇/checkbox无法取消选中
- 小程序输入框的placeholder会穿透到弹出层
- JavaScript篇
- 判断数据类型
- 数组操作
- 节流与防抖函数
- this怎么就不对
- 计算地图上两点间的距离
- CSS篇
- 我要超出显示省略号
- uniapp中小程序样式穿透问题
- 关键帧与动画
- CSS动画属性总结
- 过渡与动画
- 正则表达式篇
- 身份证号
- 手机号
- 是否合法的http/https域名
- 数据处理篇
- 对数组分组
- 深拷贝对象
- 提取数组属性
- 提取对象属性
- 常见问题
- 如何给由组件触发的事件中传入自定义的参数
- 分类的双列联动
- 三级联动的实现
- 小程序预览提示包过大
- 框架安装失败
- 表格、瀑布流、下拉列表 组件为什么没有了
- tabBar组件怎么用
- 时间、日历、选择器相关问题
- 字体图标不显示
- class 或 /deep/ 不生效